@d34dman/flowdrop 0.0.17 → 0.0.19

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 (46) hide show
  1. package/README.md +34 -47
  2. package/dist/api/enhanced-client.d.ts +2 -2
  3. package/dist/api/enhanced-client.js +5 -5
  4. package/dist/components/NotesNode.svelte +3 -3
  5. package/dist/components/NotesNode.svelte.d.ts +3 -3
  6. package/dist/components/SimpleNode.svelte +3 -3
  7. package/dist/components/SimpleNode.svelte.d.ts +3 -3
  8. package/dist/components/SquareNode.svelte +3 -3
  9. package/dist/components/SquareNode.svelte.d.ts +3 -3
  10. package/dist/components/TerminalNode.svelte +583 -0
  11. package/dist/components/TerminalNode.svelte.d.ts +24 -0
  12. package/dist/components/UniversalNode.svelte +7 -33
  13. package/dist/components/WorkflowEditor.svelte +1 -9
  14. package/dist/helpers/workflowEditorHelper.d.ts +3 -3
  15. package/dist/helpers/workflowEditorHelper.js +5 -7
  16. package/dist/index.d.ts +4 -7
  17. package/dist/index.js +2 -5
  18. package/dist/registry/builtinNodes.d.ts +3 -3
  19. package/dist/registry/builtinNodes.js +16 -3
  20. package/dist/services/api.d.ts +0 -5
  21. package/dist/services/api.js +0 -20
  22. package/dist/svelte-app.d.ts +0 -6
  23. package/dist/svelte-app.js +0 -8
  24. package/dist/types/auth.d.ts +0 -15
  25. package/dist/types/auth.js +0 -15
  26. package/dist/types/config.d.ts +11 -151
  27. package/dist/types/config.js +3 -0
  28. package/dist/types/index.d.ts +2 -8
  29. package/dist/utils/colors.d.ts +0 -5
  30. package/dist/utils/colors.js +3 -4
  31. package/dist/utils/config.d.ts +0 -8
  32. package/dist/utils/config.js +0 -14
  33. package/dist/utils/connections.d.ts +0 -5
  34. package/dist/utils/connections.js +10 -16
  35. package/dist/utils/icons.js +1 -1
  36. package/dist/utils/nodeTypes.d.ts +1 -1
  37. package/dist/utils/nodeTypes.js +4 -19
  38. package/package.json +144 -138
  39. package/dist/clients/ApiClient.d.ts +0 -199
  40. package/dist/clients/ApiClient.js +0 -214
  41. package/dist/config/apiConfig.d.ts +0 -34
  42. package/dist/config/apiConfig.js +0 -40
  43. package/dist/examples/adapter-usage.d.ts +0 -66
  44. package/dist/examples/adapter-usage.js +0 -133
  45. package/dist/examples/api-client-usage.d.ts +0 -32
  46. package/dist/examples/api-client-usage.js +0 -243
