@walkeros/cli 0.4.0 → 0.4.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 (181) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/__tests__/bundle/bundler-helpers.test.d.ts +2 -0
  3. package/dist/__tests__/bundle/bundler-helpers.test.d.ts.map +1 -0
  4. package/dist/__tests__/bundle/bundler-helpers.test.js +285 -0
  5. package/dist/__tests__/bundle/bundler-helpers.test.js.map +1 -0
  6. package/dist/__tests__/bundle/bundler.test.js +3 -3
  7. package/dist/__tests__/bundle/bundler.test.js.map +1 -1
  8. package/dist/__tests__/bundle/programmatic.test.js +1 -1
  9. package/dist/__tests__/bundle/programmatic.test.js.map +1 -1
  10. package/dist/__tests__/bundle/serializer.test.js +1 -1
  11. package/dist/__tests__/bundle/serializer.test.js.map +1 -1
  12. package/dist/__tests__/bundle/template-engine.test.js +1 -1
  13. package/dist/__tests__/bundle/template-engine.test.js.map +1 -1
  14. package/dist/__tests__/cli-e2e.test.js +1 -1
  15. package/dist/__tests__/cli-e2e.test.js.map +1 -1
  16. package/dist/__tests__/cli.test.js +4 -73
  17. package/dist/__tests__/cli.test.js.map +1 -1
  18. package/dist/__tests__/config-loader.test.js +8 -5
  19. package/dist/__tests__/config-loader.test.js.map +1 -1
  20. package/dist/__tests__/core/config.test.js +1 -1
  21. package/dist/__tests__/core/config.test.js.map +1 -1
  22. package/dist/__tests__/core/logger.test.js +1 -1
  23. package/dist/__tests__/core/logger.test.js.map +1 -1
  24. package/dist/__tests__/integration/bundle-run.integration.test.d.ts +8 -0
  25. package/dist/__tests__/integration/bundle-run.integration.test.d.ts.map +1 -0
  26. package/dist/__tests__/integration/bundle-run.integration.test.js +50 -0
  27. package/dist/__tests__/integration/bundle-run.integration.test.js.map +1 -0
  28. package/dist/__tests__/push/push.test.d.ts +7 -0
  29. package/dist/__tests__/push/push.test.d.ts.map +1 -0
  30. package/dist/__tests__/push/push.test.js +197 -0
  31. package/dist/__tests__/push/push.test.js.map +1 -0
  32. package/dist/__tests__/simulate/env-loader.test.d.ts +2 -0
  33. package/dist/__tests__/simulate/env-loader.test.d.ts.map +1 -0
  34. package/dist/__tests__/simulate/env-loader.test.js +47 -0
  35. package/dist/__tests__/simulate/env-loader.test.js.map +1 -0
  36. package/dist/__tests__/smoke/production.smoke.test.d.ts +8 -0
  37. package/dist/__tests__/smoke/production.smoke.test.d.ts.map +1 -0
  38. package/dist/__tests__/smoke/production.smoke.test.js +58 -0
  39. package/dist/__tests__/smoke/production.smoke.test.js.map +1 -0
  40. package/dist/commands/bundle/bundler.d.ts +2 -2
  41. package/dist/commands/bundle/bundler.d.ts.map +1 -1
  42. package/dist/commands/bundle/bundler.js +63 -51
  43. package/dist/commands/bundle/bundler.js.map +1 -1
  44. package/dist/commands/bundle/index.d.ts +1 -1
  45. package/dist/commands/bundle/index.d.ts.map +1 -1
  46. package/dist/commands/bundle/index.js +11 -23
  47. package/dist/commands/bundle/index.js.map +1 -1
  48. package/dist/commands/bundle/package-manager.d.ts +1 -1
  49. package/dist/commands/bundle/package-manager.d.ts.map +1 -1
  50. package/dist/commands/bundle/serializer.d.ts +1 -1
  51. package/dist/commands/bundle/serializer.d.ts.map +1 -1
  52. package/dist/commands/bundle/serializer.js +1 -1
  53. package/dist/commands/bundle/serializer.js.map +1 -1
  54. package/dist/commands/bundle/stats.d.ts +2 -2
  55. package/dist/commands/bundle/stats.d.ts.map +1 -1
  56. package/dist/commands/bundle/stats.js +1 -1
  57. package/dist/commands/bundle/stats.js.map +1 -1
  58. package/dist/commands/bundle/template-engine.d.ts +1 -1
  59. package/dist/commands/bundle/template-engine.d.ts.map +1 -1
  60. package/dist/commands/bundle/template-engine.js +2 -2
  61. package/dist/commands/bundle/template-engine.js.map +1 -1
  62. package/dist/commands/push/index.d.ts +7 -0
  63. package/dist/commands/push/index.d.ts.map +1 -0
  64. package/dist/commands/push/index.js +252 -0
  65. package/dist/commands/push/index.js.map +1 -0
  66. package/dist/commands/push/types.d.ts +21 -0
  67. package/dist/commands/push/types.d.ts.map +1 -0
  68. package/dist/commands/push/types.js +2 -0
  69. package/dist/commands/push/types.js.map +1 -0
  70. package/dist/commands/run/__tests__/run.integration.test.js +1 -1
  71. package/dist/commands/run/__tests__/run.integration.test.js.map +1 -1
  72. package/dist/commands/run/__tests__/validators.test.js +1 -1
  73. package/dist/commands/run/__tests__/validators.test.js.map +1 -1
  74. package/dist/commands/run/execution.d.ts +14 -0
  75. package/dist/commands/run/execution.d.ts.map +1 -0
  76. package/dist/commands/run/execution.js +37 -0
  77. package/dist/commands/run/execution.js.map +1 -0
  78. package/dist/commands/run/index.d.ts +1 -1
  79. package/dist/commands/run/index.d.ts.map +1 -1
  80. package/dist/commands/run/index.js +33 -107
  81. package/dist/commands/run/index.js.map +1 -1
  82. package/dist/commands/run/types.d.ts +1 -1
  83. package/dist/commands/run/types.d.ts.map +1 -1
  84. package/dist/commands/run/utils.d.ts +26 -0
  85. package/dist/commands/run/utils.d.ts.map +1 -0
  86. package/dist/commands/run/utils.js +58 -0
  87. package/dist/commands/run/utils.js.map +1 -0
  88. package/dist/commands/run/validators.d.ts +1 -1
  89. package/dist/commands/run/validators.d.ts.map +1 -1
  90. package/dist/commands/run/validators.js +1 -1
  91. package/dist/commands/run/validators.js.map +1 -1
  92. package/dist/commands/simulate/env-loader.d.ts +19 -0
  93. package/dist/commands/simulate/env-loader.d.ts.map +1 -0
  94. package/dist/commands/simulate/env-loader.js +46 -0
  95. package/dist/commands/simulate/env-loader.js.map +1 -0
  96. package/dist/commands/simulate/index.d.ts +3 -3
  97. package/dist/commands/simulate/index.d.ts.map +1 -1
  98. package/dist/commands/simulate/index.js +10 -19
  99. package/dist/commands/simulate/index.js.map +1 -1
  100. package/dist/commands/simulate/jsdom-executor.d.ts +13 -8
  101. package/dist/commands/simulate/jsdom-executor.d.ts.map +1 -1
  102. package/dist/commands/simulate/jsdom-executor.js +26 -49
  103. package/dist/commands/simulate/jsdom-executor.js.map +1 -1
  104. package/dist/commands/simulate/simulator.d.ts +1 -1
  105. package/dist/commands/simulate/simulator.d.ts.map +1 -1
  106. package/dist/commands/simulate/simulator.js +14 -10
  107. package/dist/commands/simulate/simulator.js.map +1 -1
  108. package/dist/commands/simulate/types.d.ts +2 -2
  109. package/dist/commands/simulate/types.d.ts.map +1 -1
  110. package/dist/config/defaults.d.ts +1 -1
  111. package/dist/config/defaults.d.ts.map +1 -1
  112. package/dist/config/index.d.ts +8 -8
  113. package/dist/config/index.d.ts.map +1 -1
  114. package/dist/config/index.js +5 -5
  115. package/dist/config/index.js.map +1 -1
  116. package/dist/config/loader.d.ts +1 -1
  117. package/dist/config/loader.d.ts.map +1 -1
  118. package/dist/config/loader.js +23 -19
  119. package/dist/config/loader.js.map +1 -1
  120. package/dist/config/parser.d.ts +65 -1
  121. package/dist/config/parser.d.ts.map +1 -1
  122. package/dist/config/parser.js +176 -71
  123. package/dist/config/parser.js.map +1 -1
  124. package/dist/config/utils.d.ts.map +1 -1
  125. package/dist/config/utils.js +3 -2
  126. package/dist/config/utils.js.map +1 -1
  127. package/dist/config/validators.d.ts +4 -1
  128. package/dist/config/validators.d.ts.map +1 -1
  129. package/dist/config/validators.js +4 -2
  130. package/dist/config/validators.js.map +1 -1
  131. package/dist/core/asset-resolver.d.ts.map +1 -1
  132. package/dist/core/asset-resolver.js +10 -3
  133. package/dist/core/asset-resolver.js.map +1 -1
  134. package/dist/core/docker.d.ts +17 -1
  135. package/dist/core/docker.d.ts.map +1 -1
  136. package/dist/core/docker.js +22 -1
  137. package/dist/core/docker.js.map +1 -1
  138. package/dist/core/execution.d.ts +2 -2
  139. package/dist/core/execution.d.ts.map +1 -1
  140. package/dist/core/execution.js +1 -1
  141. package/dist/core/execution.js.map +1 -1
  142. package/dist/core/index.d.ts +8 -6
  143. package/dist/core/index.d.ts.map +1 -1
  144. package/dist/core/index.js +8 -6
  145. package/dist/core/index.js.map +1 -1
  146. package/dist/core/logger.d.ts +11 -0
  147. package/dist/core/logger.d.ts.map +1 -1
  148. package/dist/core/logger.js +14 -0
  149. package/dist/core/logger.js.map +1 -1
  150. package/dist/core/temp-manager.d.ts +51 -0
  151. package/dist/core/temp-manager.d.ts.map +1 -0
  152. package/dist/core/temp-manager.js +73 -0
  153. package/dist/core/temp-manager.js.map +1 -0
  154. package/dist/core/utils.d.ts +10 -0
  155. package/dist/core/utils.d.ts.map +1 -0
  156. package/dist/core/utils.js +12 -0
  157. package/dist/core/utils.js.map +1 -0
  158. package/dist/index.d.ts +16 -1
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +2531 -121
  161. package/dist/index.js.map +1 -1
  162. package/dist/types/index.d.ts +2 -2
  163. package/dist/types/index.d.ts.map +1 -1
  164. package/dist/types/index.js +2 -2
  165. package/dist/types/index.js.map +1 -1
  166. package/examples/event.json +1 -1
  167. package/examples/server-collect.mjs +1360 -1190
  168. package/examples/web-serve.js +25469 -11
  169. package/package.json +3 -2
  170. package/dist/__tests__/bundle/bundler-integration.test.d.ts +0 -2
  171. package/dist/__tests__/bundle/bundler-integration.test.d.ts.map +0 -1
  172. package/dist/__tests__/bundle/bundler-integration.test.js +0 -106
  173. package/dist/__tests__/bundle/bundler-integration.test.js.map +0 -1
  174. package/dist/__tests__/simulate/programmatic.test.d.ts +0 -2
  175. package/dist/__tests__/simulate/programmatic.test.d.ts.map +0 -1
  176. package/dist/__tests__/simulate/programmatic.test.js +0 -51
  177. package/dist/__tests__/simulate/programmatic.test.js.map +0 -1
  178. package/dist/__tests__/simulate/simulator.test.d.ts +0 -2
  179. package/dist/__tests__/simulate/simulator.test.d.ts.map +0 -1
  180. package/dist/__tests__/simulate/simulator.test.js +0 -29
  181. package/dist/__tests__/simulate/simulator.test.js.map +0 -1
