@siglo/cli 0.0.0-stage → 1.0.1
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/ECOSYSTEM.md +85 -0
- package/LICENSE +21 -0
- package/README.md +480 -2
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +304 -0
- package/dist/bin.js.map +1 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +319 -0
- package/dist/index.js.map +1 -0
- package/dist/step-templates.d.ts +24 -0
- package/dist/step-templates.d.ts.map +1 -0
- package/dist/step-templates.js +83 -0
- package/dist/step-templates.js.map +1 -0
- package/package.json +56 -4
package/dist/bin.js
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const index_1 = require("./index");
|
|
40
|
+
function printHelp() {
|
|
41
|
+
console.log(`
|
|
42
|
+
siglo CLI v1.0.1
|
|
43
|
+
|
|
44
|
+
USAGE:
|
|
45
|
+
siglo <command> [arguments] [options]
|
|
46
|
+
|
|
47
|
+
COMMANDS:
|
|
48
|
+
init [dir] Scaffold a starter siglo project
|
|
49
|
+
generate workflow <name> Scaffold a new typed workflow with test
|
|
50
|
+
generate step <name> Scaffold a new typed step with test
|
|
51
|
+
visualize <workflow-file> Render workflow graph as Mermaid or text diagram
|
|
52
|
+
export <workflow-file> Export workflow graph as mermaid, json, or dot
|
|
53
|
+
validate <workflow-file> Statically validate workflow definitions for cycles
|
|
54
|
+
inspect <workflow-file> Display workflow AST metrics and step summary
|
|
55
|
+
checkpoint <file> Inspect a serialized checkpoint state JSON
|
|
56
|
+
replay <fixture> [workflow] Replay execution against a recorded test fixture
|
|
57
|
+
monitor [workflow-file] Launch live workflow monitoring dashboard
|
|
58
|
+
reconcile [workflow-file] Reconcile and compensate abandoned/stuck workflows
|
|
59
|
+
|
|
60
|
+
OPTIONS:
|
|
61
|
+
--type=generic|http|crypto|notification|ai Step template (default: generic)
|
|
62
|
+
--url=<url> --provider=<provider> --model=<id> Template configuration
|
|
63
|
+
--channel=<channel> --interactive=true|false Notification configuration
|
|
64
|
+
--format=mermaid|text|dot|json Output format (default: mermaid)
|
|
65
|
+
--direction=TD|LR|TB Diagram flow direction (default: TD)
|
|
66
|
+
--out=<file> Write output directly to file instead of stdout
|
|
67
|
+
--redact=field1,field2 Comma-separated list of fields/nodes to redact
|
|
68
|
+
--help, -h Show this help documentation
|
|
69
|
+
--version, -v Print version
|
|
70
|
+
`);
|
|
71
|
+
}
|
|
72
|
+
async function loadWorkflowFromFile(filePath) {
|
|
73
|
+
const resolvedPath = path.resolve(process.cwd(), filePath);
|
|
74
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
75
|
+
throw new Error(`Workflow file not found: ${resolvedPath}`);
|
|
76
|
+
}
|
|
77
|
+
// Dynamic import of target workflow file
|
|
78
|
+
const mod = await Promise.resolve(`${resolvedPath}`).then(s => __importStar(require(s)));
|
|
79
|
+
const flowCandidate = mod.default || mod.workflow || mod.pipeline || Object.values(mod).find((v) => v && (v.isFlow || typeof v.run === 'function'));
|
|
80
|
+
if (!flowCandidate) {
|
|
81
|
+
throw new Error(`No exported Flow found in ${resolvedPath}. Export a flow as default or named export.`);
|
|
82
|
+
}
|
|
83
|
+
if (typeof flowCandidate === 'function' && !flowCandidate.isFlow) {
|
|
84
|
+
return flowCandidate();
|
|
85
|
+
}
|
|
86
|
+
return flowCandidate;
|
|
87
|
+
}
|
|
88
|
+
function getOption(args, prefix) {
|
|
89
|
+
const arg = args.find(a => a.startsWith(prefix));
|
|
90
|
+
return arg ? arg.slice(prefix.length) : undefined;
|
|
91
|
+
}
|
|
92
|
+
function writeOutput(content, outPath) {
|
|
93
|
+
if (outPath) {
|
|
94
|
+
const resolved = path.resolve(process.cwd(), outPath);
|
|
95
|
+
fs.mkdirSync(path.dirname(resolved), { recursive: true });
|
|
96
|
+
fs.writeFileSync(resolved, content, 'utf-8');
|
|
97
|
+
console.log(`✔ Output written to ${resolved}`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
console.log(content);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async function main() {
|
|
104
|
+
const args = process.argv.slice(2);
|
|
105
|
+
if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
|
|
106
|
+
printHelp();
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (args.includes('--version') || args.includes('-v')) {
|
|
110
|
+
console.log('1.0.1');
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const command = args[0];
|
|
114
|
+
const target = args[1];
|
|
115
|
+
const outArg = getOption(args, '--out=');
|
|
116
|
+
try {
|
|
117
|
+
switch (command) {
|
|
118
|
+
case 'init': {
|
|
119
|
+
const targetDir = target || process.cwd();
|
|
120
|
+
const res = (0, index_1.initProject)(targetDir);
|
|
121
|
+
console.log(`\n✔ Initialized siglo workflow project in ${targetDir}`);
|
|
122
|
+
for (const f of res.filesCreated) {
|
|
123
|
+
console.log(` + ${f}`);
|
|
124
|
+
}
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
case 'generate': {
|
|
128
|
+
const subType = target;
|
|
129
|
+
const name = args[2];
|
|
130
|
+
if (!subType || !name) {
|
|
131
|
+
console.error('Error: specify generator type and name (e.g. siglo generate workflow order)');
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
if (subType === 'workflow') {
|
|
135
|
+
const res = (0, index_1.generateWorkflow)(name);
|
|
136
|
+
console.log(`✔ Generated workflow in ${res.filePath}`);
|
|
137
|
+
console.log(`✔ Generated workflow test in ${res.testPath}`);
|
|
138
|
+
}
|
|
139
|
+
else if (subType === 'step') {
|
|
140
|
+
const options = {};
|
|
141
|
+
for (const arg of args.slice(3)) {
|
|
142
|
+
const match = /^--(type|url|provider|model|channel|interactive)=(.*)$/.exec(arg);
|
|
143
|
+
if (!match || match[1] in options)
|
|
144
|
+
throw new Error(`Invalid or duplicate generator option: ${arg}`);
|
|
145
|
+
options[match[1]] = match[1] === 'interactive'
|
|
146
|
+
? match[2] === 'true' ? true : match[2] === 'false' ? false : match[2]
|
|
147
|
+
: match[2];
|
|
148
|
+
}
|
|
149
|
+
const res = (0, index_1.generateStep)(name, process.cwd(), options);
|
|
150
|
+
console.log(`✔ Generated step in ${res.filePath}`);
|
|
151
|
+
console.log(`✔ Generated step test in ${res.testPath}`);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.error(`Unknown generator type: '${subType}'. Use 'workflow' or 'step'.`);
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
case 'visualize': {
|
|
160
|
+
if (!target) {
|
|
161
|
+
console.error('Error: specify workflow file path (e.g. siglo visualize src/workflow.ts)');
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
const wf = await loadWorkflowFromFile(target);
|
|
165
|
+
const format = getOption(args, '--format=') || 'mermaid';
|
|
166
|
+
const vis = (0, index_1.visualizeWorkflow)(wf);
|
|
167
|
+
const content = format === 'text' ? vis.text : vis.mermaid;
|
|
168
|
+
writeOutput(content, outArg);
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
case 'export': {
|
|
172
|
+
if (!target) {
|
|
173
|
+
console.error('Error: specify workflow file path (e.g. siglo export src/workflow.ts)');
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
const wf = await loadWorkflowFromFile(target);
|
|
177
|
+
const format = (getOption(args, '--format=') || 'mermaid');
|
|
178
|
+
const direction = (getOption(args, '--direction=') || 'TD');
|
|
179
|
+
const exported = (0, index_1.exportWorkflow)(wf, { format, direction });
|
|
180
|
+
writeOutput(exported, outArg);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case 'validate': {
|
|
184
|
+
if (!target) {
|
|
185
|
+
console.error('Error: specify workflow file path (e.g. siglo validate src/workflow.ts)');
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
const wf = await loadWorkflowFromFile(target);
|
|
189
|
+
const val = (0, index_1.validateWorkflow)(wf);
|
|
190
|
+
if (val.valid) {
|
|
191
|
+
console.log('✔ Workflow graph is valid (acyclic, reachable)');
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
console.error('✖ Workflow validation failed:');
|
|
195
|
+
for (const err of val.errors) {
|
|
196
|
+
console.error(` - ${err}`);
|
|
197
|
+
}
|
|
198
|
+
process.exit(1);
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
case 'inspect': {
|
|
203
|
+
if (!target) {
|
|
204
|
+
console.error('Error: specify workflow file path (e.g. siglo inspect src/workflow.ts)');
|
|
205
|
+
process.exit(1);
|
|
206
|
+
}
|
|
207
|
+
const wf = await loadWorkflowFromFile(target);
|
|
208
|
+
const redactStr = getOption(args, '--redact=');
|
|
209
|
+
const redactList = redactStr ? redactStr.split(',') : [];
|
|
210
|
+
const report = (0, index_1.inspectWorkflow)(wf, { redact: redactList });
|
|
211
|
+
writeOutput(JSON.stringify(report, null, 2), outArg);
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
case 'checkpoint': {
|
|
215
|
+
if (!target) {
|
|
216
|
+
console.error('Error: specify checkpoint JSON file (e.g. siglo checkpoint stack-state.json)');
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
const cpPath = path.resolve(process.cwd(), target);
|
|
220
|
+
const content = fs.readFileSync(cpPath, 'utf-8');
|
|
221
|
+
const redactStr = getOption(args, '--redact=');
|
|
222
|
+
const redactList = redactStr ? redactStr.split(',') : [];
|
|
223
|
+
const inspected = (0, index_1.inspectCheckpoint)(content, { redact: redactList });
|
|
224
|
+
writeOutput(JSON.stringify(inspected, null, 2), outArg);
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
case 'replay': {
|
|
228
|
+
if (!target) {
|
|
229
|
+
console.error('Error: specify fixture file (e.g. siglo replay fixture.json [workflow.ts])');
|
|
230
|
+
process.exit(1);
|
|
231
|
+
}
|
|
232
|
+
const wfPath = args[2] || 'src/workflow.ts';
|
|
233
|
+
const wf = await loadWorkflowFromFile(wfPath);
|
|
234
|
+
const fixturePath = path.resolve(process.cwd(), target);
|
|
235
|
+
const result = await (0, index_1.replayFixture)(wf, fixturePath);
|
|
236
|
+
if (result.success) {
|
|
237
|
+
console.log(`✔ Replay passed in ${result.durationMs}ms`);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
console.error('✖ Replay failed with discrepancies:', JSON.stringify(result.diff, null, 2));
|
|
241
|
+
process.exit(1);
|
|
242
|
+
}
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
case 'monitor': {
|
|
246
|
+
const portStr = getOption(args, '--port=');
|
|
247
|
+
const port = portStr ? parseInt(portStr, 10) : 4000;
|
|
248
|
+
const host = getOption(args, '--host=') || '0.0.0.0';
|
|
249
|
+
const ns = getOption(args, '--namespace=');
|
|
250
|
+
let wf;
|
|
251
|
+
if (target && !target.startsWith('--')) {
|
|
252
|
+
try {
|
|
253
|
+
wf = await loadWorkflowFromFile(target);
|
|
254
|
+
}
|
|
255
|
+
catch (e) {
|
|
256
|
+
console.warn(`Warning: Could not load workflow ${target}: ${e.message}`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
const monitor = await (0, index_1.startMonitor)({ port, host, namespace: ns, flow: wf });
|
|
260
|
+
console.log(`🚀 Siglo Live Monitor running at http://${host === "0.0.0.0" ? "localhost" : host}:${monitor.port}`);
|
|
261
|
+
console.log(` - Dashboard: http://localhost:${monitor.port}/`);
|
|
262
|
+
console.log(` - SSE Stream: http://localhost:${monitor.port}/events`);
|
|
263
|
+
console.log(` - WebSocket: ws://localhost:${monitor.port}/ws`);
|
|
264
|
+
console.log(` - Prometheus Metrics: http://localhost:${monitor.port}/metrics`);
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
case 'reconcile': {
|
|
268
|
+
const staleStr = getOption(args, '--stale-threshold=') || '10m';
|
|
269
|
+
const actionArg = (getOption(args, '--action=') || 'compensate');
|
|
270
|
+
const modeArg = (getOption(args, '--mode=') || 'best-effort');
|
|
271
|
+
const ns = getOption(args, '--namespace=');
|
|
272
|
+
let wf;
|
|
273
|
+
if (target && !target.startsWith('--')) {
|
|
274
|
+
try {
|
|
275
|
+
wf = await loadWorkflowFromFile(target);
|
|
276
|
+
}
|
|
277
|
+
catch (e) {
|
|
278
|
+
console.warn(`Warning: Could not load workflow ${target}: ${e.message}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
const report = await (0, index_1.reconcileCommand)({
|
|
282
|
+
staleThreshold: staleStr,
|
|
283
|
+
action: actionArg,
|
|
284
|
+
mode: modeArg,
|
|
285
|
+
namespace: ns,
|
|
286
|
+
flow: wf
|
|
287
|
+
});
|
|
288
|
+
writeOutput(JSON.stringify(report, null, 2), outArg);
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
default: {
|
|
292
|
+
console.error(`Unknown command: ${command}`);
|
|
293
|
+
printHelp();
|
|
294
|
+
process.exit(1);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
catch (err) {
|
|
299
|
+
console.error(`Error: ${err?.message || err}`);
|
|
300
|
+
process.exit(1);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
main();
|
|
304
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2CAA6B;AAC7B,uCAAyB;AACzB,mCAaiB;AAEjB,SAAS,SAAS;IACd,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bf,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,yCAAyC;IACzC,MAAM,GAAG,GAAG,yBAAa,YAAY,uCAAC,CAAC;IACvC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC;IACzJ,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,6CAA6C,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,OAAO,aAAa,KAAK,UAAU,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC/D,OAAO,aAAa,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,IAAc,EAAE,MAAc;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,OAAgB;IAClD,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACtD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,SAAS,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC;QACD,QAAQ,OAAO,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;gBACtE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,MAAM,CAAC;gBACvB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;oBAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAA4B,EAAE,CAAC;oBAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAG,wDAAwD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACjF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO;4BAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;wBACpG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa;4BAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACtE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC;oBACD,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAA8B,CAAC,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,8BAA8B,CAAC,CAAC;oBACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;oBAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC;gBACzD,MAAM,GAAG,GAAG,IAAA,yBAAiB,EAAC,EAAE,CAAC,CAAC;gBAElC,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC3D,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7B,MAAM;YACV,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;oBACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,SAAS,CAA+B,CAAC;gBACzF,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,IAAI,CAAuB,CAAC;gBAClF,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC3D,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC9B,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;oBACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;oBAC/C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBAChC,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;oBACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC3D,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM;YACV,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;oBAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBACrE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM;YACV,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;oBAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC;gBAC5C,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAa,EAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC;gBACrD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAC3C,IAAI,EAAO,CAAC;gBACZ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACD,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7E,CAAC;gBACL,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAY,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClH,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,qCAAqC,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,6CAA6C,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC;gBACjF,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,KAAK,CAAC;gBAChE,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,YAAY,CAAsC,CAAC;gBACtG,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,aAAa,CAA6B,CAAC;gBAC1F,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAC3C,IAAI,EAAO,CAAC;gBACZ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACD,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7E,CAAC;gBACL,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAgB,EAAC;oBAClC,cAAc,EAAE,QAAQ;oBACxB,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,EAAE;oBACb,IAAI,EAAE,EAAE;iBACX,CAAC,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM;YACV,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC7C,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { GenerateStepOptions } from './step-templates';
|
|
2
|
+
export type { GenerateStepOptions } from './step-templates';
|
|
3
|
+
import { Flow, GraphValidationResult, GraphInspectionResult } from '@siglo/core';
|
|
4
|
+
export interface WorkflowVisualizationResult {
|
|
5
|
+
mermaid: string;
|
|
6
|
+
text: string;
|
|
7
|
+
nodeCount: number;
|
|
8
|
+
hasCycles: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ReplayFixture {
|
|
11
|
+
name?: string;
|
|
12
|
+
version?: string;
|
|
13
|
+
initialParam: Record<string, any>;
|
|
14
|
+
expectedOutputs?: Record<string, any>;
|
|
15
|
+
checkpoints?: any[];
|
|
16
|
+
}
|
|
17
|
+
export interface ReplayResult {
|
|
18
|
+
success: boolean;
|
|
19
|
+
durationMs: number;
|
|
20
|
+
finalContext: Record<string, any>;
|
|
21
|
+
diff?: Record<string, {
|
|
22
|
+
expected: any;
|
|
23
|
+
actual: any;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Renders a GraphInspectionResult as a Mermaid flowchart diagram.
|
|
28
|
+
*/
|
|
29
|
+
export declare function toMermaid(inspection: GraphInspectionResult): string;
|
|
30
|
+
/**
|
|
31
|
+
* Renders a GraphInspectionResult as an indented ASCII text tree diagram.
|
|
32
|
+
*/
|
|
33
|
+
export declare function toTextGraph(inspection: GraphInspectionResult): string;
|
|
34
|
+
/**
|
|
35
|
+
* Visualizes a siglo workflow graph as Mermaid and text flowchart representations.
|
|
36
|
+
*/
|
|
37
|
+
export declare function visualizeWorkflow(workflow: Flow): WorkflowVisualizationResult;
|
|
38
|
+
/**
|
|
39
|
+
* Statically validates a workflow graph definition.
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateWorkflow(workflow: Flow): GraphValidationResult;
|
|
42
|
+
/**
|
|
43
|
+
* Returns a diagnostic inspection report for a workflow with optional field redaction.
|
|
44
|
+
*/
|
|
45
|
+
export declare function inspectWorkflow(workflow: Flow, options?: {
|
|
46
|
+
redact?: string[];
|
|
47
|
+
}): GraphInspectionResult & {
|
|
48
|
+
redactedFields?: string[];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Replays a workflow execution against a recorded test fixture.
|
|
52
|
+
*/
|
|
53
|
+
export declare function replayFixture(workflow: Flow, fixture: ReplayFixture | string): Promise<ReplayResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Inspects a serialized checkpoint with optional field redaction.
|
|
56
|
+
*/
|
|
57
|
+
export declare function inspectCheckpoint(checkpoint: any | string, options?: {
|
|
58
|
+
redact?: string[];
|
|
59
|
+
}): Record<string, any>;
|
|
60
|
+
/**
|
|
61
|
+
* Scaffolds a new starter siglo project directory.
|
|
62
|
+
*/
|
|
63
|
+
export declare function initProject(targetDir?: string): {
|
|
64
|
+
filesCreated: string[];
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Scaffolds a new typed workflow file and test.
|
|
68
|
+
*/
|
|
69
|
+
export declare function generateWorkflow(name: string, targetDir?: string): {
|
|
70
|
+
filePath: string;
|
|
71
|
+
testPath: string;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Scaffolds a new typed step file and test.
|
|
75
|
+
*/
|
|
76
|
+
export declare function generateStep(name: string, targetDir?: string, options?: GenerateStepOptions): {
|
|
77
|
+
filePath: string;
|
|
78
|
+
testPath: string;
|
|
79
|
+
};
|
|
80
|
+
export interface ExportWorkflowOptions {
|
|
81
|
+
format?: "mermaid" | "dot" | "json";
|
|
82
|
+
direction?: "TD" | "LR" | "TB";
|
|
83
|
+
includeBadges?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Exports a workflow graph to Mermaid, Graphviz DOT, or JSON format.
|
|
87
|
+
*/
|
|
88
|
+
export declare function exportWorkflow(workflow: any, options?: ExportWorkflowOptions): string;
|
|
89
|
+
export interface MonitorOptions {
|
|
90
|
+
port?: number;
|
|
91
|
+
host?: string;
|
|
92
|
+
open?: boolean;
|
|
93
|
+
namespace?: string;
|
|
94
|
+
flow?: any;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Starts the live workflow monitoring dev server and web dashboard.
|
|
98
|
+
*/
|
|
99
|
+
export declare function startMonitor(options?: MonitorOptions): Promise<any>;
|
|
100
|
+
export interface ReconcileCommandOptions {
|
|
101
|
+
staleThreshold?: string;
|
|
102
|
+
action?: "compensate" | "fail" | "inspect";
|
|
103
|
+
mode?: "strict" | "best-effort";
|
|
104
|
+
namespace?: string;
|
|
105
|
+
flow?: any;
|
|
106
|
+
stacks?: any[];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Reconciles abandoned workflow stacks stuck in RUNNING state past a stale threshold.
|
|
110
|
+
*/
|
|
111
|
+
export declare function reconcileCommand(options?: ReconcileCommandOptions): Promise<any>;
|
|
112
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|