@marktoflow/gui 2.0.0-alpha.1 → 2.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.marktoflow/state/workflow-state.db +0 -0
- package/.marktoflow/state/workflow-state.db-shm +0 -0
- package/.marktoflow/state/workflow-state.db-wal +0 -0
- package/.turbo/turbo-build.log +24 -8
- package/.turbo/turbo-test.log +29 -13
- package/README.md +49 -3
- package/dist/client/assets/index-CM44OayM.js +704 -0
- package/dist/client/assets/index-CM44OayM.js.map +1 -0
- package/dist/client/assets/index-Dru63gi6.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server/index.js +93 -33
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/ai.js +38 -1
- package/dist/server/routes/ai.js.map +1 -1
- package/dist/server/routes/execute.js +23 -22
- package/dist/server/routes/execute.js.map +1 -1
- package/dist/server/routes/executions.js +125 -0
- package/dist/server/routes/executions.js.map +1 -0
- package/dist/server/{server/routes → routes}/tools.js +406 -0
- package/dist/server/{server/routes → routes}/tools.js.map +1 -1
- package/dist/server/routes/workflows.js +41 -5
- package/dist/server/routes/workflows.js.map +1 -1
- package/dist/server/services/AIService.js +55 -202
- package/dist/server/services/AIService.js.map +1 -1
- package/dist/server/services/FileWatcher.js +0 -2
- package/dist/server/services/FileWatcher.js.map +1 -1
- package/dist/server/services/WorkflowService.js +199 -16
- package/dist/server/services/WorkflowService.js.map +1 -1
- package/dist/server/services/agents/codex-provider.js +270 -0
- package/dist/server/services/agents/codex-provider.js.map +1 -0
- package/dist/server/{server/services → services}/agents/prompts.js +27 -0
- package/dist/server/services/agents/prompts.js.map +1 -0
- package/dist/server/{server/services → services}/agents/registry.js +20 -0
- package/dist/server/services/agents/registry.js.map +1 -0
- package/dist/server/websocket/index.js +12 -0
- package/dist/server/websocket/index.js.map +1 -1
- package/marktoflow-gui-2.0.0-alpha.12.tgz +0 -0
- package/package.json +19 -5
- package/scripts/flatten-dist.js +69 -0
- package/src/client/components/Canvas/Canvas.tsx +27 -7
- package/src/client/components/Canvas/ExecutionOverlay.tsx +120 -32
- package/src/client/components/Canvas/ForEachNode.tsx +152 -0
- package/src/client/components/Canvas/IfElseNode.tsx +141 -0
- package/src/client/components/Canvas/NodeContextMenu.tsx +8 -4
- package/src/client/components/Canvas/ParallelNode.tsx +157 -0
- package/src/client/components/Canvas/SwitchNode.tsx +185 -0
- package/src/client/components/Canvas/Toolbar.tsx +59 -21
- package/src/client/components/Canvas/TransformNode.tsx +194 -0
- package/src/client/components/Canvas/TryCatchNode.tsx +164 -0
- package/src/client/components/Canvas/WhileNode.tsx +161 -0
- package/src/client/components/Canvas/index.ts +24 -0
- package/src/client/components/Debug/VariableInspector.tsx +148 -0
- package/src/client/components/Prompt/PromptInput.tsx +3 -1
- package/src/client/components/Settings/ProviderSwitcher.tsx +228 -0
- package/src/client/components/Sidebar/ImportDialog.tsx +257 -0
- package/src/client/components/Sidebar/Sidebar.tsx +21 -2
- package/src/client/components/common/KeyboardShortcuts.tsx +8 -2
- package/src/client/stores/agentStore.ts +109 -0
- package/src/client/stores/executionStore.ts +64 -2
- package/src/client/stores/workflowStore.ts +10 -2
- package/src/client/styles/globals.css +106 -0
- package/src/client/utils/platform.ts +46 -0
- package/src/client/utils/serviceIcons.tsx +33 -0
- package/src/client/utils/workflowToGraph.ts +245 -21
- package/src/server/index.ts +25 -2
- package/src/server/routes/executions.ts +136 -0
- package/src/server/routes/tools.ts +406 -0
- package/src/server/routes/workflows.ts +42 -1
- package/src/server/services/WorkflowService.ts +176 -16
- package/src/server/services/agents/codex-provider.ts +398 -0
- package/src/server/services/agents/prompts.ts +27 -0
- package/src/server/services/agents/registry.ts +21 -0
- package/src/server/websocket/index.ts +13 -0
- package/tailwind.config.ts +1 -1
- package/tests/integration/api.test.ts +203 -1
- package/tests/integration/testApp.ts +1 -1
- package/tests/setup.ts +35 -0
- package/tests/unit/ForEachNode.test.tsx +308 -0
- package/tests/unit/IfElseNode.test.tsx +235 -0
- package/tests/unit/ParallelNode.test.tsx +344 -0
- package/tests/unit/SwitchNode.test.tsx +327 -0
- package/tests/unit/TransformNode.test.tsx +386 -0
- package/tests/unit/TryCatchNode.test.tsx +243 -0
- package/tests/unit/WhileNode.test.tsx +230 -0
- package/tests/unit/agentStore.test.ts +218 -0
- package/tests/unit/codexProvider.test.ts +399 -0
- package/tests/unit/executionStore.test.ts +40 -0
- package/tests/unit/platform.test.ts +118 -0
- package/tests/unit/serviceIcons.test.ts +197 -0
- package/tests/unit/workflowToGraph.test.ts +22 -0
- package/dist/client/assets/index-DwTI8opO.js +0 -608
- package/dist/client/assets/index-DwTI8opO.js.map +0 -1
- package/dist/client/assets/index-RoEdL6gO.css +0 -1
- package/dist/server/index.d.ts +0 -3
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/server/index.js +0 -95
- package/dist/server/server/index.js.map +0 -1
- package/dist/server/server/routes/ai.js +0 -87
- package/dist/server/server/routes/ai.js.map +0 -1
- package/dist/server/server/routes/execute.js +0 -63
- package/dist/server/server/routes/execute.js.map +0 -1
- package/dist/server/server/routes/workflows.js +0 -99
- package/dist/server/server/routes/workflows.js.map +0 -1
- package/dist/server/server/services/AIService.js +0 -69
- package/dist/server/server/services/AIService.js.map +0 -1
- package/dist/server/server/services/FileWatcher.js +0 -60
- package/dist/server/server/services/FileWatcher.js.map +0 -1
- package/dist/server/server/services/WorkflowService.js +0 -363
- package/dist/server/server/services/WorkflowService.js.map +0 -1
- package/dist/server/server/services/agents/prompts.js.map +0 -1
- package/dist/server/server/services/agents/registry.js.map +0 -1
- package/dist/server/server/websocket/index.js +0 -85
- package/dist/server/server/websocket/index.js.map +0 -1
- package/dist/server/services/AIService.d.ts +0 -30
- package/dist/server/services/AIService.d.ts.map +0 -1
- package/dist/server/services/FileWatcher.d.ts +0 -10
- package/dist/server/services/FileWatcher.d.ts.map +0 -1
- package/dist/server/services/WorkflowService.d.ts +0 -54
- package/dist/server/services/WorkflowService.d.ts.map +0 -1
- package/dist/server/websocket/index.d.ts +0 -10
- package/dist/server/websocket/index.d.ts.map +0 -1
- /package/dist/server/{server/services → services}/agents/claude-code-provider.js +0 -0
- /package/dist/server/{server/services → services}/agents/claude-code-provider.js.map +0 -0
- /package/dist/server/{server/services → services}/agents/claude-provider.js +0 -0
- /package/dist/server/{server/services → services}/agents/claude-provider.js.map +0 -0
- /package/dist/server/{server/services → services}/agents/copilot-provider.js +0 -0
- /package/dist/server/{server/services → services}/agents/copilot-provider.js.map +0 -0
- /package/dist/server/{server/services → services}/agents/demo-provider.js +0 -0
- /package/dist/server/{server/services → services}/agents/demo-provider.js.map +0 -0
- /package/dist/server/{server/services → services}/agents/index.js +0 -0
- /package/dist/server/{server/services → services}/agents/index.js.map +0 -0
- /package/dist/server/{server/services → services}/agents/ollama-provider.js +0 -0
- /package/dist/server/{server/services → services}/agents/ollama-provider.js.map +0 -0
- /package/dist/server/{server/services → services}/agents/types.js +0 -0
- /package/dist/server/{server/services → services}/agents/types.js.map +0 -0
- /package/dist/{server/shared → shared}/constants.js +0 -0
- /package/dist/{server/shared → shared}/constants.js.map +0 -0
- /package/dist/{server/shared → shared}/types.js +0 -0
- /package/dist/{server/shared → shared}/types.js.map +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,26 +1,42 @@
|
|
|
1
1
|
|
|
2
|
-
> @marktoflow/gui@2.0.0-alpha.
|
|
3
|
-
> pnpm build:client && pnpm build:server
|
|
2
|
+
> @marktoflow/gui@2.0.0-alpha.12 build /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
3
|
+
> pnpm build:client && pnpm build:server && pnpm build:flatten
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @marktoflow/gui@2.0.0-alpha.
|
|
6
|
+
> @marktoflow/gui@2.0.0-alpha.12 build:client /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
7
7
|
> vite build
|
|
8
8
|
|
|
9
9
|
vite v6.4.1 building for production...
|
|
10
10
|
transforming...
|
|
11
|
-
✓
|
|
11
|
+
✓ 2270 modules transformed.
|
|
12
12
|
rendering chunks...
|
|
13
13
|
computing gzip size...
|
|
14
14
|
dist/client/index.html 0.83 kB │ gzip: 0.46 kB
|
|
15
|
-
dist/client/assets/index-
|
|
16
|
-
dist/client/assets/index-
|
|
15
|
+
dist/client/assets/index-Dru63gi6.css 51.25 kB │ gzip: 9.52 kB
|
|
16
|
+
dist/client/assets/index-CM44OayM.js 881.84 kB │ gzip: 268.82 kB │ map: 3,510.67 kB
|
|
17
17
|
|
|
18
18
|
(!) Some chunks are larger than 500 kB after minification. Consider:
|
|
19
19
|
- Using dynamic import() to code-split the application
|
|
20
20
|
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
|
|
21
21
|
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
|
|
22
|
-
✓ built in
|
|
22
|
+
✓ built in 2.21s
|
|
23
23
|
|
|
24
|
-
> @marktoflow/gui@2.0.0-alpha.
|
|
24
|
+
> @marktoflow/gui@2.0.0-alpha.12 build:server /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
25
25
|
> tsc -p tsconfig.server.json
|
|
26
26
|
|
|
27
|
+
|
|
28
|
+
> @marktoflow/gui@2.0.0-alpha.12 build:flatten /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
29
|
+
> node scripts/flatten-dist.js
|
|
30
|
+
|
|
31
|
+
🔧 Flattening dist structure...
|
|
32
|
+
📦 Moving server/server/* to temp location...
|
|
33
|
+
📦 Moving server/shared/* to dist/shared/...
|
|
34
|
+
🗑️ Removing old server directory...
|
|
35
|
+
📦 Moving temp back to dist/server/...
|
|
36
|
+
✅ Dist structure flattened successfully!
|
|
37
|
+
|
|
38
|
+
Final structure:
|
|
39
|
+
dist/
|
|
40
|
+
client/ - React app
|
|
41
|
+
server/ - Server code (flat)
|
|
42
|
+
shared/ - Shared code
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
|
|
2
|
-
> @marktoflow/gui@2.0.0-alpha.
|
|
2
|
+
> @marktoflow/gui@2.0.0-alpha.12 test /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
RUN v2.1.9 /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
7
7
|
|
|
8
|
-
✓ tests/unit/
|
|
8
|
+
✓ tests/unit/executionStore.test.ts (46 tests) 117ms
|
|
9
|
+
✓ tests/unit/workflowToGraph.test.ts (16 tests) 4ms
|
|
10
|
+
✓ tests/unit/canvasStore.test.ts (24 tests) 18ms
|
|
11
|
+
✓ tests/unit/codexProvider.test.ts (42 tests) 31ms
|
|
12
|
+
✓ tests/unit/ParallelNode.test.tsx (30 tests) 1015ms
|
|
13
|
+
✓ ParallelNode > visual styling > should have blue/cyan gradient background 429ms
|
|
14
|
+
✓ tests/unit/TransformNode.test.tsx (34 tests) 994ms
|
|
15
|
+
✓ TransformNode > visual styling > should have teal/cyan gradient background 342ms
|
|
16
|
+
✓ tests/unit/SwitchNode.test.tsx (28 tests) 1047ms
|
|
17
|
+
✓ SwitchNode > visual styling > should have purple/magenta gradient background 311ms
|
|
18
|
+
✓ tests/unit/ForEachNode.test.tsx (28 tests) 1024ms
|
|
19
|
+
✓ ForEachNode > visual styling > should have pink/red gradient background 313ms
|
|
20
|
+
✓ tests/unit/stepValidation.test.ts (17 tests) 6ms
|
|
21
|
+
✓ tests/integration/api.test.ts (37 tests) 414ms
|
|
22
|
+
✓ tests/unit/TryCatchNode.test.tsx (25 tests) 647ms
|
|
23
|
+
✓ tests/unit/IfElseNode.test.tsx (23 tests) 690ms
|
|
24
|
+
✓ IfElseNode > should render node with name and condition 322ms
|
|
25
|
+
✓ tests/unit/agentStore.test.ts (9 tests) 7ms
|
|
26
|
+
✓ tests/unit/WhileNode.test.tsx (21 tests) 467ms
|
|
27
|
+
✓ tests/unit/layoutStore.test.ts (18 tests) 5ms
|
|
9
28
|
✓ tests/unit/navigationStore.test.ts (10 tests) 6ms
|
|
10
|
-
✓ tests/unit/
|
|
11
|
-
✓ tests/unit/themeStore.test.ts (9 tests)
|
|
12
|
-
✓ tests/unit/
|
|
13
|
-
✓ tests/unit/
|
|
14
|
-
✓ tests/unit/canvasStore.test.ts (24 tests) 5ms
|
|
15
|
-
✓ tests/unit/components.test.tsx (14 tests) 32ms
|
|
16
|
-
✓ tests/integration/api.test.ts (23 tests) 47ms
|
|
29
|
+
✓ tests/unit/serviceIcons.test.ts (12 tests) 3ms
|
|
30
|
+
✓ tests/unit/themeStore.test.ts (9 tests) 5ms
|
|
31
|
+
✓ tests/unit/components.test.tsx (14 tests) 84ms
|
|
32
|
+
✓ tests/unit/platform.test.ts (13 tests) 4ms
|
|
17
33
|
|
|
18
|
-
Test Files
|
|
19
|
-
Tests
|
|
20
|
-
Start at
|
|
21
|
-
Duration
|
|
34
|
+
Test Files 20 passed (20)
|
|
35
|
+
Tests 456 passed (456)
|
|
36
|
+
Start at 16:31:41
|
|
37
|
+
Duration 6.57s (transform 1.40s, setup 2.53s, collect 8.74s, tests 6.59s, environment 21.72s, prepare 2.61s)
|
|
22
38
|
|
package/README.md
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
# @marktoflow/gui
|
|
2
2
|
|
|
3
|
+
> **Author:** Scott Glover <scottgl@gmail.com>
|
|
4
|
+
|
|
3
5
|
Visual workflow designer for marktoflow - a web-based drag-and-drop editor with AI-powered assistance.
|
|
4
6
|
|
|
5
7
|
## Features
|
|
6
8
|
|
|
7
9
|
- **Visual Workflow Editor** - Drag-and-drop interface for creating and editing workflows
|
|
10
|
+
- **Enhanced Control Flow Visualization** - Visual execution state indicators for loops, branches, and parallel execution
|
|
8
11
|
- **AI-Powered Assistance** - Natural language commands to modify workflows
|
|
9
12
|
- **Multiple AI Backends** - Support for Claude Code, GitHub Copilot, and more
|
|
10
|
-
- **Real-time Execution** - Run and debug workflows directly from the UI
|
|
13
|
+
- **Real-time Execution** - Run and debug workflows directly from the UI with live status updates
|
|
11
14
|
- **Live File Sync** - Changes sync automatically with your workflow files
|
|
12
15
|
|
|
16
|
+
### Control Flow Visual Features
|
|
17
|
+
|
|
18
|
+
- **Early Exit Indicators** - See when loops exit before completion (break/error)
|
|
19
|
+
- **Skipped Branch Visualization** - Grayed-out branches that weren't executed
|
|
20
|
+
- **Progress Tracking** - Real-time iteration counters and progress bars
|
|
21
|
+
- **Rate Limiting Warnings** - Visual alerts for parallel execution throttling
|
|
22
|
+
- **Failed Branch Tracking** - Red highlighting for failed parallel branches
|
|
23
|
+
- **Execution State Badges** - Contextual icons showing loop exit reasons
|
|
24
|
+
|
|
13
25
|
## Installation
|
|
14
26
|
|
|
15
27
|
```bash
|
|
@@ -78,8 +90,10 @@ The GUI supports multiple AI backends for workflow assistance:
|
|
|
78
90
|
|----------|-----|----------------|
|
|
79
91
|
| Claude Code | `@anthropic-ai/claude-agent-sdk` | Claude CLI (`claude`) |
|
|
80
92
|
| GitHub Copilot | `@github/copilot-sdk` | Copilot CLI (`copilot auth`) |
|
|
93
|
+
| OpenAI Codex | `openai-codex-sdk` | Codex CLI |
|
|
94
|
+
| OpenCode | `@opencode-ai/sdk` | OpenCode CLI (`opencode /connect`) |
|
|
81
95
|
| Claude API | `@anthropic-ai/sdk` | `ANTHROPIC_API_KEY` |
|
|
82
|
-
| Ollama | REST API | Local server |
|
|
96
|
+
| Ollama (beta) | REST API | Local server |
|
|
83
97
|
| Demo Mode | - | Always available |
|
|
84
98
|
|
|
85
99
|
### Setting Up AI Providers
|
|
@@ -100,6 +114,38 @@ copilot auth
|
|
|
100
114
|
# The GUI will automatically detect and use Copilot
|
|
101
115
|
```
|
|
102
116
|
|
|
117
|
+
**OpenAI Codex**
|
|
118
|
+
```bash
|
|
119
|
+
# Authenticate with Codex CLI
|
|
120
|
+
# Follow Codex CLI documentation for setup
|
|
121
|
+
|
|
122
|
+
# The GUI will automatically detect and use Codex
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**OpenCode**
|
|
126
|
+
```bash
|
|
127
|
+
# Configure OpenCode
|
|
128
|
+
opencode /connect
|
|
129
|
+
|
|
130
|
+
# The GUI will automatically detect and use OpenCode
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Claude API (Direct)**
|
|
134
|
+
```bash
|
|
135
|
+
# Set API key
|
|
136
|
+
export ANTHROPIC_API_KEY=sk-ant-your-key
|
|
137
|
+
|
|
138
|
+
# The GUI will use direct API access
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Ollama (Local)**
|
|
142
|
+
```bash
|
|
143
|
+
# Start Ollama server
|
|
144
|
+
ollama serve
|
|
145
|
+
|
|
146
|
+
# The GUI will automatically detect Ollama at localhost:11434
|
|
147
|
+
```
|
|
148
|
+
|
|
103
149
|
## API Endpoints
|
|
104
150
|
|
|
105
151
|
The GUI server exposes a REST API:
|
|
@@ -176,4 +222,4 @@ pnpm test
|
|
|
176
222
|
|
|
177
223
|
## License
|
|
178
224
|
|
|
179
|
-
|
|
225
|
+
Apache-2.0
|