langflow-mcp-server 1.0.0 → 1.1.0

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 (55) hide show
  1. package/README.md +119 -5
  2. package/dist/__tests__/fixtures/build.d.ts +12 -0
  3. package/dist/__tests__/fixtures/build.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/build.js +61 -0
  5. package/dist/__tests__/fixtures/build.js.map +1 -0
  6. package/dist/__tests__/fixtures/components.d.ts +21 -0
  7. package/dist/__tests__/fixtures/components.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/components.js +42 -0
  9. package/dist/__tests__/fixtures/components.js.map +1 -0
  10. package/dist/__tests__/fixtures/flows.d.ts +6 -0
  11. package/dist/__tests__/fixtures/flows.d.ts.map +1 -0
  12. package/dist/__tests__/fixtures/flows.js +32 -0
  13. package/dist/__tests__/fixtures/flows.js.map +1 -0
  14. package/dist/__tests__/fixtures/folders.d.ts +6 -0
  15. package/dist/__tests__/fixtures/folders.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/folders.js +30 -0
  17. package/dist/__tests__/fixtures/folders.js.map +1 -0
  18. package/dist/__tests__/fixtures/knowledge-bases.d.ts +22 -0
  19. package/dist/__tests__/fixtures/knowledge-bases.d.ts.map +1 -0
  20. package/dist/__tests__/fixtures/knowledge-bases.js +51 -0
  21. package/dist/__tests__/fixtures/knowledge-bases.js.map +1 -0
  22. package/dist/__tests__/fixtures/projects.d.ts +6 -0
  23. package/dist/__tests__/fixtures/projects.d.ts.map +1 -0
  24. package/dist/__tests__/fixtures/projects.js +27 -0
  25. package/dist/__tests__/fixtures/projects.js.map +1 -0
  26. package/dist/__tests__/fixtures/run.d.ts +26 -0
  27. package/dist/__tests__/fixtures/run.d.ts.map +1 -0
  28. package/dist/__tests__/fixtures/run.js +67 -0
  29. package/dist/__tests__/fixtures/run.js.map +1 -0
  30. package/dist/__tests__/fixtures/variables.d.ts +6 -0
  31. package/dist/__tests__/fixtures/variables.d.ts.map +1 -0
  32. package/dist/__tests__/fixtures/variables.js +33 -0
  33. package/dist/__tests__/fixtures/variables.js.map +1 -0
  34. package/dist/mcp/server.d.ts +2 -0
  35. package/dist/mcp/server.d.ts.map +1 -1
  36. package/dist/mcp/server.js +269 -101
  37. package/dist/mcp/server.js.map +1 -1
  38. package/dist/mcp/tools.d.ts.map +1 -1
  39. package/dist/mcp/tools.js +546 -0
  40. package/dist/mcp/tools.js.map +1 -1
  41. package/dist/mcp/validation.d.ts +195 -0
  42. package/dist/mcp/validation.d.ts.map +1 -0
  43. package/dist/mcp/validation.js +155 -0
  44. package/dist/mcp/validation.js.map +1 -0
  45. package/dist/services/langflow-client.d.ts +29 -1
  46. package/dist/services/langflow-client.d.ts.map +1 -1
  47. package/dist/services/langflow-client.js +253 -0
  48. package/dist/services/langflow-client.js.map +1 -1
  49. package/dist/types/index.d.ts +112 -0
  50. package/dist/types/index.d.ts.map +1 -1
  51. package/dist/utils/logger.d.ts +5 -4
  52. package/dist/utils/logger.d.ts.map +1 -1
  53. package/dist/utils/logger.js +75 -7
  54. package/dist/utils/logger.js.map +1 -1
  55. package/package.json +5 -6
package/README.md CHANGED
@@ -1,14 +1,24 @@
1
1
  # langflow-mcp-server
2
2
 
