@synergenius/flowweaver-pack-weaver 0.6.0 → 0.6.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.
Files changed (41) hide show
  1. package/dist/bot/design-checker.d.ts +24 -0
  2. package/dist/bot/design-checker.d.ts.map +1 -0
  3. package/dist/bot/design-checker.js +269 -0
  4. package/dist/bot/design-checker.js.map +1 -0
  5. package/dist/bot/file-validator.d.ts +5 -2
  6. package/dist/bot/file-validator.d.ts.map +1 -1
  7. package/dist/bot/file-validator.js +22 -1
  8. package/dist/bot/file-validator.js.map +1 -1
  9. package/dist/cli-handlers.d.ts +2 -1
  10. package/dist/cli-handlers.d.ts.map +1 -1
  11. package/dist/cli-handlers.js +130 -92
  12. package/dist/cli-handlers.js.map +1 -1
  13. package/dist/docs/docs/weaver-config.md +8 -14
  14. package/dist/docs/weaver-config.md +8 -14
  15. package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
  16. package/dist/node-types/exec-validate-retry.js +23 -3
  17. package/dist/node-types/exec-validate-retry.js.map +1 -1
  18. package/dist/node-types/genesis-validate-proposal.d.ts.map +1 -1
  19. package/dist/node-types/genesis-validate-proposal.js +23 -0
  20. package/dist/node-types/genesis-validate-proposal.js.map +1 -1
  21. package/dist/templates/index.d.ts +2 -4
  22. package/dist/templates/index.d.ts.map +1 -1
  23. package/dist/templates/index.js +1 -3
  24. package/dist/templates/index.js.map +1 -1
  25. package/dist/templates/weaver-bot-template.d.ts +9 -1
  26. package/dist/templates/weaver-bot-template.d.ts.map +1 -1
  27. package/dist/templates/weaver-bot-template.js.map +1 -1
  28. package/dist/workflows/index.d.ts +0 -1
  29. package/dist/workflows/index.d.ts.map +1 -1
  30. package/dist/workflows/index.js +0 -1
  31. package/dist/workflows/index.js.map +1 -1
  32. package/flowweaver.manifest.json +10 -10
  33. package/package.json +2 -2
  34. package/dist/templates/weaver-template.d.ts +0 -11
  35. package/dist/templates/weaver-template.d.ts.map +0 -1
  36. package/dist/templates/weaver-template.js +0 -53
  37. package/dist/templates/weaver-template.js.map +0 -1
  38. package/dist/workflows/weaver.d.ts +0 -24
  39. package/dist/workflows/weaver.d.ts.map +0 -1
  40. package/dist/workflows/weaver.js +0 -28
  41. package/dist/workflows/weaver.js.map +0 -1
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Weaver Design Quality Checker
3
+ *
4
+ * Heuristic, context-dependent design checks that the bot evaluates during
5
+ * its exec-validate-retry loop and genesis proposal validation. These are
6
+ * opinionated recommendations, not core validator rules.
7
+ *
8
+ * Checks structural quality, complexity limits, and completeness.
9
+ */
10
+ import type { TWorkflowAST } from '@synergenius/flow-weaver';
11
+ export interface DesignCheck {
12
+ code: string;
13
+ severity: 'info' | 'warning' | 'error';
14
+ message: string;
15
+ nodeId?: string;
16
+ }
17
+ export interface DesignReport {
18
+ score: number;
19
+ checks: DesignCheck[];
20
+ passed: number;
21
+ failed: number;
22
+ }
23
+ export declare function checkDesignQuality(ast: TWorkflowAST): DesignReport;
24
+ //# sourceMappingURL=design-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-checker.d.ts","sourceRoot":"","sources":["../../src/bot/design-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAkC,MAAM,0BAA0B,CAAC;AAE7F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAiRD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,CA6BlE"}
@@ -0,0 +1,269 @@
1
+ /**
2
+ * Weaver Design Quality Checker
3
+ *
4
+ * Heuristic, context-dependent design checks that the bot evaluates during
5
+ * its exec-validate-retry loop and genesis proposal validation. These are
6
+ * opinionated recommendations, not core validator rules.
7
+ *
8
+ * Checks structural quality, complexity limits, and completeness.
9
+ */
10
+ // ---------------------------------------------------------------------------
11
+ // Helpers
12
+ // ---------------------------------------------------------------------------
13
+ function resolveNodeType(ast, instance) {
14
+ return ast.nodeTypes.find((nt) => nt.name === instance.nodeType || nt.functionName === instance.nodeType);
15
+ }
16
+ function getOutgoing(ast, nodeId, portName) {
17
+ return ast.connections.filter((c) => {
18
+ if (c.from.node !== nodeId)
19
+ return false;
20
+ if (portName && c.from.port !== portName)
21
+ return false;
22
+ return true;
23
+ });
24
+ }
25
+ function getIncoming(ast, nodeId) {
26
+ return ast.connections.filter((c) => c.to.node === nodeId);
27
+ }
28
+ const GENERIC_ID_PATTERN = /^(node|n|tmp|x|test|foo|bar)\d*$/i;
29
+ // ---------------------------------------------------------------------------
30
+ // Structural Quality Checks
31
+ // ---------------------------------------------------------------------------
32
+ function checkVisualAnnotations(ast) {
33
+ const checks = [];
34
+ for (const inst of ast.instances) {
35
+ const hasColor = inst.config?.color;
36
+ const hasIcon = inst.config?.icon;
37
+ if (!hasColor && !hasIcon) {
38
+ checks.push({
39
+ code: 'WEAVER_MISSING_VISUALS',
40
+ severity: 'info',
41
+ message: `Node '${inst.id}' has no @color or @icon set. Visual annotations help readability.`,
42
+ nodeId: inst.id,
43
+ });
44
+ }
45
+ }
46
+ return checks;
47
+ }
48
+ function checkDescriptiveIds(ast) {
49
+ const checks = [];
50
+ for (const inst of ast.instances) {
51
+ if (GENERIC_ID_PATTERN.test(inst.id)) {
52
+ checks.push({
53
+ code: 'WEAVER_GENERIC_NODE_ID',
54
+ severity: 'warning',
55
+ message: `Node instance ID '${inst.id}' is generic. Use a descriptive ID that reflects the node's purpose.`,
56
+ nodeId: inst.id,
57
+ });
58
+ }
59
+ }
60
+ return checks;
61
+ }
62
+ function checkFlowDirection(ast) {
63
+ const checks = [];
64
+ if (!ast.ui?.instances || ast.ui.instances.length < 2)
65
+ return checks;
66
+ // Check if x-positions generally increase along step connections
67
+ const posMap = new Map();
68
+ for (const uiNode of ast.ui.instances) {
69
+ posMap.set(uiNode.name, uiNode.x);
70
+ }
71
+ let violations = 0;
72
+ let total = 0;
73
+ for (const conn of ast.connections) {
74
+ const fromX = posMap.get(conn.from.node);
75
+ const toX = posMap.get(conn.to.node);
76
+ if (fromX !== undefined && toX !== undefined) {
77
+ total++;
78
+ if (toX < fromX - 50)
79
+ violations++; // Allow small tolerance
80
+ }
81
+ }
82
+ if (total > 0 && violations / total > 0.3) {
83
+ checks.push({
84
+ code: 'WEAVER_LAYOUT_DIRECTION',
85
+ severity: 'info',
86
+ message: `${violations} of ${total} connections flow right-to-left. Consider a left-to-right or top-to-bottom layout for readability.`,
87
+ });
88
+ }
89
+ return checks;
90
+ }
91
+ function checkDescription(ast) {
92
+ if (!ast.description) {
93
+ return [{
94
+ code: 'WEAVER_NO_DESCRIPTION',
95
+ severity: 'info',
96
+ message: 'Workflow has no JSDoc description. A short summary helps collaborators understand its purpose.',
97
+ }];
98
+ }
99
+ return [];
100
+ }
101
+ // ---------------------------------------------------------------------------
102
+ // Complexity Checks
103
+ // ---------------------------------------------------------------------------
104
+ function checkNodeCount(ast) {
105
+ const checks = [];
106
+ const count = ast.instances.length;
107
+ if (count > 50) {
108
+ checks.push({
109
+ code: 'WEAVER_TOO_MANY_NODES',
110
+ severity: 'error',
111
+ message: `Workflow has ${count} nodes (limit: 50). Extract sub-workflows to reduce complexity.`,
112
+ });
113
+ }
114
+ else if (count > 30) {
115
+ checks.push({
116
+ code: 'WEAVER_TOO_MANY_NODES',
117
+ severity: 'warning',
118
+ message: `Workflow has ${count} nodes (recommended limit: 30). Consider extracting sub-workflows.`,
119
+ });
120
+ }
121
+ return checks;
122
+ }
123
+ function checkScopeNesting(ast) {
124
+ const checks = [];
125
+ if (!ast.scopes)
126
+ return checks;
127
+ // Build parent chain: instance -> scope -> parent instance
128
+ const instanceScopeDepth = new Map();
129
+ function getDepth(instanceId, visited) {
130
+ if (visited.has(instanceId))
131
+ return 0;
132
+ visited.add(instanceId);
133
+ const cached = instanceScopeDepth.get(instanceId);
134
+ if (cached !== undefined)
135
+ return cached;
136
+ const inst = ast.instances.find((i) => i.id === instanceId);
137
+ if (!inst?.parent) {
138
+ instanceScopeDepth.set(instanceId, 0);
139
+ return 0;
140
+ }
141
+ const parentDepth = getDepth(inst.parent.id, visited);
142
+ const depth = parentDepth + 1;
143
+ instanceScopeDepth.set(instanceId, depth);
144
+ return depth;
145
+ }
146
+ for (const inst of ast.instances) {
147
+ const depth = getDepth(inst.id, new Set());
148
+ if (depth > 3) {
149
+ checks.push({
150
+ code: 'WEAVER_DEEP_NESTING',
151
+ severity: 'warning',
152
+ message: `Node '${inst.id}' is nested ${depth} scopes deep (limit: 3). Deep nesting makes workflows hard to follow.`,
153
+ nodeId: inst.id,
154
+ });
155
+ }
156
+ }
157
+ return checks;
158
+ }
159
+ function checkFanInComplexity(ast) {
160
+ const checks = [];
161
+ for (const inst of ast.instances) {
162
+ const dataIn = getIncoming(ast, inst.id).filter((c) => c.to.port !== 'execute' && c.to.port !== 'start');
163
+ if (dataIn.length > 5) {
164
+ checks.push({
165
+ code: 'WEAVER_HIGH_FANIN',
166
+ severity: 'warning',
167
+ message: `Node '${inst.id}' receives ${dataIn.length} data connections (limit: 5). This may be a bottleneck.`,
168
+ nodeId: inst.id,
169
+ });
170
+ }
171
+ }
172
+ return checks;
173
+ }
174
+ function checkFanOutComplexity(ast) {
175
+ const checks = [];
176
+ const stepPorts = new Set(['onSuccess', 'onFailure', 'execute', 'start', 'success', 'failure']);
177
+ for (const inst of ast.instances) {
178
+ const stepOut = getOutgoing(ast, inst.id).filter((c) => stepPorts.has(c.from.port));
179
+ const uniqueTargets = new Set(stepOut.map((c) => c.to.node));
180
+ if (uniqueTargets.size > 4) {
181
+ checks.push({
182
+ code: 'WEAVER_HIGH_FANOUT',
183
+ severity: 'warning',
184
+ message: `Node '${inst.id}' fans out to ${uniqueTargets.size} step targets (limit: 4). High branching increases complexity.`,
185
+ nodeId: inst.id,
186
+ });
187
+ }
188
+ }
189
+ return checks;
190
+ }
191
+ // ---------------------------------------------------------------------------
192
+ // Completeness Checks
193
+ // ---------------------------------------------------------------------------
194
+ function checkNotificationPresence(ast) {
195
+ const checks = [];
196
+ // Check if workflow has side-effect nodes (heuristic: async nodes with write/send/push-like names)
197
+ const sideEffectPattern = /write|send|push|post|create|delete|update|deploy|publish|upload|notify/i;
198
+ const hasSideEffects = ast.instances.some((inst) => {
199
+ const nt = resolveNodeType(ast, inst);
200
+ const nameHint = `${inst.id} ${nt?.name ?? ''} ${nt?.functionName ?? ''} ${nt?.label ?? ''}`;
201
+ return sideEffectPattern.test(nameHint);
202
+ });
203
+ if (!hasSideEffects)
204
+ return checks;
205
+ // Check if there's a notification-like node
206
+ const notifyPattern = /notify|notification|alert|report|summary|slack|email|webhook|message/i;
207
+ const hasNotification = ast.instances.some((inst) => {
208
+ const nt = resolveNodeType(ast, inst);
209
+ const nameHint = `${inst.id} ${nt?.name ?? ''} ${nt?.functionName ?? ''} ${nt?.label ?? ''}`;
210
+ return notifyPattern.test(nameHint);
211
+ });
212
+ if (!hasNotification) {
213
+ checks.push({
214
+ code: 'WEAVER_NO_NOTIFICATION',
215
+ severity: 'info',
216
+ message: 'Workflow has side-effect nodes but no notification or reporting node. Consider adding one for observability.',
217
+ });
218
+ }
219
+ return checks;
220
+ }
221
+ // ---------------------------------------------------------------------------
222
+ // Score calculation
223
+ // ---------------------------------------------------------------------------
224
+ const SEVERITY_WEIGHTS = {
225
+ error: 10,
226
+ warning: 3,
227
+ info: 1,
228
+ };
229
+ function calculateScore(checks) {
230
+ if (checks.length === 0)
231
+ return 100;
232
+ let penalty = 0;
233
+ for (const check of checks) {
234
+ penalty += SEVERITY_WEIGHTS[check.severity] ?? 1;
235
+ }
236
+ // Cap at 0
237
+ return Math.max(0, 100 - penalty);
238
+ }
239
+ // ---------------------------------------------------------------------------
240
+ // Public API
241
+ // ---------------------------------------------------------------------------
242
+ export function checkDesignQuality(ast) {
243
+ const allCheckers = [
244
+ checkVisualAnnotations,
245
+ checkDescriptiveIds,
246
+ checkFlowDirection,
247
+ checkDescription,
248
+ checkNodeCount,
249
+ checkScopeNesting,
250
+ checkFanInComplexity,
251
+ checkFanOutComplexity,
252
+ checkNotificationPresence,
253
+ ];
254
+ const checks = [];
255
+ for (const checker of allCheckers) {
256
+ checks.push(...checker(ast));
257
+ }
258
+ const failed = checks.length;
259
+ // Total possible checks is roughly: instances * 2 (visuals, id) + 4 (globals)
260
+ const totalPossible = ast.instances.length * 2 + 4;
261
+ const passed = Math.max(0, totalPossible - failed);
262
+ return {
263
+ score: calculateScore(checks),
264
+ checks,
265
+ passed,
266
+ failed,
267
+ };
268
+ }
269
+ //# sourceMappingURL=design-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-checker.js","sourceRoot":"","sources":["../../src/bot/design-checker.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
- export declare function validateFiles(files: string[], projectDir: string): Array<{
1
+ import { type DesignReport } from './design-checker.js';
2
+ export interface FileValidationResult {
2
3
  file: string;
3
4
  valid: boolean;
4
5
  errors: string[];
5
6
  warnings: string[];
6
- }>;
7
+ designReport?: DesignReport;
8
+ }
9
+ export declare function validateFiles(files: string[], projectDir: string): FileValidationResult[];
7
10
  //# sourceMappingURL=file-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-validator.d.ts","sourceRoot":"","sources":["../../src/bot/file-validator.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,GACjB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiB/E"}