@@ -0,0 +1,252 @@
1
+ import path from 'path';
2
+ import os from 'os';
3
+ import { JSDOM, VirtualConsole } from 'jsdom';
4
+ import fs from 'fs-extra';
5
+ import { createCommandLogger, createLogger, executeCommand, getErrorMessage, buildCommonDockerArgs, } from '../../core/index.js';
6
+ import { loadJsonConfig, loadJsonFromSource, loadBundleConfig, } from '../../config/index.js';
7
+ import { bundle } from '../bundle/index.js';
8
+ /**
9
+ * CLI command handler for push command
10
+ */
11
+ export async function pushCommand(options) {
12
+ const logger = createCommandLogger(options);
13
+ // Build Docker args
14
+ const dockerArgs = buildCommonDockerArgs(options);
15
+ dockerArgs.push('--event', options.event);
16
+ if (options.env)
17
+ dockerArgs.push('--env', options.env);
18
+ await executeCommand(async () => {
19
+ const startTime = Date.now();
20
+ try {
21
+ // Step 1: Load event
22
+ logger.info('📥 Loading event...');
23
+ const event = await loadJsonFromSource(options.event, {
24
+ name: 'event',
25
+ });
26
+ // Validate event format
27
+ if (!event ||
28
+ typeof event !== 'object' ||
29
+ !('name' in event) ||
30
+ typeof event.name !== 'string') {
31
+ throw new Error('Event must be an object with a "name" property (string)');
32
+ }
33
+ // Warn about event naming format
34
+ if (!event.name.includes(' ')) {
35
+ logger.warn(`Event name "${event.name}" should follow "ENTITY ACTION" format (e.g., "page view")`);
36
+ }
37
+ // Step 2: Load config
38
+ logger.info('📦 Loading flow configuration...');
39
+ const configPath = path.resolve(options.config);
40
+ const rawConfig = await loadJsonConfig(configPath);
41
+ const { flowConfig, buildOptions, environment, isMultiEnvironment } = loadBundleConfig(rawConfig, {
42
+ configPath: options.config,
43
+ environment: options.env,
44
+ logger,
45
+ });
46
+ const platform = flowConfig.platform;
47
+ // Step 3: Bundle to temp file
48
+ logger.info('🔨 Bundling flow configuration...');
49
+ const tempPath = path.join(os.tmpdir(), `walkeros-push-${Date.now()}-${Math.random().toString(36).slice(2, 9)}.${platform === 'web' ? 'js' : 'mjs'}`);
50
+ const configWithOutput = {
51
+ flow: flowConfig,
52
+ build: {
53
+ ...buildOptions,
54
+ output: tempPath,
55
+ // Web uses IIFE for browser-like execution, server uses ESM
56
+ format: platform === 'web' ? 'iife' : 'esm',
57
+ platform: platform === 'web' ? 'browser' : 'node',
58
+ ...(platform === 'web' && {
59
+ windowCollector: 'collector',
60
+ windowElb: 'elb',
61
+ }),
62
+ },
63
+ };
64
+ await bundle(configWithOutput, {
65
+ cache: true,
66
+ verbose: options.verbose,
67
+ silent: !options.verbose,
68
+ });
69
+ logger.debug(`Bundle created: ${tempPath}`);
70
+ // Step 4: Execute based on platform
71
+ let result;
72
+ if (platform === 'web') {
73
+ logger.info('🌐 Executing in web environment (JSDOM)...');
74
+ result = await executeWebPush(tempPath, event, logger);
75
+ }
76
+ else if (platform === 'server') {
77
+ logger.info('🖥️ Executing in server environment (Node.js)...');
78
+ result = await executeServerPush(tempPath, event, logger);
79
+ }
80
+ else {
81
+ throw new Error(`Unsupported platform: ${platform}`);
82
+ }
83
+ // Step 5: Output results
84
+ const duration = Date.now() - startTime;
85
+ if (options.json) {
86
+ // JSON output
87
+ const outputLogger = createLogger({ silent: false, json: false });
88
+ outputLogger.log('white', JSON.stringify({
89
+ success: result.success,
90
+ event: result.elbResult,
91
+ duration,
92
+ }, null, 2));
93
+ }
94
+ else {
95
+ // Standard output
96
+ if (result.success) {
97
+ logger.success('✅ Event pushed successfully');
98
+ if (result.elbResult && typeof result.elbResult === 'object') {
99
+ const pushResult = result.elbResult;
100
+ if ('id' in pushResult && pushResult.id) {
101
+ logger.info(` Event ID: ${pushResult.id}`);
102
+ }
103
+ if ('entity' in pushResult && pushResult.entity) {
104
+ logger.info(` Entity: ${pushResult.entity}`);
105
+ }
106
+ if ('action' in pushResult && pushResult.action) {
107
+ logger.info(` Action: ${pushResult.action}`);
108
+ }
109
+ }
110
+ logger.info(` Duration: ${duration}ms`);
111
+ }
112
+ else {
113
+ logger.error(`❌ Push failed: ${result.error}`);
114
+ process.exit(1);
115
+ }
116
+ }
117
+ // Cleanup
118
+ try {
119
+ await fs.remove(tempPath);
120
+ }
121
+ catch {
122
+ // Ignore cleanup errors
123
+ }
124
+ }
125
+ catch (error) {
126
+ const duration = Date.now() - startTime;
127
+ const errorMessage = getErrorMessage(error);
128
+ if (options.json) {
129
+ const outputLogger = createLogger({ silent: false, json: false });
130
+ outputLogger.log('white', JSON.stringify({
131
+ success: false,
132
+ error: errorMessage,
133
+ duration,
134
+ }, null, 2));
135
+ }
136
+ else {
137
+ logger.error(`❌ Push command failed: ${errorMessage}`);
138
+ }
139
+ process.exit(1);
140
+ }
141
+ }, 'push', dockerArgs, options, logger, options.config);
142
+ }
143
+ /**
144
+ * Execute push for web platform using JSDOM with real APIs
145
+ */
146
+ async function executeWebPush(bundlePath, event, logger) {
147
+ const startTime = Date.now();
148
+ try {
149
+ // Create JSDOM with silent console
150
+ const virtualConsole = new VirtualConsole();
151
+ const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', {
152
+ url: 'http://localhost',
153
+ runScripts: 'dangerously',
154
+ resources: 'usable',
155
+ virtualConsole,
156
+ });
157
+ const { window } = dom;
158
+ // JSDOM provides fetch natively, no need to inject node-fetch
159
+ // Load and execute bundle
160
+ logger.debug('Loading bundle...');
161
+ const bundleCode = await fs.readFile(bundlePath, 'utf8');
162
+ window.eval(bundleCode);
163
+ // Wait for window.elb assignment
164
+ logger.debug('Waiting for elb...');
165
+ await waitForWindowProperty(window, 'elb', 5000);
166
+ const windowObj = window;
167
+ const elb = windowObj.elb;
168
+ // Push event
169
+ logger.info(`Pushing event: ${event.name}`);
170
+ const eventData = (event.data || {});
171
+ const elbResult = await elb(event.name, eventData);
172
+ return {
173
+ success: true,
174
+ elbResult,
175
+ duration: Date.now() - startTime,
176
+ };
177
+ }
178
+ catch (error) {
179
+ return {
180
+ success: false,
181
+ duration: Date.now() - startTime,
182
+ error: getErrorMessage(error),
183
+ };
184
+ }
185
+ }
186
+ /**
187
+ * Execute push for server platform using Node.js
188
+ */
189
+ async function executeServerPush(bundlePath, event, logger, timeout = 60000) {
190
+ const startTime = Date.now();
191
+ try {
192
+ // Create timeout promise
193
+ const timeoutPromise = new Promise((_, reject) => {
194
+ setTimeout(() => reject(new Error(`Server push timeout after ${timeout}ms`)), timeout);
195
+ });
196
+ // Execute with timeout
197
+ const executePromise = (async () => {
198
+ // Dynamic import of ESM bundle
199
+ logger.debug('Importing bundle...');
200
+ const flowModule = await import(bundlePath);
201
+ if (!flowModule.default || typeof flowModule.default !== 'function') {
202
+ throw new Error('Bundle does not export default factory function');
203
+ }
204
+ // Call factory function to start flow
205
+ logger.debug('Calling factory function...');
206
+ const result = await flowModule.default();
207
+ if (!result || !result.elb || typeof result.elb !== 'function') {
208
+ throw new Error('Factory function did not return valid result with elb');
209
+ }
210
+ const { elb } = result;
211
+ // Push event
212
+ logger.info(`Pushing event: ${event.name}`);
213
+ const eventData = (event.data || {});
214
+ const elbResult = await elb(event.name, eventData);
215
+ return {
216
+ success: true,
217
+ elbResult,
218
+ duration: Date.now() - startTime,
219
+ };
220
+ })();
221
+ // Race between execution and timeout
222
+ return await Promise.race([executePromise, timeoutPromise]);
223
+ }
224
+ catch (error) {
225
+ return {
226
+ success: false,
227
+ duration: Date.now() - startTime,
228
+ error: getErrorMessage(error),
229
+ };
230
+ }
231
+ }
232
+ /**
233
+ * Wait for window property to be assigned
234
+ */
235
+ function waitForWindowProperty(window, prop, timeout = 5000) {
236
+ return new Promise((resolve, reject) => {
237
+ const start = Date.now();
238
+ const check = () => {
239
+ if (window[prop] !== undefined) {
240
+ resolve();
241
+ }
242
+ else if (Date.now() - start > timeout) {
243
+ reject(new Error(`Timeout waiting for window.${prop}. IIFE may have failed to execute.`));
244
+ }
245
+ else {
246
+ setImmediate(check);
247
+ }
248
+ };
249
+ check();
250
+ });
251
+ }
252
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/push/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Elb } from '@walkeros/core';
2
+ import type { GlobalOptions } from '../../types/index.js';
3
+ /**
4
+ * Push command options
5
+ */
6
+ export interface PushCommandOptions extends GlobalOptions {
7
+ config: string;
8
+ event: string;
9
+ env?: string;
10
+ json?: boolean;
11
+ }
12
+ /**
13
+ * Push execution result
14
+ */
15
+ export interface PushResult {
16
+ success: boolean;
17
+ elbResult?: Elb.PushResult;
18
+ duration: number;
19
+ error?: string;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/push/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/push/types.ts"],"names":[],"mappings":""}
@@ -4,7 +4,7 @@
4
4
  * Tests the CLI run command that imports @walkeros/docker as a library
5
5
  * No Docker daemon required - runs directly in Node.js process
6
6
  */
7
- import { runCommand } from '../index';
7
+ import { runCommand } from '../index.js';
8
8
  import { join } from 'path';
9
9
  import { existsSync } from 'fs';
10
10
  describe('Run Command Integration', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"run.integration.test.js","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/run.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,8CAA8C;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;YAEpE,2BAA2B;YAC3B,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,0CAA0C;YAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,qCAAqC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;YAErE,6CAA6C;YAC7C,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,qCAAqC;YACrC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAEtD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,4CAA4C;YAC5C,kDAAkD;YAClD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"run.integration.test.js","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/run.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,8CAA8C;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;YAEpE,2BAA2B;YAC3B,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,0CAA0C;YAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,qCAAqC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;YAErE,6CAA6C;YAC7C,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,qCAAqC;YACrC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAEtD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,4CAA4C;YAC5C,kDAAkD;YAClD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect } from '@jest/globals';
2
2
  import { mkdirSync, writeFileSync, rmSync } from 'fs';
3
3
  import { join } from 'path';
4
- import { validateMode, validateFlowFile, validatePort } from '../validators';
4
+ import { validateMode, validateFlowFile, validatePort } from '../validators.js';
5
5
  describe('validators', () => {
6
6
  describe('validateMode', () => {
7
7
  it('should accept valid modes', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.test.js","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/validators.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.test.js","sourceRoot":"","sources":["../../../../src/commands/run/__tests__/validators.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Execute run command locally
3
+ *
4
+ * @param mode - Run mode (collect | serve)
5
+ * @param flowPath - Path to flow bundle (required for collect, optional for serve)
6
+ * @param options - Runtime options
7
+ */
8
+ export declare function executeRunLocal(mode: 'collect' | 'serve', flowPath: string | null, options: {
9
+ port?: number;
10
+ host?: string;
11
+ serveName?: string;
12
+ servePath?: string;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/commands/run/execution.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -0,0 +1,37 @@
1
+ import { runFlow, runServeMode } from '@walkeros/docker';
2
+ /**
3
+ * Execute run command locally
4
+ *
5
+ * @param mode - Run mode (collect | serve)
6
+ * @param flowPath - Path to flow bundle (required for collect, optional for serve)
7
+ * @param options - Runtime options
8
+ */
9
+ export async function executeRunLocal(mode, flowPath, options) {
10
+ switch (mode) {
11
+ case 'collect': {
12
+ if (!flowPath) {
13
+ throw new Error('Flow path is required for collect mode');
14
+ }
15
+ const config = {
16
+ port: options.port,
17
+ host: options.host,
18
+ };
19
+ await runFlow(flowPath, config);
20
+ break;
21
+ }
22
+ case 'serve': {
23
+ const config = {
24
+ port: options.port,
25
+ host: options.host,
26
+ serveName: options.serveName,
27
+ servePath: options.servePath,
28
+ filePath: flowPath || undefined,
29
+ };
30
+ await runServeMode(config);
31
+ break;
32
+ }
33
+ default:
34
+ throw new Error(`Unknown mode: ${mode}`);
35
+ }
36
+ }
37
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/commands/run/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAyB,EACzB,QAAuB,EACvB,OAKC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;YACF,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAgB;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,QAAQ,IAAI,SAAS;aAChC,CAAC;YACF,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM;QACR,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Runs walkerOS flows using @walkeros/docker as a library
5
5
  * No Docker daemon required - runs directly in Node.js
6
6
  */
7
- import type { RunMode, RunCommandOptions, RunOptions, RunResult } from './types';
7
+ import type { RunMode, RunCommandOptions, RunOptions, RunResult } from './types.js';
8
8
  /**
9
9
  * CLI command function for `walkeros run`
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/run/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAiKf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CA0GpB;AAGD,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/run/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAkHf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CAuDpB;AAGD,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}
@@ -5,12 +5,10 @@
5
5
  * No Docker daemon required - runs directly in Node.js
6
6
  */
7
7
  import path from 'path';
8
- import os from 'os';
9
- import { runFlow, runServeMode, } from '@walkeros/docker';
10
- import { bundle } from '../bundle';
11
- import { createLogger, createTimer, getExecutionMode, executeRunInDocker, isDockerAvailable, } from '../../core';
12
- import { loadJsonConfig } from '../../config';
13
- import { validateMode, validateFlowFile, validatePort } from './validators';
8
+ import { createCommandLogger, createTimer, getExecutionMode, getErrorMessage, executeRunInDocker, isDockerAvailable, } from '../../core/index.js';
9
+ import { validateMode, validateFlowFile, validatePort } from './validators.js';
10
+ import { prepareBundleForRun, isPreBuiltConfig } from './utils.js';
11
+ import { executeRunLocal } from './execution.js';
14
12
  /**
15
13
  * CLI command function for `walkeros run`
16
14
  *
@@ -20,11 +18,7 @@ import { validateMode, validateFlowFile, validatePort } from './validators';
20
18
  export async function runCommand(mode, options) {
21
19
  const timer = createTimer();
22
20
  timer.start();
23
- const logger = createLogger({
24
- verbose: options.verbose,
25
- silent: options.silent ?? false,
26
- json: options.json,
27
- });
21
+ const logger = createCommandLogger(options);
28
22
  try {
29
23
  // Step 1: Validate inputs
30
24
  validateMode(mode);
@@ -33,9 +27,7 @@ export async function runCommand(mode, options) {
33
27
  validatePort(options.port);
34
28
  }
35
29
  // Step 2: Determine if config is pre-built or needs bundling
36
- const isPreBuilt = configPath.endsWith('.mjs') ||
37
- configPath.endsWith('.js') ||
38
- configPath.endsWith('.cjs');
30
+ const isPreBuilt = isPreBuiltConfig(configPath);
39
31
  let flowPath = null;
40
32
  if (mode === 'collect') {
41
33
  if (isPreBuilt) {
@@ -50,29 +42,10 @@ export async function runCommand(mode, options) {
50
42
  if (!options.json && !options.silent) {
51
43
  logger.info('🔨 Building flow bundle...');
52
44
  }
53
- // Read config and modify output path
54
- const rawConfig = await loadJsonConfig(configPath);
55
- const tempPath = path.join(os.tmpdir(), `walkeros-${Date.now()}-${Math.random().toString(36).slice(2, 9)}.mjs`);
56
- // Ensure config has build.output set to temp path
57
- const existingBuild = typeof rawConfig === 'object' &&
58
- rawConfig !== null &&
59
- 'build' in rawConfig &&
60
- typeof rawConfig.build === 'object'
61
- ? rawConfig.build
62
- : {};
63
- const configWithOutput = {
64
- ...rawConfig,
65
- build: {
66
- ...existingBuild,
67
- output: tempPath,
68
- },
69
- };
70
- await bundle(configWithOutput, {
71
- cache: true,
45
+ flowPath = await prepareBundleForRun(configPath, {
72
46
  verbose: options.verbose,
73
47
  silent: options.json || options.silent,
74
48
  });
75
- flowPath = tempPath;
76
49
  if (!options.json && !options.silent) {
77
50
  logger.success('✅ Bundle ready');
78
51
  }
@@ -80,6 +53,16 @@ export async function runCommand(mode, options) {
80
53
  }
81
54
  // Step 3: Execute based on mode
82
55
  const executionMode = getExecutionMode(options);
56
+ // Handle dry-run
57
+ if (options.dryRun) {
58
+ if (executionMode === 'docker') {
59
+ logger.info(`[DRY-RUN] Would execute in Docker: run ${mode} with runtime image`);
60
+ }
61
+ else {
62
+ logger.info(`[DRY-RUN] Would execute locally: run ${mode}`);
63
+ }
64
+ return;
65
+ }
83
66
  if (executionMode === 'docker') {
84
67
  // Docker mode: Use production runtime image
85
68
  const dockerAvailable = await isDockerAvailable();
@@ -103,38 +86,18 @@ export async function runCommand(mode, options) {
103
86
  const modeLabel = mode === 'collect' ? 'Collector' : 'Server';
104
87
  logger.info(`🖥️ Starting ${modeLabel} locally...`);
105
88
  }
106
- switch (mode) {
107
- case 'collect': {
108
- if (!flowPath) {
109
- throw new Error('Flow path is required for collect mode');
110
- }
111
- const config = {
112
- port: options.port,
113
- host: options.host,
114
- };
115
- await runFlow(flowPath, config);
116
- break;
117
- }
118
- case 'serve': {
119
- const config = {
120
- port: options.port,
121
- host: options.host,
122
- serveName: options.serveName,
123
- servePath: options.servePath,
124
- filePath: flowPath || undefined,
125
- };
126
- await runServeMode(config);
127
- break;
128
- }
129
- default:
130
- throw new Error(`Unknown mode: ${mode}`);
131
- }
89
+ await executeRunLocal(mode, flowPath, {
90
+ port: options.port,
91
+ host: options.host,
92
+ serveName: options.serveName,
93
+ servePath: options.servePath,
94
+ });
132
95
  }
133
96
  // Note: Both Docker and local modes run forever, so we won't reach here unless they fail
134
97
  }
135
98
  catch (error) {
136
99
  const duration = timer.getElapsed() / 1000;
137
- const errorMessage = error instanceof Error ? error.message : String(error);
100
+ const errorMessage = getErrorMessage(error);
138
101
  if (options.json) {
139
102
  const output = {
140
103
  success: false,
@@ -190,62 +153,25 @@ export async function run(mode, options) {
190
153
  validatePort(options.port);
191
154
  }
192
155
  // Determine if config is pre-built or needs bundling
193
- const isPreBuilt = flowFile.endsWith('.mjs') ||
194
- flowFile.endsWith('.js') ||
195
- flowFile.endsWith('.cjs');
156
+ const isPreBuilt = isPreBuiltConfig(flowFile);
196
157
  let flowPath;
197
158
  if (isPreBuilt) {
198
159
  flowPath = path.resolve(flowFile);
199
160
  }
200
161
  else {
201
162
  // Bundle JSON config
202
- const rawConfig = await loadJsonConfig(flowFile);
203
- const tempPath = path.join(os.tmpdir(), `walkeros-${Date.now()}-${Math.random().toString(36).slice(2, 9)}.mjs`);
204
- // Ensure config has build.output set to temp path
205
- const existingBuild = typeof rawConfig === 'object' &&
206
- rawConfig !== null &&
207
- 'build' in rawConfig &&
208
- typeof rawConfig.build === 'object'
209
- ? rawConfig.build
210
- : {};
211
- const configWithOutput = {
212
- ...rawConfig,
213
- build: {
214
- ...existingBuild,
215
- output: tempPath,
216
- },
217
- };
218
- await bundle(configWithOutput, {
219
- cache: true,
163
+ flowPath = await prepareBundleForRun(flowFile, {
220
164
  verbose: options.verbose,
221
165
  silent: true,
222
166
  });
223
- flowPath = tempPath;
224
167
  }
225
168
  // Run the flow using Docker package
226
- switch (mode) {
227
- case 'collect': {
228
- const config = {
229
- port: options.port,
230
- host: options.host,
231
- };
232
- await runFlow(flowPath, config);
233
- break;
234
- }
235
- case 'serve': {
236
- const config = {
237
- port: options.port,
238
- host: options.host,
239
- serveName: options.serveName,
240
- servePath: options.servePath,
241
- filePath: flowPath,
242
- };
243
- await runServeMode(config);
244
- break;
245
- }
246
- default:
247
- throw new Error(`Unknown mode: ${mode}`);
248
- }
169
+ await executeRunLocal(mode, flowPath, {
170
+ port: options.port,
171
+ host: options.host,
172
+ serveName: options.serveName,
173
+ servePath: options.servePath,
174
+ });
249
175
  // Success (though runFlow runs forever, so we typically don't reach here)
250
176
  return {
251
177
  success: true,
@@ -258,7 +184,7 @@ export async function run(mode, options) {
258
184
  success: false,
259
185
  exitCode: 1,
260
186
  duration: Date.now() - startTime,
261
- error: error instanceof Error ? error.message : String(error),
187
+ error: getErrorMessage(error),
262
188
  };
263
189
  }
264
190
  }