@prompd/cli 0.3.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 (223) hide show
  1. package/README.md +162 -0
  2. package/bin/prompd.js +23 -0
  3. package/dist/commands/cache.d.ts +3 -0
  4. package/dist/commands/cache.d.ts.map +1 -0
  5. package/dist/commands/cache.js +199 -0
  6. package/dist/commands/cache.js.map +1 -0
  7. package/dist/commands/compile.d.ts +9 -0
  8. package/dist/commands/compile.d.ts.map +1 -0
  9. package/dist/commands/compile.js +104 -0
  10. package/dist/commands/compile.js.map +1 -0
  11. package/dist/commands/config.d.ts +7 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +212 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/create.d.ts +3 -0
  16. package/dist/commands/create.d.ts.map +1 -0
  17. package/dist/commands/create.js +183 -0
  18. package/dist/commands/create.js.map +1 -0
  19. package/dist/commands/deps.d.ts +3 -0
  20. package/dist/commands/deps.d.ts.map +1 -0
  21. package/dist/commands/deps.js +192 -0
  22. package/dist/commands/deps.js.map +1 -0
  23. package/dist/commands/explain.d.ts +3 -0
  24. package/dist/commands/explain.d.ts.map +1 -0
  25. package/dist/commands/explain.js +227 -0
  26. package/dist/commands/explain.js.map +1 -0
  27. package/dist/commands/git.d.ts +3 -0
  28. package/dist/commands/git.d.ts.map +1 -0
  29. package/dist/commands/git.js +306 -0
  30. package/dist/commands/git.js.map +1 -0
  31. package/dist/commands/init.d.ts +3 -0
  32. package/dist/commands/init.d.ts.map +1 -0
  33. package/dist/commands/init.js +177 -0
  34. package/dist/commands/init.js.map +1 -0
  35. package/dist/commands/list.d.ts +3 -0
  36. package/dist/commands/list.d.ts.map +1 -0
  37. package/dist/commands/list.js +126 -0
  38. package/dist/commands/list.js.map +1 -0
  39. package/dist/commands/mcp.d.ts +3 -0
  40. package/dist/commands/mcp.d.ts.map +1 -0
  41. package/dist/commands/mcp.js +326 -0
  42. package/dist/commands/mcp.js.map +1 -0
  43. package/dist/commands/namespace.d.ts +3 -0
  44. package/dist/commands/namespace.d.ts.map +1 -0
  45. package/dist/commands/namespace.js +113 -0
  46. package/dist/commands/namespace.js.map +1 -0
  47. package/dist/commands/package.d.ts +23 -0
  48. package/dist/commands/package.d.ts.map +1 -0
  49. package/dist/commands/package.js +746 -0
  50. package/dist/commands/package.js.map +1 -0
  51. package/dist/commands/provider.d.ts +3 -0
  52. package/dist/commands/provider.d.ts.map +1 -0
  53. package/dist/commands/provider.js +285 -0
  54. package/dist/commands/provider.js.map +1 -0
  55. package/dist/commands/registry.d.ts +9 -0
  56. package/dist/commands/registry.d.ts.map +1 -0
  57. package/dist/commands/registry.js +361 -0
  58. package/dist/commands/registry.js.map +1 -0
  59. package/dist/commands/run.d.ts +3 -0
  60. package/dist/commands/run.d.ts.map +1 -0
  61. package/dist/commands/run.js +157 -0
  62. package/dist/commands/run.js.map +1 -0
  63. package/dist/commands/show.d.ts +3 -0
  64. package/dist/commands/show.d.ts.map +1 -0
  65. package/dist/commands/show.js +90 -0
  66. package/dist/commands/show.js.map +1 -0
  67. package/dist/commands/uninstall.d.ts +3 -0
  68. package/dist/commands/uninstall.d.ts.map +1 -0
  69. package/dist/commands/uninstall.js +95 -0
  70. package/dist/commands/uninstall.js.map +1 -0
  71. package/dist/commands/validate.d.ts +3 -0
  72. package/dist/commands/validate.d.ts.map +1 -0
  73. package/dist/commands/validate.js +57 -0
  74. package/dist/commands/validate.js.map +1 -0
  75. package/dist/commands/version.d.ts +3 -0
  76. package/dist/commands/version.d.ts.map +1 -0
  77. package/dist/commands/version.js +166 -0
  78. package/dist/commands/version.js.map +1 -0
  79. package/dist/index.d.ts +5 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +388 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/lib/auth.d.ts +164 -0
  84. package/dist/lib/auth.d.ts.map +1 -0
  85. package/dist/lib/auth.js +388 -0
  86. package/dist/lib/auth.js.map +1 -0
  87. package/dist/lib/compiler/file-system.d.ts +178 -0
  88. package/dist/lib/compiler/file-system.d.ts.map +1 -0
  89. package/dist/lib/compiler/file-system.js +440 -0
  90. package/dist/lib/compiler/file-system.js.map +1 -0
  91. package/dist/lib/compiler/formatters/anthropic.d.ts +21 -0
  92. package/dist/lib/compiler/formatters/anthropic.d.ts.map +1 -0
  93. package/dist/lib/compiler/formatters/anthropic.js +95 -0
  94. package/dist/lib/compiler/formatters/anthropic.js.map +1 -0
  95. package/dist/lib/compiler/formatters/markdown.d.ts +17 -0
  96. package/dist/lib/compiler/formatters/markdown.d.ts.map +1 -0
  97. package/dist/lib/compiler/formatters/markdown.js +114 -0
  98. package/dist/lib/compiler/formatters/markdown.js.map +1 -0
  99. package/dist/lib/compiler/formatters/openai.d.ts +21 -0
  100. package/dist/lib/compiler/formatters/openai.d.ts.map +1 -0
  101. package/dist/lib/compiler/formatters/openai.js +98 -0
  102. package/dist/lib/compiler/formatters/openai.js.map +1 -0
  103. package/dist/lib/compiler/index.d.ts +56 -0
  104. package/dist/lib/compiler/index.d.ts.map +1 -0
  105. package/dist/lib/compiler/index.js +165 -0
  106. package/dist/lib/compiler/index.js.map +1 -0
  107. package/dist/lib/compiler/language-map.d.ts +31 -0
  108. package/dist/lib/compiler/language-map.d.ts.map +1 -0
  109. package/dist/lib/compiler/language-map.js +156 -0
  110. package/dist/lib/compiler/language-map.js.map +1 -0
  111. package/dist/lib/compiler/package-resolver.d.ts +68 -0
  112. package/dist/lib/compiler/package-resolver.d.ts.map +1 -0
  113. package/dist/lib/compiler/package-resolver.js +254 -0
  114. package/dist/lib/compiler/package-resolver.js.map +1 -0
  115. package/dist/lib/compiler/pipeline.d.ts +53 -0
  116. package/dist/lib/compiler/pipeline.d.ts.map +1 -0
  117. package/dist/lib/compiler/pipeline.js +209 -0
  118. package/dist/lib/compiler/pipeline.js.map +1 -0
  119. package/dist/lib/compiler/prompd-loader.d.ts +108 -0
  120. package/dist/lib/compiler/prompd-loader.d.ts.map +1 -0
  121. package/dist/lib/compiler/prompd-loader.js +270 -0
  122. package/dist/lib/compiler/prompd-loader.js.map +1 -0
  123. package/dist/lib/compiler/section-override.d.ts +40 -0
  124. package/dist/lib/compiler/section-override.d.ts.map +1 -0
  125. package/dist/lib/compiler/section-override.js +296 -0
  126. package/dist/lib/compiler/section-override.js.map +1 -0
  127. package/dist/lib/compiler/stages/assets.d.ts +71 -0
  128. package/dist/lib/compiler/stages/assets.d.ts.map +1 -0
  129. package/dist/lib/compiler/stages/assets.js +456 -0
  130. package/dist/lib/compiler/stages/assets.js.map +1 -0
  131. package/dist/lib/compiler/stages/codegen.d.ts +17 -0
  132. package/dist/lib/compiler/stages/codegen.d.ts.map +1 -0
  133. package/dist/lib/compiler/stages/codegen.js +64 -0
  134. package/dist/lib/compiler/stages/codegen.js.map +1 -0
  135. package/dist/lib/compiler/stages/dependency.d.ts +38 -0
  136. package/dist/lib/compiler/stages/dependency.d.ts.map +1 -0
  137. package/dist/lib/compiler/stages/dependency.js +307 -0
  138. package/dist/lib/compiler/stages/dependency.js.map +1 -0
  139. package/dist/lib/compiler/stages/lexical.d.ts +19 -0
  140. package/dist/lib/compiler/stages/lexical.d.ts.map +1 -0
  141. package/dist/lib/compiler/stages/lexical.js +92 -0
  142. package/dist/lib/compiler/stages/lexical.js.map +1 -0
  143. package/dist/lib/compiler/stages/semantic.d.ts +20 -0
  144. package/dist/lib/compiler/stages/semantic.d.ts.map +1 -0
  145. package/dist/lib/compiler/stages/semantic.js +166 -0
  146. package/dist/lib/compiler/stages/semantic.js.map +1 -0
  147. package/dist/lib/compiler/stages/template.d.ts +94 -0
  148. package/dist/lib/compiler/stages/template.d.ts.map +1 -0
  149. package/dist/lib/compiler/stages/template.js +1044 -0
  150. package/dist/lib/compiler/stages/template.js.map +1 -0
  151. package/dist/lib/compiler/types.d.ts +200 -0
  152. package/dist/lib/compiler/types.d.ts.map +1 -0
  153. package/dist/lib/compiler/types.js +137 -0
  154. package/dist/lib/compiler/types.js.map +1 -0
  155. package/dist/lib/config.d.ts +29 -0
  156. package/dist/lib/config.d.ts.map +1 -0
  157. package/dist/lib/config.js +375 -0
  158. package/dist/lib/config.js.map +1 -0
  159. package/dist/lib/errors.d.ts +19 -0
  160. package/dist/lib/errors.d.ts.map +1 -0
  161. package/dist/lib/errors.js +47 -0
  162. package/dist/lib/errors.js.map +1 -0
  163. package/dist/lib/executor.d.ts +18 -0
  164. package/dist/lib/executor.d.ts.map +1 -0
  165. package/dist/lib/executor.js +372 -0
  166. package/dist/lib/executor.js.map +1 -0
  167. package/dist/lib/git.d.ts +74 -0
  168. package/dist/lib/git.d.ts.map +1 -0
  169. package/dist/lib/git.js +254 -0
  170. package/dist/lib/git.js.map +1 -0
  171. package/dist/lib/index.d.ts +43 -0
  172. package/dist/lib/index.d.ts.map +1 -0
  173. package/dist/lib/index.js +108 -0
  174. package/dist/lib/index.js.map +1 -0
  175. package/dist/lib/mcp.d.ts +42 -0
  176. package/dist/lib/mcp.d.ts.map +1 -0
  177. package/dist/lib/mcp.js +477 -0
  178. package/dist/lib/mcp.js.map +1 -0
  179. package/dist/lib/model-updater.d.ts +51 -0
  180. package/dist/lib/model-updater.d.ts.map +1 -0
  181. package/dist/lib/model-updater.js +275 -0
  182. package/dist/lib/model-updater.js.map +1 -0
  183. package/dist/lib/parser.d.ts +9 -0
  184. package/dist/lib/parser.d.ts.map +1 -0
  185. package/dist/lib/parser.js +197 -0
  186. package/dist/lib/parser.js.map +1 -0
  187. package/dist/lib/registry.d.ts +183 -0
  188. package/dist/lib/registry.d.ts.map +1 -0
  189. package/dist/lib/registry.js +786 -0
  190. package/dist/lib/registry.js.map +1 -0
  191. package/dist/lib/rpc-server.d.ts +78 -0
  192. package/dist/lib/rpc-server.d.ts.map +1 -0
  193. package/dist/lib/rpc-server.js +404 -0
  194. package/dist/lib/rpc-server.js.map +1 -0
  195. package/dist/lib/security.d.ts +120 -0
  196. package/dist/lib/security.d.ts.map +1 -0
  197. package/dist/lib/security.js +478 -0
  198. package/dist/lib/security.js.map +1 -0
  199. package/dist/lib/validation.d.ts +106 -0
  200. package/dist/lib/validation.d.ts.map +1 -0
  201. package/dist/lib/validation.js +398 -0
  202. package/dist/lib/validation.js.map +1 -0
  203. package/dist/lib/version.d.ts +29 -0
  204. package/dist/lib/version.d.ts.map +1 -0
  205. package/dist/lib/version.js +202 -0
  206. package/dist/lib/version.js.map +1 -0
  207. package/dist/lib/workflow-engine.d.ts +161 -0
  208. package/dist/lib/workflow-engine.d.ts.map +1 -0
  209. package/dist/lib/workflow-engine.js +422 -0
  210. package/dist/lib/workflow-engine.js.map +1 -0
  211. package/dist/lib/workflow.d.ts +102 -0
  212. package/dist/lib/workflow.d.ts.map +1 -0
  213. package/dist/lib/workflow.js +228 -0
  214. package/dist/lib/workflow.js.map +1 -0
  215. package/dist/server.d.ts +8 -0
  216. package/dist/server.d.ts.map +1 -0
  217. package/dist/server.js +134 -0
  218. package/dist/server.js.map +1 -0
  219. package/dist/types/index.d.ts +116 -0
  220. package/dist/types/index.d.ts.map +1 -0
  221. package/dist/types/index.js +144 -0
  222. package/dist/types/index.js.map +1 -0
  223. package/package.json +104 -0
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+ /**
3
+ * Prompd Workflow Execution Engine
4
+ * Enterprise-grade LLM workflow chaining with OAuth, security, and RPC
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TransformerNodeExecutor = exports.APINodeExecutor = exports.OutputNodeExecutor = exports.LoopNodeExecutor = exports.ConditionNodeExecutor = exports.ParameterNodeExecutor = exports.PromptNodeExecutor = exports.NodeExecutor = exports.WorkflowExecution = exports.WorkflowEngine = void 0;
8
+ const events_1 = require("events");
9
+ const security_1 = require("./security");
10
+ /**
11
+ * Core workflow execution engine
12
+ */
13
+ class WorkflowEngine extends events_1.EventEmitter {
14
+ constructor() {
15
+ super();
16
+ this.workflows = new Map();
17
+ this.executions = new Map();
18
+ this.nodeExecutors = new Map();
19
+ this.setupNodeExecutors();
20
+ }
21
+ /**
22
+ * Register a workflow for execution
23
+ */
24
+ async registerWorkflow(workflow) {
25
+ // Security validation
26
+ security_1.SecurityManager.validateWorkflowComplexity(workflow);
27
+ // Validate workflow structure
28
+ this.validateWorkflowStructure(workflow);
29
+ this.workflows.set(workflow.metadata.id, workflow);
30
+ this.emit('workflowRegistered', workflow.metadata.id);
31
+ }
32
+ /**
33
+ * Execute a workflow with parameters
34
+ */
35
+ async executeWorkflow(request) {
36
+ const executionId = this.generateExecutionId();
37
+ const startTime = new Date();
38
+ try {
39
+ // Get workflow
40
+ const workflow = this.workflows.get(request.workflowId);
41
+ if (!workflow) {
42
+ throw new Error(`Workflow not found: ${request.workflowId}`);
43
+ }
44
+ // Create execution context
45
+ const execution = new WorkflowExecution(executionId, workflow, request.parameters, request.userId, request.sessionId);
46
+ this.executions.set(executionId, execution);
47
+ this.emit('executionStarted', executionId);
48
+ // Build execution plan
49
+ const plan = this.buildExecutionPlan(workflow);
50
+ // Execute workflow
51
+ const result = await this.executeWorkflowPlan(execution, plan);
52
+ const endTime = new Date();
53
+ const metrics = {
54
+ startTime,
55
+ endTime,
56
+ durationMs: endTime.getTime() - startTime.getTime(),
57
+ nodesExecuted: execution.getCompletedNodes().size,
58
+ llmCalls: execution.getLLMCallCount(),
59
+ totalTokens: execution.getTotalTokens(),
60
+ costs: execution.getCosts()
61
+ };
62
+ this.emit('executionCompleted', executionId);
63
+ return {
64
+ success: true,
65
+ executionId,
66
+ result,
67
+ metrics,
68
+ logs: execution.getLogs()
69
+ };
70
+ }
71
+ catch (error) {
72
+ this.emit('executionFailed', executionId, error);
73
+ const execution = this.executions.get(executionId);
74
+ return {
75
+ success: false,
76
+ executionId,
77
+ error: error instanceof Error ? error.message : 'Unknown error',
78
+ metrics: {
79
+ startTime,
80
+ endTime: new Date(),
81
+ durationMs: Date.now() - startTime.getTime(),
82
+ nodesExecuted: execution?.getCompletedNodes().size || 0,
83
+ llmCalls: execution?.getLLMCallCount() || 0,
84
+ totalTokens: execution?.getTotalTokens() || 0,
85
+ costs: execution?.getCosts() || { totalCost: 0, breakdown: {} }
86
+ },
87
+ logs: execution?.getLogs() || []
88
+ };
89
+ }
90
+ finally {
91
+ // Cleanup execution after delay
92
+ setTimeout(() => {
93
+ this.executions.delete(executionId);
94
+ }, 5 * 60 * 1000); // Keep for 5 minutes
95
+ }
96
+ }
97
+ /**
98
+ * Get execution status
99
+ */
100
+ getExecutionStatus(executionId) {
101
+ const execution = this.executions.get(executionId);
102
+ if (!execution) {
103
+ return null;
104
+ }
105
+ return {
106
+ executionId,
107
+ status: execution.getStatus(),
108
+ progress: execution.getProgress(),
109
+ currentNode: execution.getCurrentNode(),
110
+ logs: execution.getLogs()
111
+ };
112
+ }
113
+ setupNodeExecutors() {
114
+ this.nodeExecutors.set('prompt', new PromptNodeExecutor());
115
+ this.nodeExecutors.set('parameter', new ParameterNodeExecutor());
116
+ this.nodeExecutors.set('condition', new ConditionNodeExecutor());
117
+ this.nodeExecutors.set('loop', new LoopNodeExecutor());
118
+ this.nodeExecutors.set('output', new OutputNodeExecutor());
119
+ this.nodeExecutors.set('api', new APINodeExecutor());
120
+ this.nodeExecutors.set('transformer', new TransformerNodeExecutor());
121
+ }
122
+ validateWorkflowStructure(workflow) {
123
+ // Check for cycles
124
+ if (this.hasCycles(workflow)) {
125
+ throw new Error('Workflow contains cycles');
126
+ }
127
+ // Validate node references
128
+ const nodeIds = new Set(workflow.nodes.map(n => n.id));
129
+ for (const connection of workflow.connections) {
130
+ if (!nodeIds.has(connection.sourceNodeId)) {
131
+ throw new Error(`Invalid connection: source node ${connection.sourceNodeId} not found`);
132
+ }
133
+ if (!nodeIds.has(connection.targetNodeId)) {
134
+ throw new Error(`Invalid connection: target node ${connection.targetNodeId} not found`);
135
+ }
136
+ }
137
+ }
138
+ hasCycles(workflow) {
139
+ // Simple cycle detection using DFS
140
+ const graph = this.buildDependencyGraph(workflow);
141
+ const visited = new Set();
142
+ const recursionStack = new Set();
143
+ const hasCycleDFS = (nodeId) => {
144
+ visited.add(nodeId);
145
+ recursionStack.add(nodeId);
146
+ const dependencies = graph.get(nodeId) || [];
147
+ for (const dep of dependencies) {
148
+ if (!visited.has(dep)) {
149
+ if (hasCycleDFS(dep))
150
+ return true;
151
+ }
152
+ else if (recursionStack.has(dep)) {
153
+ return true;
154
+ }
155
+ }
156
+ recursionStack.delete(nodeId);
157
+ return false;
158
+ };
159
+ for (const nodeId of graph.keys()) {
160
+ if (!visited.has(nodeId)) {
161
+ if (hasCycleDFS(nodeId))
162
+ return true;
163
+ }
164
+ }
165
+ return false;
166
+ }
167
+ buildDependencyGraph(workflow) {
168
+ const graph = new Map();
169
+ // Initialize nodes
170
+ for (const node of workflow.nodes) {
171
+ graph.set(node.id, []);
172
+ }
173
+ // Add dependencies from connections
174
+ for (const connection of workflow.connections) {
175
+ const dependencies = graph.get(connection.targetNodeId) || [];
176
+ dependencies.push(connection.sourceNodeId);
177
+ graph.set(connection.targetNodeId, dependencies);
178
+ }
179
+ return graph;
180
+ }
181
+ buildExecutionPlan(workflow) {
182
+ const dependencyGraph = this.buildDependencyGraph(workflow);
183
+ const nodes = [];
184
+ const parallelGroups = [];
185
+ // Convert workflow nodes to execution nodes
186
+ for (const node of workflow.nodes) {
187
+ nodes.push({
188
+ id: node.id,
189
+ type: node.type,
190
+ config: node.data.config,
191
+ dependencies: dependencyGraph.get(node.id) || [],
192
+ canRunInParallel: this.canNodeRunInParallel(node)
193
+ });
194
+ }
195
+ // Build parallel execution groups
196
+ const levels = this.topologicalSort(dependencyGraph);
197
+ for (const level of levels) {
198
+ parallelGroups.push(level);
199
+ }
200
+ return {
201
+ nodes,
202
+ dependencies: dependencyGraph,
203
+ parallelGroups
204
+ };
205
+ }
206
+ canNodeRunInParallel(node) {
207
+ // Nodes that can safely run in parallel with others at same level
208
+ const parallelSafeTypes = ['prompt', 'transformer', 'api'];
209
+ return parallelSafeTypes.includes(node.type);
210
+ }
211
+ topologicalSort(graph) {
212
+ const levels = [];
213
+ const inDegree = new Map();
214
+ const queue = [];
215
+ // Calculate in-degrees
216
+ for (const nodeId of graph.keys()) {
217
+ inDegree.set(nodeId, 0);
218
+ }
219
+ for (const dependencies of graph.values()) {
220
+ for (const dep of dependencies) {
221
+ inDegree.set(dep, (inDegree.get(dep) || 0) + 1);
222
+ }
223
+ }
224
+ // Find nodes with no dependencies
225
+ for (const [nodeId, degree] of inDegree.entries()) {
226
+ if (degree === 0) {
227
+ queue.push(nodeId);
228
+ }
229
+ }
230
+ while (queue.length > 0) {
231
+ const currentLevel = [...queue];
232
+ levels.push(currentLevel);
233
+ queue.length = 0;
234
+ for (const nodeId of currentLevel) {
235
+ const dependencies = graph.get(nodeId) || [];
236
+ for (const dep of dependencies) {
237
+ const newDegree = (inDegree.get(dep) || 0) - 1;
238
+ inDegree.set(dep, newDegree);
239
+ if (newDegree === 0) {
240
+ queue.push(dep);
241
+ }
242
+ }
243
+ }
244
+ }
245
+ return levels;
246
+ }
247
+ async executeWorkflowPlan(execution, plan) {
248
+ let finalResult = null;
249
+ // Execute nodes level by level
250
+ for (const level of plan.parallelGroups) {
251
+ const levelPromises = [];
252
+ for (const nodeId of level) {
253
+ const node = plan.nodes.find(n => n.id === nodeId);
254
+ if (!node)
255
+ continue;
256
+ const executor = this.nodeExecutors.get(node.type);
257
+ if (!executor) {
258
+ throw new Error(`No executor found for node type: ${node.type}`);
259
+ }
260
+ const context = {
261
+ nodeId: node.id,
262
+ inputs: execution.getNodeInputs(nodeId),
263
+ outputs: {},
264
+ variables: execution.getVariables(),
265
+ metadata: {
266
+ executionId: execution.getId(),
267
+ userId: execution.getUserId(),
268
+ startTime: new Date()
269
+ }
270
+ };
271
+ levelPromises.push(executor.execute(node, context));
272
+ }
273
+ // Wait for all nodes in level to complete
274
+ const results = await Promise.all(levelPromises);
275
+ // Store results
276
+ for (let i = 0; i < level.length; i++) {
277
+ const nodeId = level[i];
278
+ execution.setNodeOutput(nodeId, results[i]);
279
+ // Check if this is a final output node
280
+ const node = plan.nodes.find(n => n.id === nodeId);
281
+ if (node && node.type === 'output') {
282
+ finalResult = results[i];
283
+ }
284
+ }
285
+ }
286
+ return finalResult || 'Workflow completed';
287
+ }
288
+ generateExecutionId() {
289
+ return `exec_${Date.now()}_${Math.random().toString(36).substring(2)}`;
290
+ }
291
+ }
292
+ exports.WorkflowEngine = WorkflowEngine;
293
+ /**
294
+ * Individual workflow execution instance
295
+ */
296
+ class WorkflowExecution {
297
+ constructor(executionId, workflow, parameters, userId, sessionId) {
298
+ this.executionId = executionId;
299
+ this.workflow = workflow;
300
+ this.parameters = parameters;
301
+ this.userId = userId;
302
+ this.sessionId = sessionId;
303
+ this.status = 'pending';
304
+ this.nodeOutputs = new Map();
305
+ this.variables = new Map();
306
+ this.logs = [];
307
+ this.completedNodes = new Set();
308
+ this.llmCallCount = 0;
309
+ this.totalTokens = 0;
310
+ this.costs = { totalCost: 0, breakdown: {} };
311
+ // Initialize variables with parameters
312
+ for (const [key, value] of Object.entries(parameters)) {
313
+ this.variables.set(key, security_1.SecurityManager.sanitizeParameters({ [key]: value })[key]);
314
+ }
315
+ }
316
+ getId() { return this.executionId; }
317
+ getUserId() { return this.userId; }
318
+ getStatus() { return this.status; }
319
+ getCurrentNode() { return this.currentNode; }
320
+ getCompletedNodes() { return this.completedNodes; }
321
+ getLogs() { return this.logs; }
322
+ getLLMCallCount() { return this.llmCallCount; }
323
+ getTotalTokens() { return this.totalTokens; }
324
+ getCosts() { return this.costs; }
325
+ getVariables() { return this.variables; }
326
+ setNodeOutput(nodeId, output) {
327
+ this.nodeOutputs.set(nodeId, output);
328
+ this.completedNodes.add(nodeId);
329
+ }
330
+ getNodeInputs(nodeId) {
331
+ const inputs = {};
332
+ // Find connections to this node
333
+ const incomingConnections = this.workflow.connections.filter(c => c.targetNodeId === nodeId);
334
+ for (const connection of incomingConnections) {
335
+ const sourceOutput = this.nodeOutputs.get(connection.sourceNodeId);
336
+ if (sourceOutput !== undefined) {
337
+ inputs[connection.targetPortId] = sourceOutput;
338
+ }
339
+ }
340
+ return inputs;
341
+ }
342
+ getProgress() {
343
+ const totalNodes = this.workflow.nodes.length;
344
+ const completed = this.completedNodes.size;
345
+ return totalNodes > 0 ? (completed / totalNodes) * 100 : 0;
346
+ }
347
+ log(level, message, nodeId, data) {
348
+ this.logs.push({
349
+ timestamp: new Date(),
350
+ level,
351
+ nodeId,
352
+ message,
353
+ data
354
+ });
355
+ }
356
+ }
357
+ exports.WorkflowExecution = WorkflowExecution;
358
+ /**
359
+ * Base class for node executors
360
+ */
361
+ class NodeExecutor {
362
+ }
363
+ exports.NodeExecutor = NodeExecutor;
364
+ /**
365
+ * Specific node executors
366
+ */
367
+ class PromptNodeExecutor extends NodeExecutor {
368
+ async execute(node, context) {
369
+ // This would integrate with LLM providers
370
+ // For now, return a placeholder
371
+ return `Executed prompt: ${node.config.template || 'Default prompt'}`;
372
+ }
373
+ }
374
+ exports.PromptNodeExecutor = PromptNodeExecutor;
375
+ class ParameterNodeExecutor extends NodeExecutor {
376
+ async execute(node, context) {
377
+ const paramName = node.config.parameterName;
378
+ return context.variables.get(paramName) || node.config.defaultValue;
379
+ }
380
+ }
381
+ exports.ParameterNodeExecutor = ParameterNodeExecutor;
382
+ class ConditionNodeExecutor extends NodeExecutor {
383
+ async execute(node, context) {
384
+ // Simple condition evaluation - would be more sophisticated in production
385
+ return true;
386
+ }
387
+ }
388
+ exports.ConditionNodeExecutor = ConditionNodeExecutor;
389
+ class LoopNodeExecutor extends NodeExecutor {
390
+ async execute(node, context) {
391
+ // Loop execution logic
392
+ return 'Loop completed';
393
+ }
394
+ }
395
+ exports.LoopNodeExecutor = LoopNodeExecutor;
396
+ class OutputNodeExecutor extends NodeExecutor {
397
+ async execute(node, context) {
398
+ const template = node.config.template || '{result}';
399
+ let output = template;
400
+ // Simple template replacement
401
+ for (const [key, value] of Object.entries(context.inputs)) {
402
+ output = output.replace(`{${key}}`, String(value));
403
+ }
404
+ return output;
405
+ }
406
+ }
407
+ exports.OutputNodeExecutor = OutputNodeExecutor;
408
+ class APINodeExecutor extends NodeExecutor {
409
+ async execute(node, context) {
410
+ // API call logic - would make actual HTTP requests
411
+ return `API call result for ${node.config.endpoint}`;
412
+ }
413
+ }
414
+ exports.APINodeExecutor = APINodeExecutor;
415
+ class TransformerNodeExecutor extends NodeExecutor {
416
+ async execute(node, context) {
417
+ // Data transformation logic
418
+ return `Transformed data using ${node.config.transformationType}`;
419
+ }
420
+ }
421
+ exports.TransformerNodeExecutor = TransformerNodeExecutor;
422
+ //# sourceMappingURL=workflow-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../../src/lib/workflow-engine.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,mCAAsC;AACtC,yCAA6C;AAmE7C;;GAEG;AACH,MAAa,cAAe,SAAQ,qBAAY;IAK9C;QACE,KAAK,EAAE,CAAC;QALF,cAAS,GAAoC,IAAI,GAAG,EAAE,CAAC;QACvD,eAAU,GAAmC,IAAI,GAAG,EAAE,CAAC;QACvD,kBAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;QAI3D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAA4B;QACjD,sBAAsB;QACtB,0BAAe,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAErD,8BAA8B;QAC9B,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,OAAiC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,eAAe;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,2BAA2B;YAC3B,MAAM,SAAS,GAAG,IAAI,iBAAiB,CACrC,WAAW,EACX,QAAQ,EACR,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;YAE3C,uBAAuB;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAE/C,mBAAmB;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAqB;gBAChC,SAAS;gBACT,OAAO;gBACP,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;gBACnD,aAAa,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,IAAI;gBACjD,QAAQ,EAAE,SAAS,CAAC,eAAe,EAAE;gBACrC,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE;gBACvC,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC5B,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;YAE7C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE;aAC1B,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW;gBACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBAC/D,OAAO,EAAE;oBACP,SAAS;oBACT,OAAO,EAAE,IAAI,IAAI,EAAE;oBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;oBAC5C,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,IAAI,IAAI,CAAC;oBACvD,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC;oBAC3C,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC;oBAC7C,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBAChE;gBACD,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;aACjC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,gCAAgC;YAChC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,qBAAqB;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,WAAmB;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,WAAW;YACX,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE;YAC7B,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE;YACjC,WAAW,EAAE,SAAS,CAAC,cAAc,EAAE;YACvC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE;SAC1B,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,yBAAyB,CAAC,QAA4B;QAC5D,mBAAmB;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,YAAY,YAAY,CAAC,CAAC;YAC1F,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,YAAY,YAAY,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,QAA4B;QAC5C,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE;YAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE3B,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,IAAI,WAAW,CAAC,GAAG,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACpC,CAAC;qBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,IAAI,WAAW,CAAC,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAC;YACvC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,oBAAoB,CAAC,QAA4B;QACvD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE1C,mBAAmB;QACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzB,CAAC;QAED,oCAAoC;QACpC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC9D,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3C,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,kBAAkB,CAAC,QAA4B;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,MAAM,cAAc,GAAe,EAAE,CAAC;QAEtC,4CAA4C;QAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,YAAY,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;gBAChD,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO;YACL,KAAK;YACL,YAAY,EAAE,eAAe;YAC7B,cAAc;SACf,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,IAAc;QACzC,kEAAkE;QAClE,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,eAAe,CAAC,KAA4B;QAClD,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,uBAAuB;QACvB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,YAAY,GAAa,CAAC,GAAG,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjB,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/C,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE7B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;wBACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,SAA4B,EAAE,IAAmB;QACjF,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,+BAA+B;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,MAAM,aAAa,GAAmB,EAAE,CAAC;YAEzC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACnD,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnE,CAAC;gBAED,MAAM,OAAO,GAAyB;oBACpC,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC;oBACvC,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE;oBACnC,QAAQ,EAAE;wBACR,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE;wBAC9B,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE;wBAC7B,SAAS,EAAE,IAAI,IAAI,EAAE;qBACtB;iBACF,CAAC;gBAEF,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACtD,CAAC;YAED,0CAA0C;YAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEjD,gBAAgB;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE5C,uCAAuC;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACnD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,IAAI,oBAAoB,CAAC;IAC7C,CAAC;IAEO,mBAAmB;QACzB,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;CACF;AA5UD,wCA4UC;AAED;;GAEG;AACH,MAAa,iBAAiB;IAW5B,YACU,WAAmB,EACnB,QAA4B,EAC5B,UAA+B,EAC/B,MAAe,EACf,SAAkB;QAJlB,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,eAAU,GAAV,UAAU,CAAqB;QAC/B,WAAM,GAAN,MAAM,CAAS;QACf,cAAS,GAAT,SAAS,CAAS;QAfpB,WAAM,GAAmD,SAAS,CAAC;QACnE,gBAAW,GAAG,IAAI,GAAG,EAAe,CAAC;QACrC,cAAS,GAAG,IAAI,GAAG,EAAe,CAAC;QACnC,SAAI,GAAmB,EAAE,CAAC;QAC1B,mBAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEnC,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,CAAC,CAAC;QAChB,UAAK,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAA4B,EAAE,CAAC;QASxE,uCAAuC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,0BAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,KAAK,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,SAAS,KAAyB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,SAAS,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,cAAc,KAAyB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,iBAAiB,KAAkB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAChE,OAAO,KAAqB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,eAAe,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,cAAc,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,QAAQ,KAA+D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,YAAY,KAAuB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3D,aAAa,CAAC,MAAc,EAAE,MAAW;QACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,gCAAgC;QAChC,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;QAE7F,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;YACjD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC3C,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAC,KAA4B,EAAE,OAAe,EAAE,MAAe,EAAE,IAAU;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK;YACL,MAAM;YACN,OAAO;YACP,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAvED,8CAuEC;AAED;;GAEG;AACH,MAAsB,YAAY;CAEjC;AAFD,oCAEC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,YAAY;IAClD,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,0CAA0C;QAC1C,gCAAgC;QAChC,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,gBAAgB,EAAE,CAAC;IACxE,CAAC;CACF;AAND,gDAMC;AAED,MAAa,qBAAsB,SAAQ,YAAY;IACrD,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC5C,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IACtE,CAAC;CACF;AALD,sDAKC;AAED,MAAa,qBAAsB,SAAQ,YAAY;IACrD,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,0EAA0E;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AALD,sDAKC;AAED,MAAa,gBAAiB,SAAQ,YAAY;IAChD,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,uBAAuB;QACvB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AALD,4CAKC;AAED,MAAa,kBAAmB,SAAQ,YAAY;IAClD,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC;QACpD,IAAI,MAAM,GAAG,QAAQ,CAAC;QAEtB,8BAA8B;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAZD,gDAYC;AAED,MAAa,eAAgB,SAAQ,YAAY;IAC/C,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,mDAAmD;QACnD,OAAO,uBAAuB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACvD,CAAC;CACF;AALD,0CAKC;AAED,MAAa,uBAAwB,SAAQ,YAAY;IACvD,KAAK,CAAC,OAAO,CAAC,IAAmB,EAAE,OAA6B;QAC9D,4BAA4B;QAC5B,OAAO,0BAA0B,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IACpE,CAAC;CACF;AALD,0DAKC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Prompd Workflow execution support for MCP integration
3
+ * Handles .prmdflow files from prompd-IDE
4
+ */
5
+ export interface PrompdFlowDocument {
6
+ version: string;
7
+ metadata: FlowMetadata;
8
+ nodes: FlowNode[];
9
+ connections: FlowConnection[];
10
+ variables: FlowVariable[];
11
+ executionConfig: ExecutionConfiguration;
12
+ }
13
+ export interface FlowMetadata {
14
+ id: string;
15
+ name: string;
16
+ description?: string;
17
+ version: string;
18
+ parameters?: FlowParameter[];
19
+ }
20
+ export interface FlowParameter {
21
+ name: string;
22
+ type: string;
23
+ required?: boolean;
24
+ description?: string;
25
+ default?: any;
26
+ }
27
+ export interface FlowNode {
28
+ id: string;
29
+ type: string;
30
+ data: NodeData;
31
+ inputPorts: Port[];
32
+ outputPorts: Port[];
33
+ }
34
+ export interface NodeData {
35
+ label: string;
36
+ description?: string;
37
+ enabled: boolean;
38
+ config: any;
39
+ }
40
+ export interface Port {
41
+ id: string;
42
+ name: string;
43
+ dataType: string;
44
+ required: boolean;
45
+ description?: string;
46
+ }
47
+ export interface FlowConnection {
48
+ id: string;
49
+ sourceNodeId: string;
50
+ sourcePortId: string;
51
+ targetNodeId: string;
52
+ targetPortId: string;
53
+ }
54
+ export interface FlowVariable {
55
+ name: string;
56
+ type: string;
57
+ value?: any;
58
+ scope: 'global' | 'local';
59
+ description?: string;
60
+ }
61
+ export interface ExecutionConfiguration {
62
+ parallelism: {
63
+ enabled: boolean;
64
+ maxConcurrency: number;
65
+ };
66
+ errorHandling: {
67
+ continueOnError: boolean;
68
+ retryPolicy: {
69
+ enabled: boolean;
70
+ maxRetries: number;
71
+ };
72
+ };
73
+ }
74
+ export interface WorkflowExecutionResult {
75
+ success: boolean;
76
+ result?: any;
77
+ error?: string;
78
+ executionTime: number;
79
+ nodesExecuted: number;
80
+ errors: Array<{
81
+ nodeId: string;
82
+ message: string;
83
+ }>;
84
+ }
85
+ export declare class WorkflowExecutor {
86
+ private workflows;
87
+ loadWorkflow(filePath: string): Promise<PrompdFlowDocument>;
88
+ private validateWorkflow;
89
+ getWorkflowParameters(workflow: PrompdFlowDocument): FlowParameter[];
90
+ executeWorkflow(workflow: PrompdFlowDocument, parameters: Record<string, any>): Promise<WorkflowExecutionResult>;
91
+ private executeNodes;
92
+ private executeNode;
93
+ registerWorkflow(name: string, workflow: PrompdFlowDocument): void;
94
+ getWorkflow(name: string): PrompdFlowDocument | undefined;
95
+ listWorkflows(): string[];
96
+ discoverWorkflows(directory: string): Promise<Array<{
97
+ name: string;
98
+ path: string;
99
+ workflow: PrompdFlowDocument;
100
+ }>>;
101
+ }
102
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/lib/workflow.ts"],"names":[],"mappings":"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"}