1
+ {"version":3,"file":"file-validator.d.ts","sourceRoot":"","sources":["../../src/bot/file-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,GACjB,oBAAoB,EAAE,CAwBxB"}
@@ -1,4 +1,5 @@
1
1
  import { execFileSync } from 'node:child_process';
2
+ import { checkDesignQuality } from './design-checker.js';
2
3
  export function validateFiles(files, projectDir) {
3
4
  const results = [];
4
5
  for (const file of files) {
@@ -8,7 +9,14 @@ export function validateFiles(files, projectDir) {
8
9
  execFileSync('flow-weaver', ['validate', file], {
9
10
  cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000,
10
11
  });
11
- results.push({ file, valid: true, errors: [], warnings: [] });
12
+ // Run design quality check on the AST
13
+ const designReport = runDesignCheck(file, projectDir);
14
+ const designWarnings = designReport
15
+ ? designReport.checks
16
+ .filter((c) => c.severity === 'warning' || c.severity === 'error')
17
+ .map((c) => `[${c.code}] ${c.message}`)
18
+ : [];
19
+ results.push({ file, valid: true, errors: [], warnings: designWarnings, designReport: designReport ?? undefined });
12
20
  }
13
21
  catch (err) {
14
22
  const msg = err instanceof Error ? err.stderr ?? err.message : String(err);
@@ -17,4 +25,17 @@ export function validateFiles(files, projectDir) {
17
25
  }
18
26
  return results;
19
27
  }
28
+ function runDesignCheck(file, projectDir) {
29
+ try {
30
+ const astJson = execFileSync('flow-weaver', ['parse', file, '--format', 'json'], {
31
+ cwd: projectDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 30_000,
32
+ });
33
+ const ast = JSON.parse(astJson);
34
+ return checkDesignQuality(ast);
35
+ }
36
+ catch {
37
+ // If parse fails, skip design checks (validation already caught the error)
38
+ return null;
39
+ }
40
+ }
20
41
  //# sourceMappingURL=file-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-validator.js","sourceRoot":"","sources":["../../src/bot/file-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,aAAa,CAC3B,KAAe,EACf,UAAkB;IAElB,MAAM,OAAO,GAAkF,EAAE,CAAC;IAElG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC;YACH,YAAY,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;gBAC9C,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;aACrF,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAE,GAA2B,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"file-validator.js","sourceRoot":"","sources":["../../src/bot/file-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAqB,MAAM,qBAAqB,CAAC;AAU5E,MAAM,UAAU,aAAa,CAC3B,KAAe,EACf,UAAkB;IAElB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC;YACH,YAAY,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;gBAC9C,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;aACrF,CAAC,CAAC;YACH,sCAAsC;YACtC,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,YAAY;gBACjC,CAAC,CAAC,YAAY,CAAC,MAAM;qBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;qBACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3C,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC,CAAC;QACrH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAE,GAA2B,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,UAAkB;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;YAC/E,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;SACrF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -33,6 +33,7 @@ export interface ParsedArgs {
33
33
  autoApprove: boolean;
34
34
  genesisInit: boolean;
35
35
  genesisWatch: boolean;
36
+ ejectWorkflow?: string;
36
37
  }
37
38
  export declare function parseArgs(argv: string[]): ParsedArgs;
38
39
  export declare function formatDuration(ms: number): string;
@@ -43,7 +44,7 @@ export declare function handleCron(opts: ParsedArgs): Promise<void>;
43
44
  export declare function handlePipeline(opts: ParsedArgs): Promise<void>;
44
45
  export declare function handleDashboard(opts: ParsedArgs): Promise<void>;
45
46
  export declare function handleProviders(): Promise<void>;
46
- export declare function handleEject(): Promise<void>;
47
+ export declare function handleEject(opts: ParsedArgs): Promise<void>;
47
48
  export declare function handleRun(opts: ParsedArgs): Promise<void>;
48
49
  export declare function handleBot(opts: ParsedArgs): Promise<void>;
49
50
  export declare function handleSession(opts: ParsedArgs): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"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"}