3
+ [![npm version](https://badge.fury.io/js/langflow-mcp-server.svg)](https://www.npmjs.com/package/langflow-mcp-server)
4
+ [![npm downloads](https://img.shields.io/npm/dm/langflow-mcp-server.svg)](https://www.npmjs.com/package/langflow-mcp-server)
5
+ [![GitHub release](https://img.shields.io/github/v/release/nobrainer-tech/langflow-mcp)](https://github.com/nobrainer-tech/langflow-mcp/releases)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
3
8
  A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to Langflow workflow automation platform. Inspired by [czlonkowski/n8n-mcp](https://github.com/czlonkowski/n8n-mcp).
4
9
 
5
10
  ## Overview
6
11
 
7
12
  langflow-mcp-server serves as a bridge between Langflow's workflow automation platform and AI models, enabling them to understand and work with Langflow flows effectively. It provides structured access to:
8
13
 
9
- - **Flow Management** - Create, read, update, and delete Langflow flows
14
+ - **Flow Management** - Create, read, update, delete, and execute Langflow flows
15
+ - **Flow Execution** - Run flows with inputs and trigger webhooks
16
+ - **Build Operations** - Compile, validate, and monitor flow builds
17
+ - **Import/Export** - Upload and download flows and projects
18
+ - **Organization** - Manage folders and projects
19
+ - **Configuration** - Manage global variables
20
+ - **Knowledge Bases** - Manage RAG document collections
10
21
  - **Component Discovery** - List all available Langflow components
11
- - **Workflow Automation** - Integrate Langflow with AI assistants like Claude
12
22
 
13
23
  ## Quick Start
14
24
 
@@ -97,9 +107,9 @@ Restart Claude Desktop after updating configuration.
97
107
 
98
108
  ## Available MCP Tools
99
109
 
100
- Once connected, Claude can use these tools:
110
+ Once connected, Claude can use these 35 tools:
101
111
 
102
- ### Flow Management
112
+ ### Flow Management (6 tools)
103
113
  - **`create_flow`** - Create a new Langflow flow
104
114
  - **`list_flows`** - List all flows with pagination and filtering
105
115
  - **`get_flow`** - Get details of a specific flow by ID
@@ -107,7 +117,49 @@ Once connected, Claude can use these tools:
107
117
  - **`delete_flow`** - Delete a single flow
108
118
  - **`delete_flows`** - Delete multiple flows at once
109
119
 
110
- ### Component Discovery
120
+ ### Flow Execution (2 tools)
121
+ - **`run_flow`** - Execute a flow with input configuration (supports streaming)
122
+ - **`trigger_webhook`** - Trigger a flow via webhook endpoint
123
+
124
+ ### Import/Export (3 tools)
125
+ - **`upload_flow`** - Upload a flow from JSON data
126
+ - **`download_flows`** - Download multiple flows as JSON export
127
+ - **`get_basic_examples`** - Get pre-built example flows
128
+
129
+ ### Folder Management (5 tools)
130
+ - **`list_folders`** - List all folders with pagination
131
+ - **`create_folder`** - Create a new folder
132
+ - **`get_folder`** - Get folder details by ID
133
+ - **`update_folder`** - Update folder name, description, or parent
134
+ - **`delete_folder`** - Delete a folder
135
+
136
+ ### Project Management (7 tools)
137
+ - **`list_projects`** - List all projects with pagination
138
+ - **`create_project`** - Create a new project
139
+ - **`get_project`** - Get project details by ID
140
+ - **`update_project`** - Update project name or description
141
+ - **`delete_project`** - Delete a project
142
+ - **`upload_project`** - Upload a project from JSON data
143
+ - **`download_project`** - Download a project as JSON export
144
+
145
+ ### Variable Management (4 tools)
146
+ - **`list_variables`** - List all global variables
147
+ - **`create_variable`** - Create a new variable
148
+ - **`update_variable`** - Update variable properties
149
+ - **`delete_variable`** - Delete a variable
150
+
151
+ ### Build Operations (3 tools)
152
+ - **`build_flow`** - Build/compile a flow and return job_id for async execution
153
+ - **`get_build_status`** - Poll build status and events for a specific job
154
+ - **`cancel_build`** - Cancel a running build job
155
+
156
+ ### Knowledge Base Management (4 tools)
157
+ - **`list_knowledge_bases`** - List all available knowledge bases
158
+ - **`get_knowledge_base`** - Get detailed information about a specific knowledge base
159
+ - **`delete_knowledge_base`** - Delete a specific knowledge base
160
+ - **`bulk_delete_knowledge_bases`** - Delete multiple knowledge bases at once
161
+
162
+ ### Component Discovery (1 tool)
111
163
  - **`list_components`** - List all available Langflow components
112
164
 
113
165
  ## Example Usage
@@ -136,6 +188,68 @@ update_flow({
136
188
  name: "Updated Flow Name"
137
189
  })
138
190
 
191
+ // Execute a flow
192
+ run_flow({
193
+ flow_id_or_name: "my-flow-name",
194
+ input_request: {
195
+ input_value: "Hello World",
196
+ output_type: "chat",
197
+ input_type: "chat"
198
+ },
199
+ stream: false
200
+ })
201
+
202
+ // Trigger via webhook
203
+ trigger_webhook({
204
+ flow_id_or_name: "my-flow",
205
+ input_request: {
206
+ input_value: "Process this data"
207
+ }
208
+ })
209
+
210
+ // Build a flow (compile/validate)
211
+ build_flow({
212
+ flow_id: "flow-uuid-here",
213
+ log_builds: true,
214
+ event_delivery: "polling"
215
+ })
216
+
217
+ // Check build status
218
+ get_build_status({
219
+ job_id: "job-uuid-from-build",
220
+ event_delivery: "polling"
221
+ })
222
+
223
+ // List knowledge bases (RAG)
224
+ list_knowledge_bases()
225
+
226
+ // Get knowledge base details
227
+ get_knowledge_base({
228
+ kb_name: "my-documents"
229
+ })
230
+
231
+ // Create a folder
232
+ create_folder({
233
+ name: "My Flows",
234
+ description: "Organized flows"
235
+ })
236
+
237
+ // Create a project
238
+ create_project({
239
+ name: "My Project",
240
+ description: "Project description"
241
+ })
242
+
243
+ // Manage variables
244
+ create_variable({
245
+ name: "API_KEY",
246
+ value: "secret-key",
247
+ type: "string"
248
+ })
249
+
250
+ // Get basic examples
251
+ get_basic_examples()
252
+
139
253
  // List all components
140
254
  list_components()
141
255
  ```
@@ -0,0 +1,12 @@
1
+ import { BuildFlowRequest, BuildFlowParams, BuildFlowResponse, BuildStatusResponse, CancelBuildResponse } from '../../types';
2
+ export declare const mockBuildFlowRequest: BuildFlowRequest;
3
+ export declare const mockBuildFlowParams: BuildFlowParams;
4
+ export declare const mockMinimalBuildRequest: BuildFlowRequest;
5
+ export declare const mockMinimalBuildParams: BuildFlowParams;
6
+ export declare const mockBuildFlowResponse: BuildFlowResponse;
7
+ export declare const mockBuildStatusResponse: BuildStatusResponse;
8
+ export declare const mockCompletedBuildStatus: BuildStatusResponse;
9
+ export declare const mockFailedBuildStatus: BuildStatusResponse;
10
+ export declare const mockCancelBuildResponse: CancelBuildResponse;
11
+ export declare const mockCancelBuildAlreadyCompleted: CancelBuildResponse;
12
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE7H,eAAO,MAAM,oBAAoB,EAAE,gBAUlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,gBAAqB,CAAC;AAE5D,eAAO,MAAM,sBAAsB,EAAE,eAAoB,CAAC;AAE1D,eAAO,MAAM,qBAAqB,EAAE,iBAEnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,mBAMrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,mBAOtC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,mBAQnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,mBAIrC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,mBAI7C,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockCancelBuildAlreadyCompleted = exports.mockCancelBuildResponse = exports.mockFailedBuildStatus = exports.mockCompletedBuildStatus = exports.mockBuildStatusResponse = exports.mockBuildFlowResponse = exports.mockMinimalBuildParams = exports.mockMinimalBuildRequest = exports.mockBuildFlowParams = exports.mockBuildFlowRequest = void 0;
4
+ exports.mockBuildFlowRequest = {
5
+ inputs: {
6
+ input1: 'test value',
7
+ input2: 123
8
+ },
9
+ data: {
10
+ nodes: [],
11
+ edges: []
12
+ },
13
+ files: ['file1.txt', 'file2.json']
14
+ };
15
+ exports.mockBuildFlowParams = {
16
+ stop_component_id: '123e4567-e89b-12d3-a456-426614174010',
17
+ start_component_id: '123e4567-e89b-12d3-a456-426614174011',
18
+ log_builds: true,
19
+ flow_name: 'Test Build Flow',
20
+ event_delivery: 'polling'
21
+ };
22
+ exports.mockMinimalBuildRequest = {};
23
+ exports.mockMinimalBuildParams = {};
24
+ exports.mockBuildFlowResponse = {
25
+ job_id: 'job-123e4567-e89b-12d3-a456-426614174020'
26
+ };
27
+ exports.mockBuildStatusResponse = {
28
+ status: 'running',
29
+ progress: 50,
30
+ message: 'Building flow components',
31
+ job_id: 'job-123e4567-e89b-12d3-a456-426614174020',
32
+ started_at: '2024-01-01T10:00:00Z'
33
+ };
34
+ exports.mockCompletedBuildStatus = {
35
+ status: 'completed',
36
+ progress: 100,
37
+ message: 'Build completed successfully',
38
+ job_id: 'job-123e4567-e89b-12d3-a456-426614174020',
39
+ started_at: '2024-01-01T10:00:00Z',
40
+ completed_at: '2024-01-01T10:05:00Z'
41
+ };
42
+ exports.mockFailedBuildStatus = {
43
+ status: 'failed',
44
+ progress: 75,
45
+ message: 'Build failed due to validation error',
46
+ job_id: 'job-123e4567-e89b-12d3-a456-426614174020',
47
+ started_at: '2024-01-01T10:00:00Z',
48
+ failed_at: '2024-01-01T10:03:00Z',
49
+ error: 'Component validation failed'
50
+ };
51
+ exports.mockCancelBuildResponse = {
52
+ success: true,
53
+ message: 'Build job cancelled successfully',
54
+ cancelled: true
55
+ };
56
+ exports.mockCancelBuildAlreadyCompleted = {
57
+ success: false,
58
+ message: 'Cannot cancel completed build job',
59
+ cancelled: false
60
+ };
61
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/build.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAqB;IACpD,MAAM,EAAE;QACN,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,GAAG;KACZ;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV;IACD,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;CACnC,CAAC;AAEW,QAAA,mBAAmB,GAAoB;IAClD,iBAAiB,EAAE,sCAAsC;IACzD,kBAAkB,EAAE,sCAAsC;IAC1D,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,iBAAiB;IAC5B,cAAc,EAAE,SAAS;CAC1B,CAAC;AAEW,QAAA,uBAAuB,GAAqB,EAAE,CAAC;AAE/C,QAAA,sBAAsB,GAAoB,EAAE,CAAC;AAE7C,QAAA,qBAAqB,GAAsB;IACtD,MAAM,EAAE,0CAA0C;CACnD,CAAC;AAEW,QAAA,uBAAuB,GAAwB;IAC1D,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,0CAA0C;IAClD,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEW,QAAA,wBAAwB,GAAwB;IAC3D,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,8BAA8B;IACvC,MAAM,EAAE,0CAA0C;IAClD,UAAU,EAAE,sBAAsB;IAClC,YAAY,EAAE,sBAAsB;CACrC,CAAC;AAEW,QAAA,qBAAqB,GAAwB;IACxD,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,sCAAsC;IAC/C,MAAM,EAAE,0CAA0C;IAClD,UAAU,EAAE,sBAAsB;IAClC,SAAS,EAAE,sBAAsB;IACjC,KAAK,EAAE,6BAA6B;CACrC,CAAC;AAEW,QAAA,uBAAuB,GAAwB;IAC1D,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,kCAAkC;IAC3C,SAAS,EAAE,IAAI;CAChB,CAAC;AAEW,QAAA,+BAA+B,GAAwB;IAClE,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,mCAAmC;IAC5C,SAAS,EAAE,KAAK;CACjB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ComponentInfo } from '../../types';
2
+ export declare const mockComponentsApiResponse: {
3
+ agents: {
4
+ 'OpenAI Agent': {
5
+ display_name: string;
6
+ description: string;
7
+ };
8
+ 'Custom Agent': {
9
+ display_name: string;
10
+ description: string;
11
+ };
12
+ };
13
+ chains: {
14
+ 'LLM Chain': {
15
+ display_name: string;
16
+ description: string;
17
+ };
18
+ };
19
+ };
20
+ export declare const mockComponentsList: ComponentInfo[];
21
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;CAiBrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAmB7C,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockComponentsList = exports.mockComponentsApiResponse = void 0;
4
+ exports.mockComponentsApiResponse = {
5
+ agents: {
6
+ 'OpenAI Agent': {
7
+ display_name: 'OpenAI Agent',
8
+ description: 'Agent powered by OpenAI'
9
+ },
10
+ 'Custom Agent': {
11
+ display_name: 'Custom Agent',
12
+ description: 'Custom agent implementation'
13
+ }
14
+ },
15
+ chains: {
16
+ 'LLM Chain': {
17
+ display_name: 'LLM Chain',
18
+ description: 'Basic LLM chain'
19
+ }
20
+ }
21
+ };
22
+ exports.mockComponentsList = [
23
+ {
24
+ name: 'OpenAI Agent',
25
+ display_name: 'OpenAI Agent',
26
+ description: 'Agent powered by OpenAI',
27
+ type: 'agents'
28
+ },
29
+ {
30
+ name: 'Custom Agent',
31
+ display_name: 'Custom Agent',
32
+ description: 'Custom agent implementation',
33
+ type: 'agents'
34
+ },
35
+ {
36
+ name: 'LLM Chain',
37
+ display_name: 'LLM Chain',
38
+ description: 'Basic LLM chain',
39
+ type: 'chains'
40
+ }
41
+ ];
42
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/components.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAG;IACvC,MAAM,EAAE;QACN,cAAc,EAAE;YACd,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,yBAAyB;SACvC;QACD,cAAc,EAAE;YACd,YAAY,EAAE,cAAc;YAC5B,WAAW,EAAE,6BAA6B;SAC3C;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE;YACX,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,iBAAiB;SAC/B;KACF;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAoB;IACjD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,yBAAyB;QACtC,IAAI,EAAE,QAAQ;KACf;IACD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,QAAQ;KACf;IACD;QACE,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,QAAQ;KACf;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { FlowRead, FlowCreate, FlowUpdate } from '../../types';
2
+ export declare const mockFlowCreate: FlowCreate;
3
+ export declare const mockFlowRead: FlowRead;
4
+ export declare const mockFlowUpdate: FlowUpdate;
5
+ export declare const mockFlowsList: FlowRead[];
6
+ //# sourceMappingURL=flows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/flows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/D,eAAO,MAAM,cAAc,EAAE,UAK5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAS1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,EAOnC,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockFlowsList = exports.mockFlowUpdate = exports.mockFlowRead = exports.mockFlowCreate = void 0;
4
+ exports.mockFlowCreate = {
5
+ name: 'Test Flow',
6
+ description: 'A test flow for unit testing',
7
+ data: { nodes: [], edges: [] },
8
+ folder_id: '123e4567-e89b-12d3-a456-426614174000'
9
+ };
10
+ exports.mockFlowRead = {
11
+ id: '123e4567-e89b-12d3-a456-426614174001',
12
+ name: 'Test Flow',
13
+ description: 'A test flow for unit testing',
14
+ data: { nodes: [], edges: [] },
15
+ folder_id: '123e4567-e89b-12d3-a456-426614174000',
16
+ user_id: 'user-123',
17
+ created_at: '2024-01-01T00:00:00Z',
18
+ updated_at: '2024-01-01T00:00:00Z'
19
+ };
20
+ exports.mockFlowUpdate = {
21
+ name: 'Updated Flow',
22
+ description: 'Updated description'
23
+ };
24
+ exports.mockFlowsList = [
25
+ exports.mockFlowRead,
26
+ {
27
+ ...exports.mockFlowRead,
28
+ id: '123e4567-e89b-12d3-a456-426614174002',
29
+ name: 'Test Flow 2'
30
+ }
31
+ ];
32
+ //# sourceMappingURL=flows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/flows.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAe;IACxC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,SAAS,EAAE,sCAAsC;CAClD,CAAC;AAEW,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,SAAS,EAAE,sCAAsC;IACjD,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEW,QAAA,cAAc,GAAe;IACxC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEW,QAAA,aAAa,GAAe;IACvC,oBAAY;IACZ;QACE,GAAG,oBAAY;QACf,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,aAAa;KACpB;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { FolderRead, FolderCreate, FolderUpdate } from '../../types';
2
+ export declare const mockFolderCreate: FolderCreate;
3
+ export declare const mockFolderRead: FolderRead;
4
+ export declare const mockFolderUpdate: FolderUpdate;
5
+ export declare const mockFoldersList: FolderRead[];
6
+ //# sourceMappingURL=folders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/folders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErE,eAAO,MAAM,gBAAgB,EAAE,YAI9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAO5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAG9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAAU,EAQvC,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockFoldersList = exports.mockFolderUpdate = exports.mockFolderRead = exports.mockFolderCreate = void 0;
4
+ exports.mockFolderCreate = {
5
+ name: 'Test Folder',
6
+ description: 'A test folder for unit testing',
7
+ parent_id: '123e4567-e89b-12d3-a456-426614174000'
8
+ };
9
+ exports.mockFolderRead = {
10
+ id: '123e4567-e89b-12d3-a456-426614174001',
11
+ name: 'Test Folder',
12
+ description: 'A test folder for unit testing',
13
+ parent_id: '123e4567-e89b-12d3-a456-426614174000',
14
+ created_at: '2024-01-01T00:00:00Z',
15
+ updated_at: '2024-01-01T00:00:00Z'
16
+ };
17
+ exports.mockFolderUpdate = {
18
+ name: 'Updated Folder',
19
+ description: 'Updated description'
20
+ };
21
+ exports.mockFoldersList = [
22
+ exports.mockFolderRead,
23
+ {
24
+ ...exports.mockFolderRead,
25
+ id: '123e4567-e89b-12d3-a456-426614174002',
26
+ name: 'Test Folder 2',
27
+ parent_id: undefined
28
+ }
29
+ ];
30
+ //# sourceMappingURL=folders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folders.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/folders.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAiB;IAC5C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,gCAAgC;IAC7C,SAAS,EAAE,sCAAsC;CAClD,CAAC;AAEW,QAAA,cAAc,GAAe;IACxC,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,gCAAgC;IAC7C,SAAS,EAAE,sCAAsC;IACjD,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEW,QAAA,gBAAgB,GAAiB;IAC5C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEW,QAAA,eAAe,GAAiB;IAC3C,sBAAc;IACd;QACE,GAAG,sBAAc;QACjB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,SAAS;KACrB;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { KnowledgeBaseInfo } from '../../types';
2
+ export declare const mockKnowledgeBaseInfo: KnowledgeBaseInfo;
3
+ export declare const mockKnowledgeBasesList: KnowledgeBaseInfo[];
4
+ export declare const mockEmptyKnowledgeBasesList: KnowledgeBaseInfo[];
5
+ export declare const mockBulkDeleteResponse: {
6
+ deleted: number;
7
+ failed: number;
8
+ errors: never[];
9
+ };
10
+ export declare const mockPartialBulkDeleteResponse: {
11
+ deleted: number;
12
+ failed: number;
13
+ errors: {
14
+ kb_name: string;
15
+ error: string;
16
+ }[];
17
+ };
18
+ export declare const mockDeleteResponse: {
19
+ success: boolean;
20
+ message: string;
21
+ };
22
+ //# sourceMappingURL=knowledge-bases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-bases.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/knowledge-bases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,qBAAqB,EAAE,iBAOnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,iBAAiB,EAkBrD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,iBAAiB,EAAO,CAAC;AAEnE,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockDeleteResponse = exports.mockPartialBulkDeleteResponse = exports.mockBulkDeleteResponse = exports.mockEmptyKnowledgeBasesList = exports.mockKnowledgeBasesList = exports.mockKnowledgeBaseInfo = void 0;
4
+ exports.mockKnowledgeBaseInfo = {
5
+ name: 'test-kb',
6
+ description: 'Test Knowledge Base',
7
+ created_at: '2024-01-01T00:00:00Z',
8
+ updated_at: '2024-01-01T00:00:00Z',
9
+ documents_count: 10,
10
+ size_bytes: 1024000
11
+ };
12
+ exports.mockKnowledgeBasesList = [
13
+ exports.mockKnowledgeBaseInfo,
14
+ {
15
+ name: 'production-kb',
16
+ description: 'Production Knowledge Base',
17
+ created_at: '2024-01-02T00:00:00Z',
18
+ updated_at: '2024-01-02T00:00:00Z',
19
+ documents_count: 50,
20
+ size_bytes: 5120000
21
+ },
22
+ {
23
+ name: 'dev-kb',
24
+ description: 'Development Knowledge Base',
25
+ created_at: '2024-01-03T00:00:00Z',
26
+ updated_at: '2024-01-03T00:00:00Z',
27
+ documents_count: 5,
28
+ size_bytes: 512000
29
+ }
30
+ ];
31
+ exports.mockEmptyKnowledgeBasesList = [];
32
+ exports.mockBulkDeleteResponse = {
33
+ deleted: 2,
34
+ failed: 0,
35
+ errors: []
36
+ };
37
+ exports.mockPartialBulkDeleteResponse = {
38
+ deleted: 1,
39
+ failed: 1,
40
+ errors: [
41
+ {
42
+ kb_name: 'non-existent-kb',
43
+ error: 'Knowledge base not found'
44
+ }
45
+ ]
46
+ };
47
+ exports.mockDeleteResponse = {
48
+ success: true,
49
+ message: 'Knowledge base deleted successfully'
50
+ };
51
+ //# sourceMappingURL=knowledge-bases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/knowledge-bases.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAsB;IACtD,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,qBAAqB;IAClC,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,sBAAsB;IAClC,eAAe,EAAE,EAAE;IACnB,UAAU,EAAE,OAAO;CACpB,CAAC;AAEW,QAAA,sBAAsB,GAAwB;IACzD,6BAAqB;IACrB;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2BAA2B;QACxC,UAAU,EAAE,sBAAsB;QAClC,UAAU,EAAE,sBAAsB;QAClC,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,OAAO;KACpB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,sBAAsB;QAClC,UAAU,EAAE,sBAAsB;QAClC,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM;KACnB;CACF,CAAC;AAEW,QAAA,2BAA2B,GAAwB,EAAE,CAAC;AAEtD,QAAA,sBAAsB,GAAG;IACpC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,6BAA6B,GAAG;IAC3C,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,MAAM,EAAE;QACN;YACE,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,0BAA0B;SAClC;KACF;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,qCAAqC;CAC/C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ProjectRead, ProjectCreate, ProjectUpdate } from '../../types';
2
+ export declare const mockProjectCreate: ProjectCreate;
3
+ export declare const mockProjectRead: ProjectRead;
4
+ export declare const mockProjectUpdate: ProjectUpdate;
5
+ export declare const mockProjectsList: ProjectRead[];
6
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAM7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WAAW,EAOzC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockProjectsList = exports.mockProjectUpdate = exports.mockProjectRead = exports.mockProjectCreate = void 0;
4
+ exports.mockProjectCreate = {
5
+ name: 'Test Project',
6
+ description: 'A test project for unit testing'
7
+ };
8
+ exports.mockProjectRead = {
9
+ id: '123e4567-e89b-12d3-a456-426614174001',
10
+ name: 'Test Project',
11
+ description: 'A test project for unit testing',
12
+ created_at: '2024-01-01T00:00:00Z',
13
+ updated_at: '2024-01-01T00:00:00Z'
14
+ };
15
+ exports.mockProjectUpdate = {
16
+ name: 'Updated Project',
17
+ description: 'Updated description'
18
+ };
19
+ exports.mockProjectsList = [
20
+ exports.mockProjectRead,
21
+ {
22
+ ...exports.mockProjectRead,
23
+ id: '123e4567-e89b-12d3-a456-426614174002',
24
+ name: 'Test Project 2'
25
+ }
26
+ ];
27
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/projects.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAkB;IAC9C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,iCAAiC;CAC/C,CAAC;AAEW,QAAA,eAAe,GAAgB;IAC1C,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,iCAAiC;IAC9C,UAAU,EAAE,sBAAsB;IAClC,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEW,QAAA,iBAAiB,GAAkB;IAC9C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEW,QAAA,gBAAgB,GAAkB;IAC7C,uBAAe;IACf;QACE,GAAG,uBAAe;QAClB,EAAE,EAAE,sCAAsC;QAC1C,IAAI,EAAE,gBAAgB;KACvB;CACF,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { RunFlowRequest, RunResponse, SimplifiedAPIRequest } from '../../types';
2
+ export declare const mockRunFlowRequest: RunFlowRequest;
3
+ export declare const mockRunResponse: RunResponse;
4
+ export declare const mockWebhookRequest: SimplifiedAPIRequest;
5
+ export declare const mockWebhookResponse: {
6
+ result: string;
7
+ data: {
8
+ message: string;
9
+ };
10
+ };
11
+ export declare const mockUploadFile: {
12
+ name: string;
13
+ content: string;
14
+ };
15
+ export declare const mockDownloadResponse: {
16
+ flows: {
17
+ id: string;
18
+ name: string;
19
+ data: {
20
+ nodes: never[];
21
+ edges: never[];
22
+ };
23
+ }[];
24
+ format: string;
25
+ };
26
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEhF,eAAO,MAAM,kBAAkB,EAAE,cAShC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAoB7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,oBAOhC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;CAK/B,CAAC;AAEF,eAAO,MAAM,cAAc;;;CAO1B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAShC,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockDownloadResponse = exports.mockUploadFile = exports.mockWebhookResponse = exports.mockWebhookRequest = exports.mockRunResponse = exports.mockRunFlowRequest = void 0;
4
+ exports.mockRunFlowRequest = {
5
+ input_value: 'test input',
6
+ output_type: 'chat',
7
+ input_type: 'text',
8
+ tweaks: {
9
+ 'component-1': {
10
+ parameter: 'value'
11
+ }
12
+ }
13
+ };
14
+ exports.mockRunResponse = {
15
+ session_id: 'session-123',
16
+ outputs: [
17
+ {
18
+ inputs: { input: 'test input' },
19
+ outputs: [
20
+ {
21
+ results: {
22
+ message: {
23
+ text: 'test output'
24
+ }
25
+ },
26
+ artifacts: {},
27
+ messages: [],
28
+ component_display_name: 'ChatOutput',
29
+ component_id: 'ChatOutput-123'
30
+ }
31
+ ]
32
+ }
33
+ ]
34
+ };
35
+ exports.mockWebhookRequest = {
36
+ input_value: 'webhook test input',
37
+ tweaks: {
38
+ 'component-1': {
39
+ parameter: 'value'
40
+ }
41
+ }
42
+ };
43
+ exports.mockWebhookResponse = {
44
+ result: 'success',
45
+ data: {
46
+ message: 'Webhook triggered successfully'
47
+ }
48
+ };
49
+ exports.mockUploadFile = {
50
+ name: 'test-flow.json',
51
+ content: JSON.stringify({
52
+ name: 'Uploaded Flow',
53
+ description: 'Flow from upload',
54
+ data: { nodes: [], edges: [] }
55
+ })
56
+ };
57
+ exports.mockDownloadResponse = {
58
+ flows: [
59
+ {
60
+ id: '123e4567-e89b-12d3-a456-426614174001',
61
+ name: 'Flow 1',
62
+ data: { nodes: [], edges: [] }
63
+ }
64
+ ],
65
+ format: 'json'
66
+ };
67
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/run.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAmB;IAChD,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE;QACN,aAAa,EAAE;YACb,SAAS,EAAE,OAAO;SACnB;KACF;CACF,CAAC;AAEW,QAAA,eAAe,GAAgB;IAC1C,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE;QACP;YACE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;YAC/B,OAAO,EAAE;gBACP;oBACE,OAAO,EAAE;wBACP,OAAO,EAAE;4BACP,IAAI,EAAE,aAAa;yBACpB;qBACF;oBACD,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,EAAE;oBACZ,sBAAsB,EAAE,YAAY;oBACpC,YAAY,EAAE,gBAAgB;iBAC/B;aACF;SACF;KACF;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAyB;IACtD,WAAW,EAAE,oBAAoB;IACjC,MAAM,EAAE;QACN,aAAa,EAAE;YACb,SAAS,EAAE,OAAO;SACnB;KACF;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAG;IACjC,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE;QACJ,OAAO,EAAE,gCAAgC;KAC1C;CACF,CAAC;AAEW,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;QACtB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAC/B,CAAC;CACH,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE;QACL;YACE,EAAE,EAAE,sCAAsC;YAC1C,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,MAAM,EAAE,MAAM;CACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { VariableRead, VariableCreate, VariableUpdate } from '../../types';
2
+ export declare const mockVariableCreate: VariableCreate;
3
+ export declare const mockVariableRead: VariableRead;
4
+ export declare const mockVariableUpdate: VariableUpdate;
5
+ export declare const mockVariablesList: VariableRead[];
6
+ //# sourceMappingURL=variables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3E,eAAO,MAAM,kBAAkB,EAAE,cAKhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAQ9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAIhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAQ3C,CAAC"}