@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,228 @@
1
+ "use strict";
2
+ /**
3
+ * Prompd Workflow execution support for MCP integration
4
+ * Handles .prmdflow files from prompd-IDE
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.WorkflowExecutor = void 0;
41
+ const fs = __importStar(require("fs-extra"));
42
+ const path = __importStar(require("path"));
43
+ const yaml = __importStar(require("yaml"));
44
+ class WorkflowExecutor {
45
+ constructor() {
46
+ this.workflows = new Map();
47
+ }
48
+ async loadWorkflow(filePath) {
49
+ try {
50
+ const content = await fs.readFile(filePath, 'utf-8');
51
+ let workflow;
52
+ if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
53
+ workflow = yaml.parse(content);
54
+ }
55
+ else if (filePath.endsWith('.json')) {
56
+ workflow = JSON.parse(content);
57
+ }
58
+ else if (filePath.endsWith('.prmdflow')) {
59
+ // .prmdflow files are JSON format
60
+ workflow = JSON.parse(content);
61
+ }
62
+ else {
63
+ throw new Error(`Unsupported workflow file format: ${path.extname(filePath)}`);
64
+ }
65
+ // Validate workflow structure
66
+ this.validateWorkflow(workflow);
67
+ return workflow;
68
+ }
69
+ catch (error) {
70
+ throw new Error(`Failed to load workflow from ${filePath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
71
+ }
72
+ }
73
+ validateWorkflow(workflow) {
74
+ if (!workflow.metadata) {
75
+ throw new Error('Workflow metadata is required');
76
+ }
77
+ if (!workflow.metadata.name) {
78
+ throw new Error('Workflow name is required');
79
+ }
80
+ if (!workflow.nodes || workflow.nodes.length === 0) {
81
+ throw new Error('Workflow must contain at least one node');
82
+ }
83
+ // Validate node references in connections
84
+ const nodeIds = new Set(workflow.nodes.map(n => n.id));
85
+ for (const connection of workflow.connections || []) {
86
+ if (!nodeIds.has(connection.sourceNodeId)) {
87
+ throw new Error(`Connection references unknown source node: ${connection.sourceNodeId}`);
88
+ }
89
+ if (!nodeIds.has(connection.targetNodeId)) {
90
+ throw new Error(`Connection references unknown target node: ${connection.targetNodeId}`);
91
+ }
92
+ }
93
+ }
94
+ getWorkflowParameters(workflow) {
95
+ // Extract parameters from metadata if available
96
+ if (workflow.metadata.parameters) {
97
+ return workflow.metadata.parameters;
98
+ }
99
+ // Otherwise, extract from parameter nodes
100
+ const parameterNodes = workflow.nodes.filter(node => node.type === 'parameter');
101
+ return parameterNodes.map(node => ({
102
+ name: node.data.config.parameterName || node.data.label,
103
+ type: node.data.config.dataType || 'string',
104
+ required: node.data.config.required || false,
105
+ description: node.data.description,
106
+ default: node.data.config.defaultValue
107
+ }));
108
+ }
109
+ async executeWorkflow(workflow, parameters) {
110
+ const startTime = Date.now();
111
+ const executionContext = {
112
+ variables: new Map(),
113
+ nodeOutputs: new Map(),
114
+ errors: []
115
+ };
116
+ // Initialize variables from parameters
117
+ for (const [key, value] of Object.entries(parameters)) {
118
+ executionContext.variables.set(key, value);
119
+ }
120
+ // Initialize global variables
121
+ for (const variable of workflow.variables || []) {
122
+ if (variable.scope === 'global' && variable.value !== undefined) {
123
+ executionContext.variables.set(variable.name, variable.value);
124
+ }
125
+ }
126
+ try {
127
+ // Simple sequential execution for now
128
+ // In a full implementation, this would handle the complex execution graph
129
+ const result = await this.executeNodes(workflow, executionContext);
130
+ const executionTime = Date.now() - startTime;
131
+ return {
132
+ success: executionContext.errors.length === 0,
133
+ result,
134
+ executionTime,
135
+ nodesExecuted: workflow.nodes.length,
136
+ errors: executionContext.errors
137
+ };
138
+ }
139
+ catch (error) {
140
+ return {
141
+ success: false,
142
+ error: error instanceof Error ? error.message : 'Unknown execution error',
143
+ executionTime: Date.now() - startTime,
144
+ nodesExecuted: 0,
145
+ errors: executionContext.errors
146
+ };
147
+ }
148
+ }
149
+ async executeNodes(workflow, context) {
150
+ // This is a simplified sequential execution
151
+ // A full implementation would:
152
+ // 1. Build execution graph from connections
153
+ // 2. Handle parallel execution based on dependencies
154
+ // 3. Support all node types (condition, loop, etc.)
155
+ // 4. Integrate with LLM providers for prompt nodes
156
+ let finalResult = 'Workflow executed successfully';
157
+ for (const node of workflow.nodes) {
158
+ try {
159
+ const result = await this.executeNode(node, context);
160
+ context.nodeOutputs.set(node.id, result);
161
+ // If this is an output node, capture its result
162
+ if (node.type === 'output') {
163
+ finalResult = result;
164
+ }
165
+ }
166
+ catch (error) {
167
+ context.errors.push({
168
+ nodeId: node.id,
169
+ message: error instanceof Error ? error.message : 'Unknown node execution error'
170
+ });
171
+ // Stop execution on error unless configured to continue
172
+ if (!workflow.executionConfig?.errorHandling?.continueOnError) {
173
+ throw error;
174
+ }
175
+ }
176
+ }
177
+ return finalResult;
178
+ }
179
+ async executeNode(node, context) {
180
+ // Simplified node execution - in reality this would handle each node type differently
181
+ switch (node.type) {
182
+ case 'parameter':
183
+ // Parameter nodes just provide their configured value
184
+ const paramName = node.data.config.parameterName;
185
+ return context.variables.get(paramName) || node.data.config.defaultValue;
186
+ case 'prompt':
187
+ // For now, return a placeholder - would integrate with PrompdExecutor
188
+ return `Executed prompt: ${node.data.label}`;
189
+ case 'output':
190
+ // Format output based on template
191
+ const template = node.data.config.template || '{result}';
192
+ return template.replace('{result}', 'Workflow completed');
193
+ case 'transformer':
194
+ // Apply transformation - simplified
195
+ return `Transformed data from ${node.data.label}`;
196
+ default:
197
+ return `Executed ${node.type} node: ${node.data.label}`;
198
+ }
199
+ }
200
+ registerWorkflow(name, workflow) {
201
+ this.workflows.set(name, workflow);
202
+ }
203
+ getWorkflow(name) {
204
+ return this.workflows.get(name);
205
+ }
206
+ listWorkflows() {
207
+ return Array.from(this.workflows.keys());
208
+ }
209
+ async discoverWorkflows(directory) {
210
+ const glob = await Promise.resolve().then(() => __importStar(require('glob')));
211
+ const pattern = path.join(directory, '**/*.prmdflow');
212
+ const files = glob.sync(pattern);
213
+ const workflows = [];
214
+ for (const file of files) {
215
+ try {
216
+ const workflow = await this.loadWorkflow(file);
217
+ const name = workflow.metadata.name || path.basename(file, '.prmdflow');
218
+ workflows.push({ name, path: file, workflow });
219
+ }
220
+ catch (error) {
221
+ console.warn(`Skipping invalid workflow file ${file}: ${error instanceof Error ? error.message : 'Unknown error'}`);
222
+ }
223
+ }
224
+ return workflows;
225
+ }
226
+ }
227
+ exports.WorkflowExecutor = WorkflowExecutor;
228
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/lib/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Prompd Workflow Engine Server
4
+ * Entry point for running the RPC API server
5
+ */
6
+ declare function main(): Promise<void>;
7
+ export { main };
8
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAKH,iBAAe,IAAI,kBA6HlB;AAqBD,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/server.js ADDED
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Prompd Workflow Engine Server
5
+ * Entry point for running the RPC API server
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.main = main;
9
+ const rpc_server_1 = require("./lib/rpc-server");
10
+ const security_1 = require("./lib/security");
11
+ async function main() {
12
+ try {
13
+ console.log('🚀 Starting Prompd Workflow Engine...');
14
+ // Validate required environment variables
15
+ const requiredEnvVars = ['JWT_SECRET'];
16
+ const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
17
+ if (missingVars.length > 0) {
18
+ console.error('❌ Missing required environment variables:', missingVars.join(', '));
19
+ console.error('Please set the following environment variables:');
20
+ console.error('- JWT_SECRET: A secure random string for JWT token signing');
21
+ console.error('- OAUTH_CLIENT_ID: OAuth 2.0 client ID (optional)');
22
+ console.error('- OAUTH_CLIENT_SECRET: OAuth 2.0 client secret (optional)');
23
+ process.exit(1);
24
+ }
25
+ // Create server configuration
26
+ const config = {
27
+ ...(0, rpc_server_1.createDefaultRPCConfig)(),
28
+ auth: {
29
+ jwtSecret: process.env.JWT_SECRET,
30
+ oauthClientId: process.env.OAUTH_CLIENT_ID || '',
31
+ oauthClientSecret: process.env.OAUTH_CLIENT_SECRET || ''
32
+ }
33
+ };
34
+ // Initialize security manager
35
+ security_1.SecurityManager.initialize();
36
+ // Create and start server
37
+ const server = new rpc_server_1.RPCServer(config);
38
+ // Event listeners
39
+ server.on('started', (info) => {
40
+ console.log(`✅ Prompd Workflow Engine started successfully`);
41
+ console.log(`🌐 Server listening on http://${info.host}:${info.port}`);
42
+ console.log(`🔒 Security features enabled`);
43
+ console.log(`📊 Health check: http://${info.host}:${info.port}/health`);
44
+ console.log(`📈 Metrics: http://${info.host}:${info.port}/metrics`);
45
+ console.log(`🆔 Process ID: ${info.pid}`);
46
+ if (config.auth.oauthClientId) {
47
+ console.log(`🔐 OAuth authentication enabled`);
48
+ console.log(`🔑 Login endpoint: http://${info.host}:${info.port}/auth/login`);
49
+ }
50
+ });
51
+ server.on('error', (error) => {
52
+ console.error('❌ Server error:', error);
53
+ });
54
+ server.on('workflowExecuted', (info) => {
55
+ console.log(`✅ Workflow executed: ${info.workflowId} (${info.executionId}) by user ${info.userId}`);
56
+ });
57
+ server.on('workflowExecutionFailed', (info) => {
58
+ console.error(`❌ Workflow execution failed: ${info.workflowId} by user ${info.userId} - ${info.error}`);
59
+ });
60
+ server.on('requestCompleted', (info) => {
61
+ if (process.env.LOG_LEVEL === 'debug') {
62
+ console.log(`📡 ${info.method} ${info.url} - ${info.status} (${info.duration}ms)`);
63
+ }
64
+ });
65
+ // Graceful shutdown
66
+ const gracefulShutdown = async (signal) => {
67
+ console.log(`\n🛑 Received ${signal}. Starting graceful shutdown...`);
68
+ try {
69
+ await server.stop();
70
+ console.log('✅ Server stopped gracefully');
71
+ process.exit(0);
72
+ }
73
+ catch (error) {
74
+ console.error('❌ Error during shutdown:', error);
75
+ process.exit(1);
76
+ }
77
+ };
78
+ process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
79
+ process.on('SIGINT', () => gracefulShutdown('SIGINT'));
80
+ // Start server
81
+ await server.start();
82
+ // Log environment info
83
+ console.log('\n📋 Environment Information:');
84
+ console.log(` Node.js: ${process.version}`);
85
+ console.log(` Platform: ${process.platform} ${process.arch}`);
86
+ console.log(` Environment: ${process.env.NODE_ENV || 'development'}`);
87
+ console.log(` Memory: ${Math.round(process.memoryUsage().heapUsed / 1024 / 1024)}MB used`);
88
+ console.log(` Uptime: ${Math.round(process.uptime())}s`);
89
+ if (process.env.NODE_ENV === 'development') {
90
+ console.log('\n🧪 Development Mode Features:');
91
+ console.log(' - Detailed error messages');
92
+ console.log(' - Request logging');
93
+ console.log(' - Auto-reload on file changes');
94
+ }
95
+ console.log('\n🎯 API Endpoints:');
96
+ console.log(` POST /workflows/execute - Execute a workflow`);
97
+ console.log(` GET /workflows/executions/:id - Get execution status`);
98
+ console.log(` GET /workflows - List available workflows`);
99
+ console.log(` GET /auth/login - Initialize OAuth login`);
100
+ console.log(` POST /auth/callback - OAuth callback handler`);
101
+ console.log(` GET /health - Health check`);
102
+ console.log(` GET /ready - Readiness check`);
103
+ console.log(` GET /metrics - Prometheus metrics`);
104
+ if (process.env.NODE_ENV !== 'production') {
105
+ console.log('\n💡 Example API Usage:');
106
+ console.log(`curl -X POST http://${config.host}:${config.port}/workflows/execute \\`);
107
+ console.log(` -H "Authorization: Bearer YOUR_JWT_TOKEN" \\`);
108
+ console.log(` -H "Content-Type: application/json" \\`);
109
+ console.log(` -d '{"workflowId": "example-workflow", "parameters": {"input": "Hello World"}}'`);
110
+ }
111
+ console.log('\n🚀 Prompd Workflow Engine is ready to process workflows!');
112
+ }
113
+ catch (error) {
114
+ console.error('💥 Failed to start server:', error);
115
+ process.exit(1);
116
+ }
117
+ }
118
+ // Handle uncaught exceptions
119
+ process.on('uncaughtException', (error) => {
120
+ console.error('💥 Uncaught Exception:', error);
121
+ process.exit(1);
122
+ });
123
+ process.on('unhandledRejection', (reason, promise) => {
124
+ console.error('💥 Unhandled Rejection at:', promise, 'reason:', reason);
125
+ process.exit(1);
126
+ });
127
+ // Start the server
128
+ if (require.main === module) {
129
+ main().catch((error) => {
130
+ console.error('💥 Failed to start:', error);
131
+ process.exit(1);
132
+ });
133
+ }
134
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Code file extensions that need frontmatter protection for security.
3
+ * These files will have prompd content frontmatter added to make them non-executable.
4
+ * Used by: CLI packager, registry security validation, frontend file selection
5
+ */
6
+ export declare const CODE_EXTENSIONS: readonly [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".py", ".pyw", ".pyi", ".sh", ".bash", ".zsh", ".fish", ".ps1", ".psm1", ".psd1", ".bat", ".cmd", ".rb", ".rake", ".gemspec", ".go", ".rs", ".c", ".cpp", ".cc", ".cxx", ".h", ".hpp", ".hxx", ".java", ".kt", ".kts", ".scala", ".groovy", ".cs", ".fs", ".vb", ".php", ".phtml", ".pl", ".pm", ".swift", ".lua", ".r", ".R", ".jl", ".ex", ".exs", ".erl", ".hs", ".lhs", ".vue", ".svelte", ".sql"];
7
+ /**
8
+ * Map file extensions to content type names for frontmatter metadata.
9
+ */
10
+ export declare const CONTENT_TYPES: Record<string, string>;
11
+ /**
12
+ * Check if a file extension requires frontmatter protection.
13
+ */
14
+ export declare function needsFrontmatterProtection(filePath: string): boolean;
15
+ /**
16
+ * Get the content type for a file extension.
17
+ */
18
+ export declare function getContentType(filePath: string): string;
19
+ export interface PrompdParameter {
20
+ name: string;
21
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object';
22
+ description?: string;
23
+ required?: boolean;
24
+ default?: any;
25
+ pattern?: string;
26
+ minimum?: number;
27
+ maximum?: number;
28
+ enum?: string[];
29
+ }
30
+ export interface UsingPackage {
31
+ name: string;
32
+ prefix?: string;
33
+ }
34
+ export interface PrompdMetadata {
35
+ id: string;
36
+ name?: string;
37
+ description?: string;
38
+ version?: string;
39
+ parameters?: PrompdParameter[];
40
+ variables?: PrompdParameter[];
41
+ system?: string | string[];
42
+ context?: string | string[];
43
+ task?: string | string[];
44
+ user?: string | string[];
45
+ assistant?: string | string[];
46
+ response?: string | string[];
47
+ output?: string | string[];
48
+ requires?: string[];
49
+ using?: string | UsingPackage[] | Record<string, string>;
50
+ inherits?: string;
51
+ override?: Record<string, string | null>;
52
+ }
53
+ export interface PrompdFile {
54
+ metadata: PrompdMetadata;
55
+ content: string;
56
+ sections: Record<string, string>;
57
+ }
58
+ export interface CustomProvider {
59
+ apiKey?: string;
60
+ baseUrl: string;
61
+ enabled: boolean;
62
+ models: string[];
63
+ type: string;
64
+ }
65
+ export interface RegistryConfig {
66
+ url: string;
67
+ token?: string;
68
+ username?: string;
69
+ }
70
+ export interface Config {
71
+ apiKeys: Record<string, string>;
72
+ defaultProvider?: string;
73
+ defaultModel?: string;
74
+ customProviders: Record<string, CustomProvider>;
75
+ registry: {
76
+ default?: string;
77
+ registries: Record<string, RegistryConfig>;
78
+ };
79
+ scopes: Record<string, string>;
80
+ namespaces?: Record<string, string>;
81
+ currentNamespace?: string;
82
+ maxRetries?: number;
83
+ timeout?: number;
84
+ verbose?: boolean;
85
+ }
86
+ export interface LLMResponse {
87
+ success: boolean;
88
+ response?: string;
89
+ error?: string;
90
+ content?: string;
91
+ usage?: {
92
+ promptTokens: number;
93
+ completionTokens: number;
94
+ totalTokens: number;
95
+ };
96
+ }
97
+ export interface ValidationIssue {
98
+ level: 'error' | 'warning' | 'info';
99
+ message: string;
100
+ line?: number;
101
+ column?: number;
102
+ }
103
+ export interface ExecuteOptions {
104
+ provider: string;
105
+ model: string;
106
+ apiKey?: string;
107
+ output?: string;
108
+ params?: Record<string, any>;
109
+ paramFiles?: string[];
110
+ version?: string;
111
+ metaSystem?: string;
112
+ metaContext?: string;
113
+ metaUser?: string;
114
+ verbose?: boolean;
115
+ }
116
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONTENT_TYPES = exports.CODE_EXTENSIONS = void 0;
4
+ exports.needsFrontmatterProtection = needsFrontmatterProtection;
5
+ exports.getContentType = getContentType;
6
+ /**
7
+ * Code file extensions that need frontmatter protection for security.
8
+ * These files will have prompd content frontmatter added to make them non-executable.
9
+ * Used by: CLI packager, registry security validation, frontend file selection
10
+ */
11
+ exports.CODE_EXTENSIONS = [
12
+ // JavaScript/TypeScript ecosystem
13
+ '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
14
+ // Python
15
+ '.py', '.pyw', '.pyi',
16
+ // Shell/Scripts
17
+ '.sh', '.bash', '.zsh', '.fish', '.ps1', '.psm1', '.psd1', '.bat', '.cmd',
18
+ // Ruby
19
+ '.rb', '.rake', '.gemspec',
20
+ // Go
21
+ '.go',
22
+ // Rust
23
+ '.rs',
24
+ // C/C++
25
+ '.c', '.cpp', '.cc', '.cxx', '.h', '.hpp', '.hxx',
26
+ // Java/JVM
27
+ '.java', '.kt', '.kts', '.scala', '.groovy',
28
+ // .NET
29
+ '.cs', '.fs', '.vb',
30
+ // PHP
31
+ '.php', '.phtml',
32
+ // Perl
33
+ '.pl', '.pm',
34
+ // Swift
35
+ '.swift',
36
+ // Lua
37
+ '.lua',
38
+ // R
39
+ '.r', '.R',
40
+ // Julia
41
+ '.jl',
42
+ // Elixir/Erlang
43
+ '.ex', '.exs', '.erl',
44
+ // Haskell
45
+ '.hs', '.lhs',
46
+ // Web frameworks
47
+ '.vue', '.svelte',
48
+ // SQL (can be dangerous with stored procedures)
49
+ '.sql',
50
+ ];
51
+ /**
52
+ * Map file extensions to content type names for frontmatter metadata.
53
+ */
54
+ exports.CONTENT_TYPES = {
55
+ // JavaScript/TypeScript
56
+ '.ts': 'typescript',
57
+ '.tsx': 'typescript-react',
58
+ '.js': 'javascript',
59
+ '.jsx': 'javascript-react',
60
+ '.mjs': 'javascript-module',
61
+ '.cjs': 'javascript-commonjs',
62
+ // Python
63
+ '.py': 'python',
64
+ '.pyw': 'python-windows',
65
+ '.pyi': 'python-stub',
66
+ // Shell
67
+ '.sh': 'shell',
68
+ '.bash': 'bash',
69
+ '.zsh': 'zsh',
70
+ '.fish': 'fish',
71
+ '.ps1': 'powershell',
72
+ '.psm1': 'powershell-module',
73
+ '.psd1': 'powershell-data',
74
+ '.bat': 'batch',
75
+ '.cmd': 'batch',
76
+ // Ruby
77
+ '.rb': 'ruby',
78
+ '.rake': 'ruby-rake',
79
+ '.gemspec': 'ruby-gemspec',
80
+ // Go
81
+ '.go': 'go',
82
+ // Rust
83
+ '.rs': 'rust',
84
+ // C/C++
85
+ '.c': 'c',
86
+ '.cpp': 'cpp',
87
+ '.cc': 'cpp',
88
+ '.cxx': 'cpp',
89
+ '.h': 'c-header',
90
+ '.hpp': 'cpp-header',
91
+ '.hxx': 'cpp-header',
92
+ // Java/JVM
93
+ '.java': 'java',
94
+ '.kt': 'kotlin',
95
+ '.kts': 'kotlin-script',
96
+ '.scala': 'scala',
97
+ '.groovy': 'groovy',
98
+ // .NET
99
+ '.cs': 'csharp',
100
+ '.fs': 'fsharp',
101
+ '.vb': 'vb',
102
+ // PHP
103
+ '.php': 'php',
104
+ '.phtml': 'php-html',
105
+ // Perl
106
+ '.pl': 'perl',
107
+ '.pm': 'perl-module',
108
+ // Swift
109
+ '.swift': 'swift',
110
+ // Lua
111
+ '.lua': 'lua',
112
+ // R
113
+ '.r': 'r',
114
+ '.R': 'r',
115
+ // Julia
116
+ '.jl': 'julia',
117
+ // Elixir/Erlang
118
+ '.ex': 'elixir',
119
+ '.exs': 'elixir-script',
120
+ '.erl': 'erlang',
121
+ // Haskell
122
+ '.hs': 'haskell',
123
+ '.lhs': 'literate-haskell',
124
+ // Web frameworks
125
+ '.vue': 'vue',
126
+ '.svelte': 'svelte',
127
+ // SQL
128
+ '.sql': 'sql',
129
+ };
130
+ /**
131
+ * Check if a file extension requires frontmatter protection.
132
+ */
133
+ function needsFrontmatterProtection(filePath) {
134
+ const ext = filePath.toLowerCase().match(/\.[^.]+$/)?.[0] || '';
135
+ return exports.CODE_EXTENSIONS.includes(ext);
136
+ }
137
+ /**
138
+ * Get the content type for a file extension.
139
+ */
140
+ function getContentType(filePath) {
141
+ const ext = filePath.toLowerCase().match(/\.[^.]+$/)?.[0] || '';
142
+ return exports.CONTENT_TYPES[ext] || 'text';
143
+ }
144
+ //# sourceMappingURL=index.js.map