@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.
- package/README.md +162 -0
- package/bin/prompd.js +23 -0
- package/dist/commands/cache.d.ts +3 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +199 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/compile.d.ts +9 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +104 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/config.d.ts +7 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +212 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/create.d.ts +3 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +183 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/deps.d.ts +3 -0
- package/dist/commands/deps.d.ts.map +1 -0
- package/dist/commands/deps.js +192 -0
- package/dist/commands/deps.js.map +1 -0
- package/dist/commands/explain.d.ts +3 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +227 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/git.d.ts +3 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +306 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +177 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +126 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +326 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/namespace.d.ts +3 -0
- package/dist/commands/namespace.d.ts.map +1 -0
- package/dist/commands/namespace.js +113 -0
- package/dist/commands/namespace.js.map +1 -0
- package/dist/commands/package.d.ts +23 -0
- package/dist/commands/package.d.ts.map +1 -0
- package/dist/commands/package.js +746 -0
- package/dist/commands/package.js.map +1 -0
- package/dist/commands/provider.d.ts +3 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +285 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/registry.d.ts +9 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +361 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +157 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/show.d.ts +3 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +90 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/uninstall.d.ts +3 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +95 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/validate.d.ts +3 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +57 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +166 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +388 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +164 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +388 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/compiler/file-system.d.ts +178 -0
- package/dist/lib/compiler/file-system.d.ts.map +1 -0
- package/dist/lib/compiler/file-system.js +440 -0
- package/dist/lib/compiler/file-system.js.map +1 -0
- package/dist/lib/compiler/formatters/anthropic.d.ts +21 -0
- package/dist/lib/compiler/formatters/anthropic.d.ts.map +1 -0
- package/dist/lib/compiler/formatters/anthropic.js +95 -0
- package/dist/lib/compiler/formatters/anthropic.js.map +1 -0
- package/dist/lib/compiler/formatters/markdown.d.ts +17 -0
- package/dist/lib/compiler/formatters/markdown.d.ts.map +1 -0
- package/dist/lib/compiler/formatters/markdown.js +114 -0
- package/dist/lib/compiler/formatters/markdown.js.map +1 -0
- package/dist/lib/compiler/formatters/openai.d.ts +21 -0
- package/dist/lib/compiler/formatters/openai.d.ts.map +1 -0
- package/dist/lib/compiler/formatters/openai.js +98 -0
- package/dist/lib/compiler/formatters/openai.js.map +1 -0
- package/dist/lib/compiler/index.d.ts +56 -0
- package/dist/lib/compiler/index.d.ts.map +1 -0
- package/dist/lib/compiler/index.js +165 -0
- package/dist/lib/compiler/index.js.map +1 -0
- package/dist/lib/compiler/language-map.d.ts +31 -0
- package/dist/lib/compiler/language-map.d.ts.map +1 -0
- package/dist/lib/compiler/language-map.js +156 -0
- package/dist/lib/compiler/language-map.js.map +1 -0
- package/dist/lib/compiler/package-resolver.d.ts +68 -0
- package/dist/lib/compiler/package-resolver.d.ts.map +1 -0
- package/dist/lib/compiler/package-resolver.js +254 -0
- package/dist/lib/compiler/package-resolver.js.map +1 -0
- package/dist/lib/compiler/pipeline.d.ts +53 -0
- package/dist/lib/compiler/pipeline.d.ts.map +1 -0
- package/dist/lib/compiler/pipeline.js +209 -0
- package/dist/lib/compiler/pipeline.js.map +1 -0
- package/dist/lib/compiler/prompd-loader.d.ts +108 -0
- package/dist/lib/compiler/prompd-loader.d.ts.map +1 -0
- package/dist/lib/compiler/prompd-loader.js +270 -0
- package/dist/lib/compiler/prompd-loader.js.map +1 -0
- package/dist/lib/compiler/section-override.d.ts +40 -0
- package/dist/lib/compiler/section-override.d.ts.map +1 -0
- package/dist/lib/compiler/section-override.js +296 -0
- package/dist/lib/compiler/section-override.js.map +1 -0
- package/dist/lib/compiler/stages/assets.d.ts +71 -0
- package/dist/lib/compiler/stages/assets.d.ts.map +1 -0
- package/dist/lib/compiler/stages/assets.js +456 -0
- package/dist/lib/compiler/stages/assets.js.map +1 -0
- package/dist/lib/compiler/stages/codegen.d.ts +17 -0
- package/dist/lib/compiler/stages/codegen.d.ts.map +1 -0
- package/dist/lib/compiler/stages/codegen.js +64 -0
- package/dist/lib/compiler/stages/codegen.js.map +1 -0
- package/dist/lib/compiler/stages/dependency.d.ts +38 -0
- package/dist/lib/compiler/stages/dependency.d.ts.map +1 -0
- package/dist/lib/compiler/stages/dependency.js +307 -0
- package/dist/lib/compiler/stages/dependency.js.map +1 -0
- package/dist/lib/compiler/stages/lexical.d.ts +19 -0
- package/dist/lib/compiler/stages/lexical.d.ts.map +1 -0
- package/dist/lib/compiler/stages/lexical.js +92 -0
- package/dist/lib/compiler/stages/lexical.js.map +1 -0
- package/dist/lib/compiler/stages/semantic.d.ts +20 -0
- package/dist/lib/compiler/stages/semantic.d.ts.map +1 -0
- package/dist/lib/compiler/stages/semantic.js +166 -0
- package/dist/lib/compiler/stages/semantic.js.map +1 -0
- package/dist/lib/compiler/stages/template.d.ts +94 -0
- package/dist/lib/compiler/stages/template.d.ts.map +1 -0
- package/dist/lib/compiler/stages/template.js +1044 -0
- package/dist/lib/compiler/stages/template.js.map +1 -0
- package/dist/lib/compiler/types.d.ts +200 -0
- package/dist/lib/compiler/types.d.ts.map +1 -0
- package/dist/lib/compiler/types.js +137 -0
- package/dist/lib/compiler/types.js.map +1 -0
- package/dist/lib/config.d.ts +29 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +375 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/errors.d.ts +19 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +47 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/executor.d.ts +18 -0
- package/dist/lib/executor.d.ts.map +1 -0
- package/dist/lib/executor.js +372 -0
- package/dist/lib/executor.js.map +1 -0
- package/dist/lib/git.d.ts +74 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +254 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/index.d.ts +43 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +108 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/mcp.d.ts +42 -0
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/lib/mcp.js +477 -0
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/model-updater.d.ts +51 -0
- package/dist/lib/model-updater.d.ts.map +1 -0
- package/dist/lib/model-updater.js +275 -0
- package/dist/lib/model-updater.js.map +1 -0
- package/dist/lib/parser.d.ts +9 -0
- package/dist/lib/parser.d.ts.map +1 -0
- package/dist/lib/parser.js +197 -0
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/registry.d.ts +183 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +786 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/rpc-server.d.ts +78 -0
- package/dist/lib/rpc-server.d.ts.map +1 -0
- package/dist/lib/rpc-server.js +404 -0
- package/dist/lib/rpc-server.js.map +1 -0
- package/dist/lib/security.d.ts +120 -0
- package/dist/lib/security.d.ts.map +1 -0
- package/dist/lib/security.js +478 -0
- package/dist/lib/security.js.map +1 -0
- package/dist/lib/validation.d.ts +106 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +398 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/lib/version.d.ts +29 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +202 -0
- package/dist/lib/version.js.map +1 -0
- package/dist/lib/workflow-engine.d.ts +161 -0
- package/dist/lib/workflow-engine.d.ts.map +1 -0
- package/dist/lib/workflow-engine.js +422 -0
- package/dist/lib/workflow-engine.js.map +1 -0
- package/dist/lib/workflow.d.ts +102 -0
- package/dist/lib/workflow.d.ts.map +1 -0
- package/dist/lib/workflow.js +228 -0
- package/dist/lib/workflow.js.map +1 -0
- package/dist/server.d.ts +8 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +134 -0
- package/dist/server.js.map +1 -0
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +144 -0
- package/dist/types/index.js.map +1 -0
- 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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"}
|
package/dist/server.d.ts
ADDED
|
@@ -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
|