@marktoflow/cli 2.0.0-alpha.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.
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Dry-run mode for workflows
3
+ *
4
+ * Simulates workflow execution without actually calling external services.
5
+ * Useful for testing workflow logic, validating steps, and debugging.
6
+ */
7
+ import chalk from 'chalk';
8
+ import { WorkflowStatus } from '@marktoflow/core';
9
+ // ============================================================================
10
+ // Mock Response Generator
11
+ // ============================================================================
12
+ /**
13
+ * Generate mock responses based on action type
14
+ */
15
+ export function generateMockResponse(action, inputs) {
16
+ const [service, ...methodParts] = action.split('.');
17
+ const method = methodParts.join('.');
18
+ // Service-specific mock responses
19
+ switch (service) {
20
+ case 'slack':
21
+ return generateSlackMock(method, inputs);
22
+ case 'github':
23
+ return generateGitHubMock(method, inputs);
24
+ case 'jira':
25
+ return generateJiraMock(method, inputs);
26
+ case 'gmail':
27
+ return generateGmailMock(method, inputs);
28
+ case 'linear':
29
+ return generateLinearMock(method, inputs);
30
+ case 'notion':
31
+ return generateNotionMock(method, inputs);
32
+ case 'claude':
33
+ return generateClaudeMock(method, inputs);
34
+ case 'ollama':
35
+ return generateOllamaMock(method, inputs);
36
+ default:
37
+ return { success: true, message: `Mock response for ${action}` };
38
+ }
39
+ }
40
+ function generateSlackMock(method, inputs) {
41
+ switch (method) {
42
+ case 'chat.postMessage':
43
+ return {
44
+ ok: true,
45
+ ts: '1234567890.123456',
46
+ channel: inputs.channel || 'C1234567890',
47
+ message: {
48
+ text: inputs.text || '',
49
+ ts: '1234567890.123456',
50
+ },
51
+ };
52
+ case 'conversations.history':
53
+ return {
54
+ ok: true,
55
+ messages: [
56
+ { type: 'message', user: 'U123', text: 'Mock message 1', ts: '1234567890.001' },
57
+ { type: 'message', user: 'U456', text: 'Mock message 2', ts: '1234567890.002' },
58
+ ],
59
+ };
60
+ case 'users.info':
61
+ return {
62
+ ok: true,
63
+ user: {
64
+ id: 'U123456',
65
+ name: 'mockuser',
66
+ real_name: 'Mock User',
67
+ email: 'mock@example.com',
68
+ },
69
+ };
70
+ default:
71
+ return { ok: true, channel: inputs.channel };
72
+ }
73
+ }
74
+ function generateGitHubMock(method, inputs) {
75
+ switch (method) {
76
+ case 'pulls.get':
77
+ return {
78
+ number: inputs.pull_number || 42,
79
+ title: 'Mock Pull Request',
80
+ html_url: `https://github.com/${inputs.owner}/${inputs.repo}/pull/${inputs.pull_number || 42}`,
81
+ state: 'open',
82
+ user: { login: 'mockuser' },
83
+ additions: 50,
84
+ deletions: 10,
85
+ };
86
+ case 'pulls.listReviews':
87
+ return [
88
+ { id: 1, user: { login: 'reviewer1' }, state: 'APPROVED' },
89
+ { id: 2, user: { login: 'reviewer2' }, state: 'CHANGES_REQUESTED' },
90
+ ];
91
+ case 'issues.create':
92
+ return {
93
+ number: 123,
94
+ html_url: `https://github.com/${inputs.owner}/${inputs.repo}/issues/123`,
95
+ title: inputs.title || 'Mock Issue',
96
+ state: 'open',
97
+ };
98
+ default:
99
+ return { id: 123, html_url: 'https://github.com/mock' };
100
+ }
101
+ }
102
+ function generateJiraMock(method, inputs) {
103
+ switch (method) {
104
+ case 'issues.createIssue':
105
+ case 'issueSearch.createIssue':
106
+ return {
107
+ key: 'MOCK-123',
108
+ id: '10001',
109
+ self: 'https://jira.example.com/browse/MOCK-123',
110
+ fields: inputs.fields || {},
111
+ };
112
+ case 'issueSearch.searchForIssuesUsingJql':
113
+ return {
114
+ issues: [
115
+ {
116
+ key: 'MOCK-1',
117
+ fields: {
118
+ summary: 'Mock Issue 1',
119
+ status: { name: 'In Progress' },
120
+ assignee: { displayName: 'Mock User' },
121
+ },
122
+ },
123
+ {
124
+ key: 'MOCK-2',
125
+ fields: {
126
+ summary: 'Mock Issue 2',
127
+ status: { name: 'Done' },
128
+ assignee: { displayName: 'Mock User 2' },
129
+ },
130
+ },
131
+ ],
132
+ };
133
+ default:
134
+ return { key: 'MOCK-123', id: '10001' };
135
+ }
136
+ }
137
+ function generateGmailMock(method, _inputs) {
138
+ switch (method) {
139
+ case 'users.messages.list':
140
+ return {
141
+ messages: [
142
+ { id: 'msg1', threadId: 'thread1' },
143
+ { id: 'msg2', threadId: 'thread2' },
144
+ ],
145
+ };
146
+ case 'users.messages.send':
147
+ return {
148
+ id: 'msg123',
149
+ threadId: 'thread123',
150
+ labelIds: ['SENT'],
151
+ };
152
+ default:
153
+ return { id: 'msg123' };
154
+ }
155
+ }
156
+ function generateLinearMock(_method, inputs) {
157
+ return {
158
+ id: 'issue-123',
159
+ title: inputs.title || 'Mock Linear Issue',
160
+ url: 'https://linear.app/team/issue/mock-123',
161
+ };
162
+ }
163
+ function generateNotionMock(method, inputs) {
164
+ switch (method) {
165
+ case 'pages.create':
166
+ return {
167
+ id: 'page-123',
168
+ url: 'https://notion.so/page-123',
169
+ properties: inputs.properties || {},
170
+ };
171
+ default:
172
+ return { id: 'page-123', url: 'https://notion.so/page-123' };
173
+ }
174
+ }
175
+ function generateClaudeMock(_method, inputs) {
176
+ return {
177
+ id: 'msg_123',
178
+ type: 'message',
179
+ role: 'assistant',
180
+ content: [
181
+ {
182
+ type: 'text',
183
+ text: 'This is a mock response from Claude. In a real execution, this would contain the actual AI-generated content based on your prompt.',
184
+ },
185
+ ],
186
+ model: inputs.model || 'claude-3-5-sonnet-20241022',
187
+ stop_reason: 'end_turn',
188
+ usage: {
189
+ input_tokens: 50,
190
+ output_tokens: 100,
191
+ },
192
+ };
193
+ }
194
+ function generateOllamaMock(_method, inputs) {
195
+ return {
196
+ model: inputs.model || 'llama2',
197
+ response: 'This is a mock response from Ollama. In a real execution, this would contain the actual AI-generated content.',
198
+ done: true,
199
+ };
200
+ }
201
+ /**
202
+ * Simulate workflow execution with mock data
203
+ */
204
+ export async function executeDryRun(workflow, inputs, options = {}) {
205
+ const startTime = Date.now();
206
+ const steps = [];
207
+ const variables = {};
208
+ const context = {
209
+ workflowId: workflow.metadata.id,
210
+ runId: 'dry-run-' + Date.now(),
211
+ variables,
212
+ inputs,
213
+ startedAt: new Date(),
214
+ currentStepIndex: 0,
215
+ status: WorkflowStatus.RUNNING,
216
+ stepMetadata: {},
217
+ };
218
+ console.log(chalk.bold.cyan('\n🧪 Dry Run Mode\n'));
219
+ console.log(chalk.gray(`Simulating workflow: ${workflow.metadata.name}`));
220
+ console.log(chalk.gray(`Steps: ${workflow.steps.length}\n`));
221
+ // Simulate each step
222
+ for (let i = 0; i < workflow.steps.length; i++) {
223
+ const step = workflow.steps[i];
224
+ context.currentStepIndex = i;
225
+ const stepStart = Date.now();
226
+ // Check conditions
227
+ let stepStatus = 'completed';
228
+ if (step.conditions && step.conditions.length > 0) {
229
+ const conditionMet = evaluateConditions(step.conditions, context);
230
+ if (!conditionMet) {
231
+ stepStatus = 'skipped';
232
+ }
233
+ }
234
+ // Resolve inputs with template variables
235
+ const resolvedInputs = resolveInputTemplates(step.inputs, context);
236
+ // Generate mock response
237
+ const mockOutput = stepStatus !== 'skipped' ? generateMockResponse(step.action, resolvedInputs) : null;
238
+ // Store output variable
239
+ if (step.outputVariable && mockOutput) {
240
+ variables[step.outputVariable] = mockOutput;
241
+ }
242
+ const stepDuration = Date.now() - stepStart + Math.random() * 50; // Add small random delay
243
+ const stepResult = {
244
+ stepId: step.id,
245
+ action: step.action,
246
+ status: stepStatus,
247
+ mockOutput,
248
+ resolvedInputs,
249
+ duration: stepDuration,
250
+ };
251
+ steps.push(stepResult);
252
+ // Display step result
253
+ displayStepResult(stepResult, options);
254
+ // Small delay for realism
255
+ await sleep(50);
256
+ }
257
+ const totalDuration = Date.now() - startTime;
258
+ return {
259
+ workflowId: workflow.metadata.id,
260
+ status: 'completed',
261
+ steps,
262
+ variables,
263
+ duration: totalDuration,
264
+ };
265
+ }
266
+ /**
267
+ * Simple condition evaluation for dry-run
268
+ */
269
+ function evaluateConditions(conditions, context) {
270
+ // Very basic evaluation - just check if variables exist
271
+ for (const condition of conditions) {
272
+ const varName = condition.split('.')[0].trim();
273
+ if (!(varName in context.variables)) {
274
+ return false;
275
+ }
276
+ }
277
+ return true;
278
+ }
279
+ /**
280
+ * Resolve template variables in inputs
281
+ */
282
+ function resolveInputTemplates(inputs, context) {
283
+ const resolved = {};
284
+ for (const [key, value] of Object.entries(inputs)) {
285
+ if (typeof value === 'string' && value.includes('{{')) {
286
+ // Simple template resolution
287
+ let resolved_value = value;
288
+ const matches = value.matchAll(/\{\{([^}]+)\}\}/g);
289
+ for (const match of matches) {
290
+ const varPath = match[1].trim();
291
+ if (varPath.startsWith('inputs.')) {
292
+ const inputKey = varPath.slice(7);
293
+ resolved_value = resolved_value.replace(match[0], String(context.inputs[inputKey] || ''));
294
+ }
295
+ else if (varPath in context.variables) {
296
+ const varValue = context.variables[varPath];
297
+ resolved_value = resolved_value.replace(match[0], String(varValue));
298
+ }
299
+ }
300
+ resolved[key] = resolved_value;
301
+ }
302
+ else if (typeof value === 'object' && value !== null) {
303
+ resolved[key] = resolveInputTemplates(value, context);
304
+ }
305
+ else {
306
+ resolved[key] = value;
307
+ }
308
+ }
309
+ return resolved;
310
+ }
311
+ /**
312
+ * Display step result with formatting
313
+ */
314
+ function displayStepResult(result, options) {
315
+ const statusIcon = result.status === 'completed'
316
+ ? chalk.green('āœ“')
317
+ : result.status === 'skipped'
318
+ ? chalk.yellow('ā—‹')
319
+ : chalk.red('āœ—');
320
+ console.log(`${statusIcon} ${chalk.cyan(result.stepId)} ${chalk.gray('→')} ${chalk.white(result.action)} ${chalk.dim(`(${result.duration.toFixed(0)}ms)`)}`);
321
+ if (options.verbose) {
322
+ if (result.status !== 'skipped' && options.showMockData) {
323
+ console.log(chalk.gray(' Mock output:'), JSON.stringify(result.mockOutput, null, 2)
324
+ .split('\n')
325
+ .map((line) => ` ${chalk.dim(line)}`)
326
+ .join('\n'));
327
+ }
328
+ }
329
+ }
330
+ /**
331
+ * Display final summary
332
+ */
333
+ export function displayDryRunSummary(result, options) {
334
+ console.log(chalk.bold.cyan('\nšŸ“Š Dry Run Summary\n'));
335
+ const completed = result.steps.filter((s) => s.status === 'completed').length;
336
+ const skipped = result.steps.filter((s) => s.status === 'skipped').length;
337
+ const failed = result.steps.filter((s) => s.status === 'would-fail').length;
338
+ console.log(` ${chalk.green('āœ“')} Completed: ${completed}`);
339
+ if (skipped > 0)
340
+ console.log(` ${chalk.yellow('ā—‹')} Skipped: ${skipped}`);
341
+ if (failed > 0)
342
+ console.log(` ${chalk.red('āœ—')} Would fail: ${failed}`);
343
+ console.log(` ${chalk.gray('ā±')} Duration: ${result.duration.toFixed(0)}ms (simulated)`);
344
+ if (options.showVariables && Object.keys(result.variables).length > 0) {
345
+ console.log(chalk.bold.cyan('\nšŸ“ Final Variables\n'));
346
+ for (const [key, value] of Object.entries(result.variables)) {
347
+ console.log(` ${chalk.cyan(key)}: ${chalk.gray(typeof value === 'object' ? JSON.stringify(value) : String(value))}`);
348
+ }
349
+ }
350
+ console.log(chalk.bold.green('\nāœ… Dry run completed successfully\n'));
351
+ console.log(chalk.gray('Note: No external services were called. All responses are mocked.'));
352
+ console.log(chalk.gray('To execute for real, run without --dry-run flag.\n'));
353
+ }
354
+ // ============================================================================
355
+ // Helpers
356
+ // ============================================================================
357
+ function sleep(ms) {
358
+ return new Promise((resolve) => setTimeout(resolve, ms));
359
+ }
360
+ //# sourceMappingURL=dry-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dry-run.js","sourceRoot":"","sources":["../../src/commands/dry-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * marktoflow new - Interactive workflow wizard
3
+ *
4
+ * Creates new workflows from templates or from scratch with guided prompts.
5
+ */
6
+ export declare function runWorkflowWizard(options: {
7
+ output?: string;
8
+ template?: string;
9
+ }): Promise<void>;
10
+ /**
11
+ * List available workflow templates
12
+ */
13
+ export declare function listTemplates(): void;
14
+ //# sourceMappingURL=new.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0TH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,iBA8JtF;AAED;;GAEG;AACH,wBAAgB,aAAa,SA2C5B"}