@marktoflow/gui 2.0.0-alpha.1
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/.turbo/turbo-build.log +26 -0
- package/.turbo/turbo-test.log +22 -0
- package/README.md +179 -0
- package/dist/client/assets/index-DwTI8opO.js +608 -0
- package/dist/client/assets/index-DwTI8opO.js.map +1 -0
- package/dist/client/assets/index-RoEdL6gO.css +1 -0
- package/dist/client/index.html +20 -0
- package/dist/client/vite.svg +9 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +56 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/ai.js +50 -0
- package/dist/server/routes/ai.js.map +1 -0
- package/dist/server/routes/execute.js +62 -0
- package/dist/server/routes/execute.js.map +1 -0
- package/dist/server/routes/workflows.js +99 -0
- package/dist/server/routes/workflows.js.map +1 -0
- package/dist/server/server/index.js +95 -0
- package/dist/server/server/index.js.map +1 -0
- package/dist/server/server/routes/ai.js +87 -0
- package/dist/server/server/routes/ai.js.map +1 -0
- package/dist/server/server/routes/execute.js +63 -0
- package/dist/server/server/routes/execute.js.map +1 -0
- package/dist/server/server/routes/tools.js +518 -0
- package/dist/server/server/routes/tools.js.map +1 -0
- package/dist/server/server/routes/workflows.js +99 -0
- package/dist/server/server/routes/workflows.js.map +1 -0
- package/dist/server/server/services/AIService.js +69 -0
- package/dist/server/server/services/AIService.js.map +1 -0
- package/dist/server/server/services/FileWatcher.js +60 -0
- package/dist/server/server/services/FileWatcher.js.map +1 -0
- package/dist/server/server/services/WorkflowService.js +363 -0
- package/dist/server/server/services/WorkflowService.js.map +1 -0
- package/dist/server/server/services/agents/claude-code-provider.js +250 -0
- package/dist/server/server/services/agents/claude-code-provider.js.map +1 -0
- package/dist/server/server/services/agents/claude-provider.js +204 -0
- package/dist/server/server/services/agents/claude-provider.js.map +1 -0
- package/dist/server/server/services/agents/copilot-provider.js +227 -0
- package/dist/server/server/services/agents/copilot-provider.js.map +1 -0
- package/dist/server/server/services/agents/demo-provider.js +167 -0
- package/dist/server/server/services/agents/demo-provider.js.map +1 -0
- package/dist/server/server/services/agents/index.js +31 -0
- package/dist/server/server/services/agents/index.js.map +1 -0
- package/dist/server/server/services/agents/ollama-provider.js +220 -0
- package/dist/server/server/services/agents/ollama-provider.js.map +1 -0
- package/dist/server/server/services/agents/prompts.js +436 -0
- package/dist/server/server/services/agents/prompts.js.map +1 -0
- package/dist/server/server/services/agents/registry.js +242 -0
- package/dist/server/server/services/agents/registry.js.map +1 -0
- package/dist/server/server/services/agents/types.js +6 -0
- package/dist/server/server/services/agents/types.js.map +1 -0
- package/dist/server/server/websocket/index.js +85 -0
- package/dist/server/server/websocket/index.js.map +1 -0
- package/dist/server/services/AIService.d.ts +30 -0
- package/dist/server/services/AIService.d.ts.map +1 -0
- package/dist/server/services/AIService.js +216 -0
- package/dist/server/services/AIService.js.map +1 -0
- package/dist/server/services/FileWatcher.d.ts +10 -0
- package/dist/server/services/FileWatcher.d.ts.map +1 -0
- package/dist/server/services/FileWatcher.js +62 -0
- package/dist/server/services/FileWatcher.js.map +1 -0
- package/dist/server/services/WorkflowService.d.ts +54 -0
- package/dist/server/services/WorkflowService.d.ts.map +1 -0
- package/dist/server/services/WorkflowService.js +323 -0
- package/dist/server/services/WorkflowService.js.map +1 -0
- package/dist/server/shared/constants.js +175 -0
- package/dist/server/shared/constants.js.map +1 -0
- package/dist/server/shared/types.js +3 -0
- package/dist/server/shared/types.js.map +1 -0
- package/dist/server/websocket/index.d.ts +10 -0
- package/dist/server/websocket/index.d.ts.map +1 -0
- package/dist/server/websocket/index.js +85 -0
- package/dist/server/websocket/index.js.map +1 -0
- package/index.html +19 -0
- package/package.json +96 -0
- package/playwright.config.ts +27 -0
- package/postcss.config.js +6 -0
- package/public/vite.svg +9 -0
- package/src/client/App.tsx +520 -0
- package/src/client/components/Canvas/Canvas.tsx +405 -0
- package/src/client/components/Canvas/ExecutionOverlay.tsx +847 -0
- package/src/client/components/Canvas/NodeContextMenu.tsx +188 -0
- package/src/client/components/Canvas/OutputNode.tsx +111 -0
- package/src/client/components/Canvas/StepNode.tsx +106 -0
- package/src/client/components/Canvas/SubWorkflowNode.tsx +141 -0
- package/src/client/components/Canvas/Toolbar.tsx +189 -0
- package/src/client/components/Canvas/TriggerNode.tsx +128 -0
- package/src/client/components/Editor/InputsEditor.tsx +458 -0
- package/src/client/components/Editor/NewStepWizard.tsx +344 -0
- package/src/client/components/Editor/StepEditor.tsx +532 -0
- package/src/client/components/Editor/YamlEditor.tsx +160 -0
- package/src/client/components/Panels/PropertiesPanel.tsx +589 -0
- package/src/client/components/Prompt/ChangePreview.tsx +281 -0
- package/src/client/components/Prompt/PromptHistoryPanel.tsx +209 -0
- package/src/client/components/Prompt/PromptInput.tsx +108 -0
- package/src/client/components/Sidebar/Sidebar.tsx +343 -0
- package/src/client/components/common/Breadcrumb.tsx +40 -0
- package/src/client/components/common/Button.tsx +68 -0
- package/src/client/components/common/ContextMenu.tsx +202 -0
- package/src/client/components/common/KeyboardShortcuts.tsx +143 -0
- package/src/client/components/common/Modal.tsx +93 -0
- package/src/client/components/common/Tabs.tsx +57 -0
- package/src/client/components/common/ThemeToggle.tsx +63 -0
- package/src/client/components/index.ts +32 -0
- package/src/client/hooks/index.ts +4 -0
- package/src/client/hooks/useAIPrompt.ts +108 -0
- package/src/client/hooks/useCanvas.ts +247 -0
- package/src/client/hooks/useWebSocket.ts +164 -0
- package/src/client/hooks/useWorkflow.ts +138 -0
- package/src/client/main.tsx +10 -0
- package/src/client/stores/canvasStore.ts +348 -0
- package/src/client/stores/editorStore.ts +133 -0
- package/src/client/stores/executionStore.ts +440 -0
- package/src/client/stores/index.ts +4 -0
- package/src/client/stores/layoutStore.ts +103 -0
- package/src/client/stores/navigationStore.ts +49 -0
- package/src/client/stores/promptStore.ts +113 -0
- package/src/client/stores/themeStore.ts +75 -0
- package/src/client/stores/workflowStore.ts +177 -0
- package/src/client/styles/globals.css +346 -0
- package/src/client/utils/cn.ts +9 -0
- package/src/client/utils/index.ts +4 -0
- package/src/client/utils/serviceIcons.tsx +64 -0
- package/src/client/utils/stepValidation.ts +155 -0
- package/src/client/utils/workflowToGraph.ts +299 -0
- package/src/server/index.ts +114 -0
- package/src/server/routes/ai.ts +91 -0
- package/src/server/routes/execute.ts +71 -0
- package/src/server/routes/tools.ts +564 -0
- package/src/server/routes/workflows.ts +106 -0
- package/src/server/services/AIService.ts +105 -0
- package/src/server/services/FileWatcher.ts +69 -0
- package/src/server/services/WorkflowService.ts +441 -0
- package/src/server/services/agents/claude-code-provider.ts +320 -0
- package/src/server/services/agents/claude-provider.ts +248 -0
- package/src/server/services/agents/copilot-provider.ts +311 -0
- package/src/server/services/agents/demo-provider.ts +184 -0
- package/src/server/services/agents/index.ts +31 -0
- package/src/server/services/agents/ollama-provider.ts +267 -0
- package/src/server/services/agents/prompts.ts +482 -0
- package/src/server/services/agents/registry.ts +289 -0
- package/src/server/services/agents/types.ts +146 -0
- package/src/server/websocket/index.ts +104 -0
- package/src/shared/constants.ts +180 -0
- package/src/shared/types.ts +179 -0
- package/tailwind.config.ts +73 -0
- package/tests/e2e/app.spec.ts +90 -0
- package/tests/e2e/canvas.spec.ts +128 -0
- package/tests/e2e/workflow.spec.ts +185 -0
- package/tests/integration/api.test.ts +250 -0
- package/tests/integration/testApp.ts +31 -0
- package/tests/setup.ts +37 -0
- package/tests/unit/canvasStore.test.ts +502 -0
- package/tests/unit/components.test.tsx +151 -0
- package/tests/unit/executionStore.test.ts +527 -0
- package/tests/unit/layoutStore.test.ts +194 -0
- package/tests/unit/navigationStore.test.ts +152 -0
- package/tests/unit/stepValidation.test.ts +226 -0
- package/tests/unit/themeStore.test.ts +141 -0
- package/tests/unit/workflowToGraph.test.ts +289 -0
- package/tsconfig.json +29 -0
- package/tsconfig.server.json +28 -0
- package/vite.config.ts +31 -0
- package/vitest.config.ts +26 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
> @marktoflow/gui@2.0.0-alpha.1 build /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
3
|
+
> pnpm build:client && pnpm build:server
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
> @marktoflow/gui@2.0.0-alpha.1 build:client /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
7
|
+
> vite build
|
|
8
|
+
|
|
9
|
+
vite v6.4.1 building for production...
|
|
10
|
+
transforming...
|
|
11
|
+
✓ 2259 modules transformed.
|
|
12
|
+
rendering chunks...
|
|
13
|
+
computing gzip size...
|
|
14
|
+
dist/client/index.html 0.83 kB │ gzip: 0.46 kB
|
|
15
|
+
dist/client/assets/index-RoEdL6gO.css 44.51 kB │ gzip: 8.37 kB
|
|
16
|
+
dist/client/assets/index-DwTI8opO.js 835.13 kB │ gzip: 261.15 kB │ map: 3,374.67 kB
|
|
17
|
+
|
|
18
|
+
(!) Some chunks are larger than 500 kB after minification. Consider:
|
|
19
|
+
- Using dynamic import() to code-split the application
|
|
20
|
+
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
|
|
21
|
+
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
|
|
22
|
+
✓ built in 1.51s
|
|
23
|
+
|
|
24
|
+
> @marktoflow/gui@2.0.0-alpha.1 build:server /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
25
|
+
> tsc -p tsconfig.server.json
|
|
26
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
> @marktoflow/gui@2.0.0-alpha.1 test /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
3
|
+
> vitest run
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
RUN v2.1.9 /Volumes/USBEXT/sandbox/personal/marktoflow/packages/gui
|
|
7
|
+
|
|
8
|
+
✓ tests/unit/workflowToGraph.test.ts (15 tests) 3ms
|
|
9
|
+
✓ tests/unit/navigationStore.test.ts (10 tests) 6ms
|
|
10
|
+
✓ tests/unit/stepValidation.test.ts (17 tests) 7ms
|
|
11
|
+
✓ tests/unit/themeStore.test.ts (9 tests) 4ms
|
|
12
|
+
✓ tests/unit/layoutStore.test.ts (18 tests) 7ms
|
|
13
|
+
✓ tests/unit/executionStore.test.ts (43 tests) 24ms
|
|
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
|
|
17
|
+
|
|
18
|
+
Test Files 9 passed (9)
|
|
19
|
+
Tests 173 passed (173)
|
|
20
|
+
Start at 17:09:24
|
|
21
|
+
Duration 1.39s (transform 485ms, setup 761ms, collect 1.30s, tests 135ms, environment 4.27s, prepare 499ms)
|
|
22
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# @marktoflow/gui
|
|
2
|
+
|
|
3
|
+
Visual workflow designer for marktoflow - a web-based drag-and-drop editor with AI-powered assistance.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Visual Workflow Editor** - Drag-and-drop interface for creating and editing workflows
|
|
8
|
+
- **AI-Powered Assistance** - Natural language commands to modify workflows
|
|
9
|
+
- **Multiple AI Backends** - Support for Claude Code, GitHub Copilot, and more
|
|
10
|
+
- **Real-time Execution** - Run and debug workflows directly from the UI
|
|
11
|
+
- **Live File Sync** - Changes sync automatically with your workflow files
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @marktoflow/gui
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Or use via the CLI:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx @marktoflow/cli gui
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### Via CLI (Recommended)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Start the GUI server
|
|
31
|
+
marktoflow gui
|
|
32
|
+
|
|
33
|
+
# With options
|
|
34
|
+
marktoflow gui --port 3000 # Custom port
|
|
35
|
+
marktoflow gui --open # Open browser automatically
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Programmatic Usage
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
import { startServer } from '@marktoflow/gui';
|
|
42
|
+
|
|
43
|
+
// Start the GUI server
|
|
44
|
+
const server = await startServer({
|
|
45
|
+
port: 3001,
|
|
46
|
+
workflowDir: './workflows',
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
console.log('GUI available at http://localhost:3001');
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Interface Overview
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
+------------------+------------------------+------------------+
|
|
56
|
+
| | | |
|
|
57
|
+
| Sidebar | Canvas | Properties |
|
|
58
|
+
| (Workflows | (Visual Editor) | Panel |
|
|
59
|
+
| & Tools) | | |
|
|
60
|
+
| | | |
|
|
61
|
+
+------------------+------------------------+------------------+
|
|
62
|
+
| AI Prompt Input |
|
|
63
|
+
+--------------------------------------------------------------+
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Components
|
|
67
|
+
|
|
68
|
+
- **Left Sidebar** - Browse workflows and drag tools onto the canvas
|
|
69
|
+
- **Canvas** - Visual node-based workflow editor with pan/zoom
|
|
70
|
+
- **Properties Panel** - Edit step properties, view variables, execution history
|
|
71
|
+
- **AI Prompt** - Natural language input for AI-assisted editing
|
|
72
|
+
|
|
73
|
+
## AI Providers
|
|
74
|
+
|
|
75
|
+
The GUI supports multiple AI backends for workflow assistance:
|
|
76
|
+
|
|
77
|
+
| Provider | SDK | Authentication |
|
|
78
|
+
|----------|-----|----------------|
|
|
79
|
+
| Claude Code | `@anthropic-ai/claude-agent-sdk` | Claude CLI (`claude`) |
|
|
80
|
+
| GitHub Copilot | `@github/copilot-sdk` | Copilot CLI (`copilot auth`) |
|
|
81
|
+
| Claude API | `@anthropic-ai/sdk` | `ANTHROPIC_API_KEY` |
|
|
82
|
+
| Ollama | REST API | Local server |
|
|
83
|
+
| Demo Mode | - | Always available |
|
|
84
|
+
|
|
85
|
+
### Setting Up AI Providers
|
|
86
|
+
|
|
87
|
+
**Claude Code (Recommended)**
|
|
88
|
+
```bash
|
|
89
|
+
# Authenticate with Claude CLI first
|
|
90
|
+
claude
|
|
91
|
+
|
|
92
|
+
# The GUI will automatically detect and use Claude Code
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**GitHub Copilot**
|
|
96
|
+
```bash
|
|
97
|
+
# Authenticate with Copilot CLI
|
|
98
|
+
copilot auth
|
|
99
|
+
|
|
100
|
+
# The GUI will automatically detect and use Copilot
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## API Endpoints
|
|
104
|
+
|
|
105
|
+
The GUI server exposes a REST API:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Workflow operations
|
|
109
|
+
GET /api/workflows # List all workflows
|
|
110
|
+
GET /api/workflows/:path # Get workflow by path
|
|
111
|
+
POST /api/workflows # Create/update workflow
|
|
112
|
+
|
|
113
|
+
# AI operations
|
|
114
|
+
GET /api/ai/providers # List AI providers and status
|
|
115
|
+
POST /api/ai/providers/:id # Set active AI provider
|
|
116
|
+
POST /api/ai/prompt # Send prompt to AI
|
|
117
|
+
|
|
118
|
+
# Execution
|
|
119
|
+
POST /api/execute/:path # Execute a workflow
|
|
120
|
+
GET /api/execute/status/:runId # Get execution status
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Keyboard Shortcuts
|
|
124
|
+
|
|
125
|
+
| Shortcut | Action |
|
|
126
|
+
|----------|--------|
|
|
127
|
+
| `Ctrl/Cmd + S` | Save workflow |
|
|
128
|
+
| `Ctrl/Cmd + Z` | Undo |
|
|
129
|
+
| `Ctrl/Cmd + Shift + Z` | Redo |
|
|
130
|
+
| `Delete/Backspace` | Delete selected |
|
|
131
|
+
| `Ctrl/Cmd + A` | Select all |
|
|
132
|
+
| `Escape` | Deselect all |
|
|
133
|
+
| `Ctrl/Cmd + D` | Duplicate selected |
|
|
134
|
+
|
|
135
|
+
## Configuration
|
|
136
|
+
|
|
137
|
+
Environment variables:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Server configuration
|
|
141
|
+
PORT=3001 # Server port (default: 3001)
|
|
142
|
+
WORKFLOW_DIR=./workflows # Workflow directory
|
|
143
|
+
|
|
144
|
+
# AI provider configuration
|
|
145
|
+
ANTHROPIC_API_KEY=... # For Claude API provider
|
|
146
|
+
OLLAMA_BASE_URL=... # For Ollama provider
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Development
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Install dependencies
|
|
153
|
+
pnpm install
|
|
154
|
+
|
|
155
|
+
# Start development server
|
|
156
|
+
pnpm dev
|
|
157
|
+
|
|
158
|
+
# Build for production
|
|
159
|
+
pnpm build
|
|
160
|
+
|
|
161
|
+
# Run tests
|
|
162
|
+
pnpm test
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Requirements
|
|
166
|
+
|
|
167
|
+
- Node.js 18+
|
|
168
|
+
- Modern browser (Chrome, Firefox, Safari, Edge)
|
|
169
|
+
- Screen resolution: 1280x720 minimum
|
|
170
|
+
|
|
171
|
+
## Documentation
|
|
172
|
+
|
|
173
|
+
- [User Guide](../../docs/GUI_USER_GUIDE.md)
|
|
174
|
+
- [API Reference](../../docs/GUI_API_REFERENCE.md)
|
|
175
|
+
- [Developer Guide](../../docs/GUI_DEVELOPER_GUIDE.md)
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
MIT
|