@marktoflow/gui 2.0.1 → 2.0.3

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.
Files changed (167) hide show
  1. package/README.md +9 -3
  2. package/coverage/base.css +224 -0
  3. package/coverage/block-navigation.js +87 -0
  4. package/coverage/client/App.tsx.html +2230 -0
  5. package/coverage/client/components/Accessibility/LiveRegion.tsx.html +166 -0
  6. package/coverage/client/components/Accessibility/SkipNav.tsx.html +106 -0
  7. package/coverage/client/components/Accessibility/index.html +131 -0
  8. package/coverage/client/components/Admin/AuditViewer.tsx.html +214 -0
  9. package/coverage/client/components/Admin/EnvironmentSwitcher.tsx.html +187 -0
  10. package/coverage/client/components/Admin/RoleManager.tsx.html +250 -0
  11. package/coverage/client/components/Admin/SecretsVault.tsx.html +241 -0
  12. package/coverage/client/components/Admin/index.html +161 -0
  13. package/coverage/client/components/Canvas/AlignmentTools.tsx.html +694 -0
  14. package/coverage/client/components/Canvas/Canvas.tsx.html +1513 -0
  15. package/coverage/client/components/Canvas/DataPreviewBadge.tsx.html +307 -0
  16. package/coverage/client/components/Canvas/ExecutionInputDialog.tsx.html +769 -0
  17. package/coverage/client/components/Canvas/ExecutionOverlay.tsx.html +2938 -0
  18. package/coverage/client/components/Canvas/ForEachNode.tsx.html +568 -0
  19. package/coverage/client/components/Canvas/GroupNode.tsx.html +421 -0
  20. package/coverage/client/components/Canvas/IfElseNode.tsx.html +508 -0
  21. package/coverage/client/components/Canvas/InlineEditor.tsx.html +472 -0
  22. package/coverage/client/components/Canvas/NodeContextMenu.tsx.html +661 -0
  23. package/coverage/client/components/Canvas/NodeTooltip.tsx.html +316 -0
  24. package/coverage/client/components/Canvas/OutputNode.tsx.html +418 -0
  25. package/coverage/client/components/Canvas/ParallelNode.tsx.html +556 -0
  26. package/coverage/client/components/Canvas/StepNode.tsx.html +463 -0
  27. package/coverage/client/components/Canvas/StickyNoteNode.tsx.html +442 -0
  28. package/coverage/client/components/Canvas/SubWorkflowNode.tsx.html +508 -0
  29. package/coverage/client/components/Canvas/SwitchNode.tsx.html +640 -0
  30. package/coverage/client/components/Canvas/Toolbar.tsx.html +1030 -0
  31. package/coverage/client/components/Canvas/TransformNode.tsx.html +667 -0
  32. package/coverage/client/components/Canvas/TriggerNode.tsx.html +469 -0
  33. package/coverage/client/components/Canvas/TryCatchNode.tsx.html +577 -0
  34. package/coverage/client/components/Canvas/WhileNode.tsx.html +595 -0
  35. package/coverage/client/components/Canvas/index.html +446 -0
  36. package/coverage/client/components/Canvas/index.ts.html +157 -0
  37. package/coverage/client/components/Collaboration/ActivityFeed.tsx.html +253 -0
  38. package/coverage/client/components/Collaboration/CommentThread.tsx.html +397 -0
  39. package/coverage/client/components/Collaboration/LockIndicator.tsx.html +172 -0
  40. package/coverage/client/components/Collaboration/PresenceIndicator.tsx.html +214 -0
  41. package/coverage/client/components/Collaboration/index.html +161 -0
  42. package/coverage/client/components/CommandPalette/CommandItem.tsx.html +313 -0
  43. package/coverage/client/components/CommandPalette/CommandPalette.tsx.html +685 -0
  44. package/coverage/client/components/CommandPalette/index.html +131 -0
  45. package/coverage/client/components/Debug/VariableInspector.tsx.html +529 -0
  46. package/coverage/client/components/Debug/index.html +116 -0
  47. package/coverage/client/components/Editor/InputsEditor.tsx.html +1459 -0
  48. package/coverage/client/components/Editor/NewStepWizard.tsx.html +1117 -0
  49. package/coverage/client/components/Editor/StepEditor.tsx.html +1681 -0
  50. package/coverage/client/components/Editor/YamlEditor.tsx.html +565 -0
  51. package/coverage/client/components/Editor/index.html +161 -0
  52. package/coverage/client/components/Execution/TimelineView.tsx.html +397 -0
  53. package/coverage/client/components/Execution/index.html +116 -0
  54. package/coverage/client/components/Onboarding/OnboardingTour.tsx.html +265 -0
  55. package/coverage/client/components/Onboarding/index.html +116 -0
  56. package/coverage/client/components/Panels/PropertiesPanel.tsx.html +2035 -0
  57. package/coverage/client/components/Panels/ValidationPanel.tsx.html +856 -0
  58. package/coverage/client/components/Panels/index.html +131 -0
  59. package/coverage/client/components/Prompt/ChangePreview.tsx.html +928 -0
  60. package/coverage/client/components/Prompt/PromptHistoryPanel.tsx.html +712 -0
  61. package/coverage/client/components/Prompt/PromptInput.tsx.html +415 -0
  62. package/coverage/client/components/Prompt/index.html +146 -0
  63. package/coverage/client/components/Settings/ProviderSwitcher.tsx.html +1306 -0
  64. package/coverage/client/components/Settings/SettingsPanel.tsx.html +355 -0
  65. package/coverage/client/components/Settings/controls/SettingNumber.tsx.html +211 -0
  66. package/coverage/client/components/Settings/controls/SettingSelect.tsx.html +196 -0
  67. package/coverage/client/components/Settings/controls/SettingToggle.tsx.html +199 -0
  68. package/coverage/client/components/Settings/controls/index.html +146 -0
  69. package/coverage/client/components/Settings/index.html +131 -0
  70. package/coverage/client/components/Settings/sections/AISettings.tsx.html +154 -0
  71. package/coverage/client/components/Settings/sections/CanvasSettings.tsx.html +220 -0
  72. package/coverage/client/components/Settings/sections/EditorSettings.tsx.html +208 -0
  73. package/coverage/client/components/Settings/sections/ExecutionSettings.tsx.html +172 -0
  74. package/coverage/client/components/Settings/sections/GeneralSettings.tsx.html +151 -0
  75. package/coverage/client/components/Settings/sections/NotificationSettings.tsx.html +190 -0
  76. package/coverage/client/components/Settings/sections/index.html +191 -0
  77. package/coverage/client/components/Sidebar/ImportDialog.tsx.html +856 -0
  78. package/coverage/client/components/Sidebar/NewWorkflowDialog.tsx.html +694 -0
  79. package/coverage/client/components/Sidebar/Sidebar.tsx.html +1456 -0
  80. package/coverage/client/components/Sidebar/index.html +146 -0
  81. package/coverage/client/components/Templates/TemplateCard.tsx.html +181 -0
  82. package/coverage/client/components/Templates/TemplateGallery.tsx.html +307 -0
  83. package/coverage/client/components/Templates/index.html +131 -0
  84. package/coverage/client/components/Versions/DiffViewer.tsx.html +220 -0
  85. package/coverage/client/components/Versions/VersionHistory.tsx.html +352 -0
  86. package/coverage/client/components/Versions/index.html +131 -0
  87. package/coverage/client/components/common/Breadcrumb.tsx.html +205 -0
  88. package/coverage/client/components/common/Button.tsx.html +289 -0
  89. package/coverage/client/components/common/ContextMenu.tsx.html +691 -0
  90. package/coverage/client/components/common/KeyboardShortcuts.tsx.html +541 -0
  91. package/coverage/client/components/common/Modal.tsx.html +364 -0
  92. package/coverage/client/components/common/Tabs.tsx.html +256 -0
  93. package/coverage/client/components/common/ThemeToggle.tsx.html +301 -0
  94. package/coverage/client/components/common/index.html +206 -0
  95. package/coverage/client/components/index.html +116 -0
  96. package/coverage/client/components/index.ts.html +181 -0
  97. package/coverage/client/hooks/index.html +176 -0
  98. package/coverage/client/hooks/index.ts.html +97 -0
  99. package/coverage/client/hooks/useAIPrompt.ts.html +409 -0
  100. package/coverage/client/hooks/useCanvas.ts.html +739 -0
  101. package/coverage/client/hooks/useWebSocket.ts.html +580 -0
  102. package/coverage/client/hooks/useWorkflow.ts.html +502 -0
  103. package/coverage/client/index.html +131 -0
  104. package/coverage/client/main.tsx.html +115 -0
  105. package/coverage/client/stores/agentStore.ts.html +421 -0
  106. package/coverage/client/stores/canvasStore.ts.html +1129 -0
  107. package/coverage/client/stores/collaborationStore.ts.html +544 -0
  108. package/coverage/client/stores/commandStore.ts.html +610 -0
  109. package/coverage/client/stores/editorStore.ts.html +484 -0
  110. package/coverage/client/stores/executionStore.ts.html +1594 -0
  111. package/coverage/client/stores/governanceStore.ts.html +493 -0
  112. package/coverage/client/stores/index.html +341 -0
  113. package/coverage/client/stores/index.ts.html +112 -0
  114. package/coverage/client/stores/layoutStore.ts.html +439 -0
  115. package/coverage/client/stores/navigationStore.ts.html +232 -0
  116. package/coverage/client/stores/onboardingStore.ts.html +247 -0
  117. package/coverage/client/stores/promptStore.ts.html +430 -0
  118. package/coverage/client/stores/settingsStore.ts.html +472 -0
  119. package/coverage/client/stores/themeStore.ts.html +271 -0
  120. package/coverage/client/stores/versionStore.ts.html +340 -0
  121. package/coverage/client/stores/workflowStore.ts.html +739 -0
  122. package/coverage/client/utils/applyDagreLayout.ts.html +286 -0
  123. package/coverage/client/utils/cn.ts.html +112 -0
  124. package/coverage/client/utils/index.html +206 -0
  125. package/coverage/client/utils/index.ts.html +97 -0
  126. package/coverage/client/utils/platform.ts.html +223 -0
  127. package/coverage/client/utils/serviceIcons.tsx.html +376 -0
  128. package/coverage/client/utils/stepValidation.ts.html +550 -0
  129. package/coverage/client/utils/workflowToGraph.ts.html +1624 -0
  130. package/coverage/coverage-final.json +107 -0
  131. package/coverage/favicon.png +0 -0
  132. package/coverage/index.html +461 -0
  133. package/coverage/prettify.css +1 -0
  134. package/coverage/prettify.js +2 -0
  135. package/coverage/shared/constants.ts.html +655 -0
  136. package/coverage/shared/index.html +146 -0
  137. package/coverage/shared/settings.ts.html +406 -0
  138. package/coverage/shared/types.ts.html +622 -0
  139. package/coverage/sort-arrow-sprite.png +0 -0
  140. package/coverage/sorter.js +210 -0
  141. package/dist/client/assets/{index-DQeR1ew6.css → index-DipWdkNl.css} +1 -1
  142. package/dist/client/assets/{index-LbIVPHbD.js → index-DtX_BPDj.js} +20 -20
  143. package/dist/client/assets/{index-LbIVPHbD.js.map → index-DtX_BPDj.js.map} +1 -1
  144. package/dist/client/index.html +3 -3
  145. package/dist/server/routes/form.js +27 -1
  146. package/dist/server/routes/form.js.map +1 -1
  147. package/dist/server/services/AIService.js +16 -6
  148. package/dist/server/services/AIService.js.map +1 -1
  149. package/dist/server/services/agents/{claude-code-provider.js → claude-agent-provider.js} +11 -11
  150. package/dist/server/services/agents/claude-agent-provider.js.map +1 -0
  151. package/dist/server/services/agents/claude-provider.js +4 -5
  152. package/dist/server/services/agents/claude-provider.js.map +1 -1
  153. package/dist/server/services/agents/codex-provider.js +5 -6
  154. package/dist/server/services/agents/codex-provider.js.map +1 -1
  155. package/dist/server/services/agents/copilot-provider.js +35 -8
  156. package/dist/server/services/agents/copilot-provider.js.map +1 -1
  157. package/dist/server/services/agents/openai-provider.js +244 -0
  158. package/dist/server/services/agents/openai-provider.js.map +1 -0
  159. package/dist/server/services/agents/opencode-provider.js +258 -0
  160. package/dist/server/services/agents/opencode-provider.js.map +1 -0
  161. package/dist/server/services/agents/registry.js +17 -22
  162. package/dist/server/services/agents/registry.js.map +1 -1
  163. package/index.html +1 -1
  164. package/package.json +3 -3
  165. package/client.log +0 -0
  166. package/dist/server/services/agents/claude-code-provider.js.map +0 -1
  167. package/server.log +0 -0