@@ -1,243 +0,0 @@
1
- /**
2
- * Example: Using FlowDrop API Client
3
- * Demonstrates how to integrate with FlowDrop API from applications
4
- * This client can be used with any backend that implements the FlowDrop API specification
5
- */
6
- import { ApiClient } from '../clients/ApiClient.js';
7
- // Initialize the API client
8
- const apiClient = new ApiClient({
9
- baseUrl: 'https://api.flowdrop.dev/v1',
10
- apiKey: 'your-api-key-here',
11
- timeout: 30000
12
- });
13
- // Example 1: Health check
14
- async function checkApiHealth() {
15
- try {
16
- const health = await apiClient.healthCheck();
17
- console.log('API Status:', health.status);
18
- console.log('API Version:', health.version);
19
- return health;
20
- }
21
- catch (error) {
22
- console.error('API Health Check Failed:', error);
23
- throw error;
24
- }
25
- }
26
- // Example 2: Get available node types
27
- async function getNodeTypes() {
28
- try {
29
- // Get all node types
30
- const allNodes = await apiClient.getNodeTypes();
31
- console.log(`Found ${allNodes.data?.length || 0} node types`);
32
- // Get node types by category
33
- const modelNodes = await apiClient.getNodeTypesByCategory('models');
34
- console.log(`Found ${modelNodes.data?.length || 0} model nodes`);
35
- // Search for specific nodes
36
- const searchResults = await apiClient.getNodeTypes({ search: 'openai' });
37
- console.log(`Found ${searchResults.data?.length || 0} OpenAI-related nodes`);
38
- return allNodes;
39
- }
40
- catch (error) {
41
- console.error('Failed to get node types:', error);
42
- throw error;
43
- }
44
- }
45
- // Example 3: Create and manage workflows
46
- async function manageWorkflows() {
47
- try {
48
- // Create a new workflow
49
- const createRequest = {
50
- name: 'Chat Workflow',
51
- description: 'A simple chat workflow created via API',
52
- tags: ['chat', 'demo']
53
- };
54
- const newWorkflow = await apiClient.createWorkflow(createRequest);
55
- console.log('Created workflow:', newWorkflow.data?.id);
56
- // Get all workflows
57
- const workflows = await apiClient.getWorkflows({
58
- limit: 10,
59
- sort: 'created_at',
60
- order: 'desc'
61
- });
62
- console.log(`Found ${workflows.data?.length || 0} workflows`);
63
- // Get workflows by tag
64
- const chatWorkflows = await apiClient.getWorkflowsByTag('chat');
65
- console.log(`Found ${chatWorkflows.data?.length || 0} chat workflows`);
66
- return newWorkflow;
67
- }
68
- catch (error) {
69
- console.error('Failed to manage workflows:', error);
70
- throw error;
71
- }
72
- }
73
- // Example 4: Execute a workflow
74
- async function executeWorkflow(workflowId) {
75
- try {
76
- // Start execution
77
- const execution = await apiClient.executeWorkflow(workflowId, {
78
- inputs: {
79
- message: 'Hello, how are you?',
80
- temperature: 0.7
81
- },
82
- options: {
83
- timeout: 60,
84
- maxSteps: 100
85
- }
86
- });
87
- console.log('Execution started:', execution.data?.executionId);
88
- // Wait for completion
89
- const result = await apiClient.waitForExecution(execution.data.executionId);
90
- if (result.data?.status === 'completed') {
91
- console.log('Execution completed successfully');
92
- console.log('Result:', result.data?.result);
93
- }
94
- else {
95
- console.log('Execution failed:', result.data?.error);
96
- }
97
- return result;
98
- }
99
- catch (error) {
100
- console.error('Failed to execute workflow:', error);
101
- throw error;
102
- }
103
- }
104
- // Example 5: Import/Export workflows
105
- async function importExportWorkflow(workflowId) {
106
- try {
107
- // Export workflow
108
- const exportedWorkflow = await apiClient.exportWorkflow(workflowId, 'json');
109
- console.log('Exported workflow:', exportedWorkflow.name);
110
- // Modify the exported workflow
111
- const modifiedWorkflow = {
112
- ...exportedWorkflow,
113
- id: '', // Will be generated by server
114
- name: `${exportedWorkflow.name} (Imported)`,
115
- metadata: {
116
- ...exportedWorkflow.metadata,
117
- createdAt: new Date().toISOString(),
118
- updatedAt: new Date().toISOString()
119
- }
120
- };
121
- // Import the modified workflow
122
- const importedWorkflow = await apiClient.importWorkflow(modifiedWorkflow);
123
- console.log('Imported workflow:', importedWorkflow.data?.id);
124
- return importedWorkflow;
125
- }
126
- catch (error) {
127
- console.error('Failed to import/export workflow:', error);
128
- throw error;
129
- }
130
- }
131
- // Example 6: Validate workflows
132
- async function validateWorkflow(workflow) {
133
- try {
134
- const validation = await apiClient.validateWorkflow(workflow);
135
- if (validation.data?.valid) {
136
- console.log('Workflow is valid');
137
- }
138
- else {
139
- console.log('Workflow validation failed:');
140
- console.log('Errors:', validation.data?.errors);
141
- console.log('Warnings:', validation.data?.warnings);
142
- console.log('Suggestions:', validation.data?.suggestions);
143
- }
144
- return validation;
145
- }
146
- catch (error) {
147
- console.error('Failed to validate workflow:', error);
148
- throw error;
149
- }
150
- }
151
- // Example 7: Error handling
152
- async function handleApiErrors() {
153
- try {
154
- // This will fail - non-existent workflow
155
- await apiClient.getWorkflow('non-existent-id');
156
- }
157
- catch (error) {
158
- if (error instanceof Error) {
159
- console.log('Error type:', error.constructor.name);
160
- console.log('Error message:', error.message);
161
- // Check if it's an API error
162
- if ('status' in error) {
163
- const apiError = error;
164
- console.log('HTTP status:', apiError.status);
165
- console.log('Error code:', apiError.code);
166
- console.log('Error details:', apiError.details);
167
- }
168
- }
169
- }
170
- }
171
- // Example 8: Batch operations
172
- async function batchOperations() {
173
- try {
174
- // Get all workflows
175
- const workflows = await apiClient.getWorkflows({ limit: 100 });
176
- // Process each workflow
177
- const results = await Promise.allSettled(workflows.data?.map(async (workflow) => {
178
- try {
179
- // Validate each workflow
180
- const validation = await apiClient.validateWorkflow(workflow);
181
- return {
182
- id: workflow.id,
183
- name: workflow.name,
184
- valid: validation.data?.valid,
185
- errors: validation.data?.errors?.length || 0
186
- };
187
- }
188
- catch (error) {
189
- return {
190
- id: workflow.id,
191
- name: workflow.name,
192
- valid: false,
193
- error: error instanceof Error ? error.message : 'Unknown error'
194
- };
195
- }
196
- }) || []);
197
- console.log('Batch validation results:', results);
198
- return results;
199
- }
200
- catch (error) {
201
- console.error('Failed to perform batch operations:', error);
202
- throw error;
203
- }
204
- }
205
- // Example 9: Real-time monitoring
206
- async function monitorExecutions(workflowId) {
207
- try {
208
- // Start execution
209
- const execution = await apiClient.executeWorkflow(workflowId, {
210
- inputs: { message: 'Test message' }
211
- });
212
- const executionId = execution.data.executionId;
213
- console.log('Monitoring execution:', executionId);
214
- // Poll for status updates
215
- const interval = setInterval(async () => {
216
- try {
217
- const status = await apiClient.getExecutionStatus(executionId);
218
- console.log(`Status: ${status.data?.status}`);
219
- if (status.data?.status === 'completed' ||
220
- status.data?.status === 'failed' ||
221
- status.data?.status === 'cancelled') {
222
- clearInterval(interval);
223
- console.log('Execution finished:', status.data?.status);
224
- }
225
- }
226
- catch (error) {
227
- console.error('Failed to get execution status:', error);
228
- clearInterval(interval);
229
- }
230
- }, 1000);
231
- // Timeout after 5 minutes
232
- setTimeout(() => {
233
- clearInterval(interval);
234
- console.log('Monitoring timeout');
235
- }, 5 * 60 * 1000);
236
- }
237
- catch (error) {
238
- console.error('Failed to monitor execution:', error);
239
- throw error;
240
- }
241
- }
242
- // Export all examples
243
- export { checkApiHealth, getNodeTypes, manageWorkflows, executeWorkflow, importExportWorkflow, validateWorkflow, handleApiErrors, batchOperations, monitorExecutions };