@@ -0,0 +1,244 @@
1
+ /**
2
+ * OpenAI Provider for GUI
3
+ * Supports OpenAI API, VLLM, and any OpenAI-compatible endpoint
4
+ */
5
+ import { buildPrompt, generateSuggestions } from './prompts.js';
6
+ export class OpenAIProvider {
7
+ id = 'openai';
8
+ name = 'OpenAI';
9
+ capabilities = {
10
+ streaming: true,
11
+ toolUse: true,
12
+ codeExecution: false,
13
+ systemPrompts: true,
14
+ models: ['gpt-4.5', 'gpt-4.1', 'gpt-4.1-mini', 'gpt-4o', 'o3'],
15
+ };
16
+ apiKey = '';
17
+ baseUrl = 'https://api.openai.com/v1';
18
+ model = 'gpt-4.5';
19
+ ready = false;
20
+ error;
21
+ async initialize(config) {
22
+ try {
23
+ // Get API key from config or environment
24
+ this.apiKey = config.apiKey || process.env.OPENAI_API_KEY || '';
25
+ // For VLLM/local endpoints, use dummy key
26
+ if (config.baseUrl && !this.apiKey) {
27
+ this.apiKey = 'dummy-key';
28
+ }
29
+ if (!this.apiKey) {
30
+ this.ready = false;
31
+ this.error = 'OPENAI_API_KEY not set. Set environment variable or provide in config.';
32
+ return;
33
+ }
34
+ // Configure base URL (for VLLM or other OpenAI-compatible endpoints)
35
+ if (config.baseUrl) {
36
+ this.baseUrl = config.baseUrl;
37
+ }
38
+ // Configure model
39
+ if (config.model) {
40
+ this.model = config.model;
41
+ }
42
+ // Test the connection
43
+ try {
44
+ await this.testConnection();
45
+ this.ready = true;
46
+ this.error = undefined;
47
+ }
48
+ catch (err) {
49
+ this.ready = false;
50
+ this.error = err instanceof Error ? err.message : 'Failed to connect to OpenAI API';
51
+ }
52
+ }
53
+ catch (err) {
54
+ this.ready = false;
55
+ this.error = err instanceof Error ? err.message : 'Unknown error initializing OpenAI';
56
+ }
57
+ }
58
+ async testConnection() {
59
+ const response = await fetch(`${this.baseUrl}/models`, {
60
+ headers: {
61
+ Authorization: `Bearer ${this.apiKey}`,
62
+ },
63
+ });
64
+ if (!response.ok) {
65
+ throw new Error(`API test failed: ${response.statusText}`);
66
+ }
67
+ }
68
+ isReady() {
69
+ return this.ready;
70
+ }
71
+ getStatus() {
72
+ return {
73
+ ready: this.ready,
74
+ model: this.model,
75
+ error: this.error,
76
+ };
77
+ }
78
+ async processPrompt(prompt, workflow, context) {
79
+ if (!this.ready) {
80
+ return {
81
+ explanation: 'OpenAI provider not available.',
82
+ error: this.error || 'Provider not initialized',
83
+ };
84
+ }
85
+ try {
86
+ const { systemPrompt, userPrompt } = buildPrompt(prompt, workflow, context);
87
+ const messages = [
88
+ { role: 'system', content: systemPrompt },
89
+ { role: 'user', content: userPrompt },
90
+ ];
91
+ const response = await this.callOpenAI(messages);
92
+ const responseText = response.choices[0]?.message?.content || '';
93
+ return await this.parseAIResponse(responseText, workflow);
94
+ }
95
+ catch (err) {
96
+ return {
97
+ explanation: '',
98
+ error: err instanceof Error ? err.message : 'Unknown error',
99
+ };
100
+ }
101
+ }
102
+ async callOpenAI(messages) {
103
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
104
+ method: 'POST',
105
+ headers: {
106
+ 'Content-Type': 'application/json',
107
+ Authorization: `Bearer ${this.apiKey}`,
108
+ },
109
+ body: JSON.stringify({
110
+ model: this.model,
111
+ messages,
112
+ temperature: 0.7,
113
+ max_tokens: 4000,
114
+ }),
115
+ });
116
+ if (!response.ok) {
117
+ const errorText = await response.text();
118
+ throw new Error(`OpenAI API error: ${response.statusText} - ${errorText}`);
119
+ }
120
+ return response.json();
121
+ }
122
+ async streamPrompt(prompt, workflow, onChunk, context) {
123
+ if (!this.ready) {
124
+ return this.processPrompt(prompt, workflow, context);
125
+ }
126
+ try {
127
+ const { systemPrompt, userPrompt } = buildPrompt(prompt, workflow, context);
128
+ const messages = [
129
+ { role: 'system', content: systemPrompt },
130
+ { role: 'user', content: userPrompt },
131
+ ];
132
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
133
+ method: 'POST',
134
+ headers: {
135
+ 'Content-Type': 'application/json',
136
+ Authorization: `Bearer ${this.apiKey}`,
137
+ },
138
+ body: JSON.stringify({
139
+ model: this.model,
140
+ messages,
141
+ temperature: 0.7,
142
+ max_tokens: 4000,
143
+ stream: true,
144
+ }),
145
+ });
146
+ if (!response.ok) {
147
+ throw new Error(`OpenAI API error: ${response.statusText}`);
148
+ }
149
+ let fullResponse = '';
150
+ const reader = response.body?.getReader();
151
+ const decoder = new TextDecoder();
152
+ if (!reader) {
153
+ throw new Error('No response body');
154
+ }
155
+ while (true) {
156
+ const { done, value } = await reader.read();
157
+ if (done)
158
+ break;
159
+ const chunk = decoder.decode(value);
160
+ const lines = chunk.split('\n').filter((line) => line.trim() !== '');
161
+ for (const line of lines) {
162
+ if (line.startsWith('data: ')) {
163
+ const data = line.slice(6);
164
+ if (data === '[DONE]')
165
+ continue;
166
+ try {
167
+ const parsed = JSON.parse(data);
168
+ const content = parsed.choices[0]?.delta?.content;
169
+ if (content) {
170
+ fullResponse += content;
171
+ onChunk(content);
172
+ }
173
+ }
174
+ catch {
175
+ // Skip invalid JSON
176
+ }
177
+ }
178
+ }
179
+ }
180
+ return await this.parseAIResponse(fullResponse, workflow);
181
+ }
182
+ catch (err) {
183
+ return {
184
+ explanation: '',
185
+ error: err instanceof Error ? err.message : 'Unknown error',
186
+ };
187
+ }
188
+ }
189
+ async getSuggestions(workflow, selectedStepId) {
190
+ return generateSuggestions(workflow, selectedStepId);
191
+ }
192
+ async cancel() {
193
+ // OpenAI doesn't provide a cancel mechanism via API
194
+ // The request will be aborted by closing the connection
195
+ }
196
+ async parseAIResponse(responseText, originalWorkflow) {
197
+ const yamlMatch = responseText.match(/```yaml\n([\s\S]*?)\n```/);
198
+ let modifiedWorkflow;
199
+ let explanation = responseText;
200
+ if (yamlMatch) {
201
+ try {
202
+ const { parse } = await import('yaml');
203
+ const parsedYaml = parse(yamlMatch[1]);
204
+ if (parsedYaml && (parsedYaml.steps || parsedYaml.metadata)) {
205
+ modifiedWorkflow = parsedYaml;
206
+ const explanationMatch = responseText.match(/^([\s\S]*?)```yaml/);
207
+ if (explanationMatch) {
208
+ explanation = explanationMatch[1].trim();
209
+ }
210
+ }
211
+ }
212
+ catch {
213
+ // Failed to parse YAML
214
+ }
215
+ }
216
+ let diff;
217
+ if (modifiedWorkflow) {
218
+ diff = this.generateDiff(originalWorkflow, modifiedWorkflow);
219
+ }
220
+ return { explanation, workflow: modifiedWorkflow, diff };
221
+ }
222
+ generateDiff(original, modified) {
223
+ const originalStepIds = new Set(original.steps?.map((s) => s.id) || []);
224
+ const modifiedStepIds = new Set(modified.steps?.map((s) => s.id) || []);
225
+ const added = modified.steps?.filter((s) => !originalStepIds.has(s.id)) || [];
226
+ const removed = original.steps?.filter((s) => !modifiedStepIds.has(s.id)) || [];
227
+ let diff = '';
228
+ if (added.length > 0) {
229
+ diff += `+ Added ${added.length} step(s): ${added.map((s) => s.name || s.id).join(', ')}\n`;
230
+ }
231
+ if (removed.length > 0) {
232
+ diff += `- Removed ${removed.length} step(s): ${removed.map((s) => s.name || s.id).join(', ')}\n`;
233
+ }
234
+ return diff || 'No structural changes detected';
235
+ }
236
+ }
237
+ export function createOpenAIProvider(config) {
238
+ const provider = new OpenAIProvider();
239
+ if (config) {
240
+ provider.initialize(config);
241
+ }
242
+ return provider;
243
+ }
244
+ //# sourceMappingURL=openai-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../../../../src/server/services/agents/openai-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,258 @@
1
+ /**
2
+ * OpenCode Provider for GUI
3
+ * Supports OpenCode in both CLI and server modes
4
+ *
5
+ * Configuration:
6
+ * - CLI mode: Uses local opencode CLI (must be installed)
7
+ * - Server mode: Connects to opencode server
8
+ * - Default server: http://localhost:4096
9
+ * - Configure via baseUrl option in GUI
10
+ * - Start server with: opencode serve --port 4096
11
+ */
12
+ import { buildPrompt, generateSuggestions } from './prompts.js';
13
+ export class OpenCodeProvider {
14
+ static DEFAULT_PORT = 4096;
15
+ static DEFAULT_SERVER_URL = `http://localhost:${OpenCodeProvider.DEFAULT_PORT}`;
16
+ id = 'opencode';
17
+ name = 'OpenCode';
18
+ capabilities = {
19
+ streaming: true,
20
+ toolUse: true,
21
+ codeExecution: true,
22
+ systemPrompts: true,
23
+ models: [], // OpenCode supports many models via different backends
24
+ };
25
+ mode = 'cli';
26
+ serverUrl = OpenCodeProvider.DEFAULT_SERVER_URL;
27
+ ready = false;
28
+ error;
29
+ model;
30
+ async initialize(config) {
31
+ try {
32
+ // Determine mode (server or CLI)
33
+ if (config.options?.mode === 'server' || config.baseUrl) {
34
+ this.mode = 'server';
35
+ if (config.baseUrl) {
36
+ this.serverUrl = config.baseUrl;
37
+ }
38
+ else if (config.options?.port) {
39
+ // Support direct port configuration
40
+ const port = config.options.port;
41
+ this.serverUrl = `http://localhost:${port}`;
42
+ }
43
+ }
44
+ // Set model if provided
45
+ if (config.model) {
46
+ this.model = config.model;
47
+ }
48
+ // Test availability
49
+ if (this.mode === 'server') {
50
+ await this.testServerConnection();
51
+ }
52
+ else {
53
+ await this.testCLI();
54
+ }
55
+ this.ready = true;
56
+ this.error = undefined;
57
+ }
58
+ catch (err) {
59
+ this.ready = false;
60
+ this.error = err instanceof Error ? err.message : 'Unknown error initializing OpenCode';
61
+ }
62
+ }
63
+ async testServerConnection() {
64
+ try {
65
+ const response = await fetch(`${this.serverUrl}/health`).catch(() => null);
66
+ if (!response || !response.ok) {
67
+ throw new Error(`OpenCode server not responding at ${this.serverUrl}. Start with: opencode serve --port 4096`);
68
+ }
69
+ }
70
+ catch (err) {
71
+ throw new Error(`OpenCode server not available. Start with: opencode serve --port 4096`);
72
+ }
73
+ }
74
+ async testCLI() {
75
+ // Check if opencode CLI is available
76
+ const { spawn } = await import('node:child_process');
77
+ return new Promise((resolve, reject) => {
78
+ const process = spawn('which', ['opencode']);
79
+ process.on('close', (code) => {
80
+ if (code === 0) {
81
+ resolve();
82
+ }
83
+ else {
84
+ reject(new Error('OpenCode CLI not found. Install from: https://opencode.ai'));
85
+ }
86
+ });
87
+ process.on('error', () => {
88
+ reject(new Error('OpenCode CLI not found. Install from: https://opencode.ai'));
89
+ });
90
+ });
91
+ }
92
+ isReady() {
93
+ return this.ready;
94
+ }
95
+ getStatus() {
96
+ const status = {
97
+ ready: this.ready,
98
+ error: this.error,
99
+ };
100
+ // Show current configuration
101
+ if (this.mode === 'server') {
102
+ status.model = `Server: ${this.serverUrl}${this.model ? ` (${this.model})` : ''}`;
103
+ }
104
+ else {
105
+ status.model = this.model || 'CLI mode';
106
+ }
107
+ return status;
108
+ }
109
+ async processPrompt(prompt, workflow, context) {
110
+ if (!this.ready) {
111
+ return {
112
+ explanation: 'OpenCode not available.',
113
+ error: this.error || 'Provider not initialized',
114
+ };
115
+ }
116
+ try {
117
+ const { systemPrompt, userPrompt } = buildPrompt(prompt, workflow, context);
118
+ const fullPrompt = `${systemPrompt}\n\n---\n\nUser request: ${userPrompt}`;
119
+ let responseText;
120
+ if (this.mode === 'server') {
121
+ responseText = await this.callServer(fullPrompt);
122
+ }
123
+ else {
124
+ responseText = await this.callCLI(fullPrompt);
125
+ }
126
+ return await this.parseAIResponse(responseText, workflow);
127
+ }
128
+ catch (err) {
129
+ return {
130
+ explanation: '',
131
+ error: err instanceof Error ? err.message : 'Unknown error',
132
+ };
133
+ }
134
+ }
135
+ async callServer(prompt) {
136
+ // Create session if needed, then send prompt
137
+ const sessionResponse = await fetch(`${this.serverUrl}/api/session`, {
138
+ method: 'POST',
139
+ headers: { 'Content-Type': 'application/json' },
140
+ body: JSON.stringify({}),
141
+ });
142
+ if (!sessionResponse.ok) {
143
+ throw new Error('Failed to create OpenCode session');
144
+ }
145
+ const sessionData = (await sessionResponse.json());
146
+ const sessionId = sessionData.id;
147
+ // Send prompt to session
148
+ const promptResponse = await fetch(`${this.serverUrl}/api/session/${sessionId}/prompt`, {
149
+ method: 'POST',
150
+ headers: { 'Content-Type': 'application/json' },
151
+ body: JSON.stringify({
152
+ parts: [{ type: 'text', text: prompt }],
153
+ model: this.model,
154
+ }),
155
+ });
156
+ if (!promptResponse.ok) {
157
+ throw new Error('OpenCode server error');
158
+ }
159
+ const result = (await promptResponse.json());
160
+ // Extract text from response parts
161
+ if (result.parts) {
162
+ return result.parts
163
+ .filter((p) => p.type === 'text')
164
+ .map((p) => p.text || '')
165
+ .join('\n');
166
+ }
167
+ return result.message || '';
168
+ }
169
+ async callCLI(prompt) {
170
+ const { spawn } = await import('node:child_process');
171
+ return new Promise((resolve, reject) => {
172
+ const args = ['run'];
173
+ if (this.model) {
174
+ args.push('--model', this.model);
175
+ }
176
+ args.push(prompt);
177
+ const process = spawn('opencode', args);
178
+ let output = '';
179
+ let errorOutput = '';
180
+ process.stdout.on('data', (data) => {
181
+ output += data.toString();
182
+ });
183
+ process.stderr.on('data', (data) => {
184
+ errorOutput += data.toString();
185
+ });
186
+ process.on('close', (code) => {
187
+ if (code === 0) {
188
+ resolve(output);
189
+ }
190
+ else {
191
+ reject(new Error(`OpenCode CLI failed: ${errorOutput || output}`));
192
+ }
193
+ });
194
+ process.on('error', (err) => {
195
+ reject(new Error(`Failed to run OpenCode CLI: ${err.message}`));
196
+ });
197
+ });
198
+ }
199
+ async streamPrompt(prompt, workflow, _onChunk, context) {
200
+ // For now, fall back to non-streaming for GUI
201
+ // Server mode streaming would require SSE implementation
202
+ return this.processPrompt(prompt, workflow, context);
203
+ }
204
+ async getSuggestions(workflow, selectedStepId) {
205
+ return generateSuggestions(workflow, selectedStepId);
206
+ }
207
+ async cancel() {
208
+ // Would need to implement session cancellation for server mode
209
+ }
210
+ async parseAIResponse(responseText, originalWorkflow) {
211
+ const yamlMatch = responseText.match(/```yaml\n([\s\S]*?)\n```/);
212
+ let modifiedWorkflow;
213
+ let explanation = responseText;
214
+ if (yamlMatch) {
215
+ try {
216
+ const { parse } = await import('yaml');
217
+ const parsedYaml = parse(yamlMatch[1]);
218
+ if (parsedYaml && (parsedYaml.steps || parsedYaml.metadata)) {
219
+ modifiedWorkflow = parsedYaml;
220
+ const explanationMatch = responseText.match(/^([\s\S]*?)```yaml/);
221
+ if (explanationMatch) {
222
+ explanation = explanationMatch[1].trim();
223
+ }
224
+ }
225
+ }
226
+ catch {
227
+ // Failed to parse YAML
228
+ }
229
+ }
230
+ let diff;
231
+ if (modifiedWorkflow) {
232
+ diff = this.generateDiff(originalWorkflow, modifiedWorkflow);
233
+ }
234
+ return { explanation, workflow: modifiedWorkflow, diff };
235
+ }
236
+ generateDiff(original, modified) {
237
+ const originalStepIds = new Set(original.steps?.map((s) => s.id) || []);
238
+ const modifiedStepIds = new Set(modified.steps?.map((s) => s.id) || []);
239
+ const added = modified.steps?.filter((s) => !originalStepIds.has(s.id)) || [];
240
+ const removed = original.steps?.filter((s) => !modifiedStepIds.has(s.id)) || [];
241
+ let diff = '';
242
+ if (added.length > 0) {
243
+ diff += `+ Added ${added.length} step(s): ${added.map((s) => s.name || s.id).join(', ')}\n`;
244
+ }
245
+ if (removed.length > 0) {
246
+ diff += `- Removed ${removed.length} step(s): ${removed.map((s) => s.name || s.id).join(', ')}\n`;
247
+ }
248
+ return diff || 'No structural changes detected';
249
+ }
250
+ }
251
+ export function createOpenCodeProvider(config) {
252
+ const provider = new OpenCodeProvider();
253
+ if (config) {
254
+ provider.initialize(config);
255
+ }
256
+ return provider;
257
+ }
258
+ //# sourceMappingURL=opencode-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-provider.js","sourceRoot":"","sources":["../../../../../src/server/services/agents/opencode-provider.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,13 @@
2
2
  * Agent Provider Registry
3
3
  * Manages all available AI agent providers and provides a unified interface
4
4
  */
5
- import { createClaudeProvider } from './claude-provider.js';
6
- import { createClaudeCodeProvider } from './claude-code-provider.js';
5
+ import { createClaudeAgentProvider } from './claude-agent-provider.js';
7
6
  import { createCopilotProvider } from './copilot-provider.js';
8
7
  import { createCodexProvider } from './codex-provider.js';
9
8
  import { createDemoProvider } from './demo-provider.js';
10
9
  import { createOllamaProvider } from './ollama-provider.js';
10
+ import { createOpenAIProvider } from './openai-provider.js';
11
+ import { createOpenCodeProvider } from './opencode-provider.js';
11
12
  /**
12
13
  * Registry of all available agent providers
13
14
  */
@@ -19,9 +20,9 @@ export class AgentRegistry {
19
20
  // Register built-in providers
20
21
  // SDK-based providers with automatic CLI authentication (recommended)
21
22
  this.registerProvider({
22
- id: 'claude-code',
23
- name: 'Claude Code (SDK)',
24
- factory: createClaudeCodeProvider,
23
+ id: 'claude-agent',
24
+ name: 'Claude Agent (SDK)',
25
+ factory: createClaudeAgentProvider,
25
26
  });
26
27
  this.registerProvider({
27
28
  id: 'copilot',
@@ -33,11 +34,16 @@ export class AgentRegistry {
33
34
  name: 'OpenAI Codex (SDK)',
34
35
  factory: createCodexProvider,
35
36
  });
37
+ this.registerProvider({
38
+ id: 'opencode',
39
+ name: 'OpenCode',
40
+ factory: createOpenCodeProvider,
41
+ });
36
42
  // API key-based providers
37
43
  this.registerProvider({
38
- id: 'claude',
39
- name: 'Claude (API Key)',
40
- factory: createClaudeProvider,
44
+ id: 'openai',
45
+ name: 'OpenAI',
46
+ factory: createOpenAIProvider,
41
47
  });
42
48
  // Local providers
43
49
  this.registerProvider({
@@ -110,7 +116,7 @@ export class AgentRegistry {
110
116
  */
111
117
  async autoDetectProvider() {
112
118
  // Try Claude Code SDK first (uses automatic CLI authentication)
113
- const claudeCodeProvider = this.providers.get('claude-code');
119
+ const claudeCodeProvider = this.providers.get('claude-agent');
114
120
  if (claudeCodeProvider) {
115
121
  await claudeCodeProvider.initialize({
116
122
  options: {
@@ -118,8 +124,8 @@ export class AgentRegistry {
118
124
  },
119
125
  });
120
126
  if (claudeCodeProvider.isReady()) {
121
- this.activeProviderId = 'claude-code';
122
- return 'claude-code';
127
+ this.activeProviderId = 'claude-agent';
128
+ return 'claude-agent';
123
129
  }
124
130
  }
125
131
  // Try GitHub Copilot SDK (uses automatic CLI authentication)
@@ -150,17 +156,6 @@ export class AgentRegistry {
150
156
  return 'codex';
151
157
  }
152
158
  }
153
- // Try Claude with API key (requires ANTHROPIC_API_KEY)
154
- const claudeProvider = this.providers.get('claude');
155
- if (claudeProvider) {
156
- await claudeProvider.initialize({
157
- apiKey: process.env.ANTHROPIC_API_KEY,
158
- });
159
- if (claudeProvider.isReady()) {
160
- this.activeProviderId = 'claude';
161
- return 'claude';
162
- }
163
- }
164
159
  // Try Ollama (if running locally)
165
160
  const ollamaProvider = this.providers.get('ollama');
166
161
  if (ollamaProvider) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../src/server/services/agents/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../src/server/services/agents/registry.ts"],"names":[],"mappings":"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"}
package/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <html lang="en" class="dark">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
5
+ <link rel="icon" type="image/png" href="/marktoflow-logo.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Marktoflow Designer</title>
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com" />