@workflow/cli 4.0.1-beta.8 → 4.1.0-beta.51

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 (66) hide show
  1. package/bin/run.js +25 -0
  2. package/dist/commands/cancel.d.ts +3 -0
  3. package/dist/commands/cancel.d.ts.map +1 -1
  4. package/dist/commands/cancel.js +3 -0
  5. package/dist/commands/cancel.js.map +1 -1
  6. package/dist/commands/health.d.ts +24 -0
  7. package/dist/commands/health.d.ts.map +1 -0
  8. package/dist/commands/health.js +313 -0
  9. package/dist/commands/health.js.map +1 -0
  10. package/dist/commands/inspect.d.ts +3 -0
  11. package/dist/commands/inspect.d.ts.map +1 -1
  12. package/dist/commands/inspect.js +13 -5
  13. package/dist/commands/inspect.js.map +1 -1
  14. package/dist/commands/start.d.ts +3 -0
  15. package/dist/commands/start.d.ts.map +1 -1
  16. package/dist/commands/start.js +3 -0
  17. package/dist/commands/start.js.map +1 -1
  18. package/dist/commands/web.d.ts +3 -0
  19. package/dist/commands/web.d.ts.map +1 -1
  20. package/dist/commands/web.js +4 -2
  21. package/dist/commands/web.js.map +1 -1
  22. package/dist/lib/config/types.d.ts +1 -0
  23. package/dist/lib/config/types.d.ts.map +1 -1
  24. package/dist/lib/config/workflow-config.d.ts.map +1 -1
  25. package/dist/lib/config/workflow-config.js +11 -1
  26. package/dist/lib/config/workflow-config.js.map +1 -1
  27. package/dist/lib/inspect/env.d.ts +4 -2
  28. package/dist/lib/inspect/env.d.ts.map +1 -1
  29. package/dist/lib/inspect/env.js +75 -32
  30. package/dist/lib/inspect/env.js.map +1 -1
  31. package/dist/lib/inspect/flags.d.ts +3 -0
  32. package/dist/lib/inspect/flags.d.ts.map +1 -1
  33. package/dist/lib/inspect/flags.js +29 -4
  34. package/dist/lib/inspect/flags.js.map +1 -1
  35. package/dist/lib/inspect/output.d.ts +4 -18
  36. package/dist/lib/inspect/output.d.ts.map +1 -1
  37. package/dist/lib/inspect/output.js +55 -141
  38. package/dist/lib/inspect/output.js.map +1 -1
  39. package/dist/lib/inspect/pagination.d.ts +4 -0
  40. package/dist/lib/inspect/pagination.d.ts.map +1 -1
  41. package/dist/lib/inspect/pagination.js +11 -5
  42. package/dist/lib/inspect/pagination.js.map +1 -1
  43. package/dist/lib/inspect/run.d.ts +1 -1
  44. package/dist/lib/inspect/run.d.ts.map +1 -1
  45. package/dist/lib/inspect/run.js +5 -3
  46. package/dist/lib/inspect/run.js.map +1 -1
  47. package/dist/lib/inspect/setup.d.ts +7 -1
  48. package/dist/lib/inspect/setup.d.ts.map +1 -1
  49. package/dist/lib/inspect/setup.js +41 -7
  50. package/dist/lib/inspect/setup.js.map +1 -1
  51. package/dist/lib/inspect/stream.d.ts +2 -2
  52. package/dist/lib/inspect/stream.d.ts.map +1 -1
  53. package/dist/lib/inspect/stream.js +8 -5
  54. package/dist/lib/inspect/stream.js.map +1 -1
  55. package/dist/lib/inspect/terminal-utils.d.ts.map +1 -1
  56. package/dist/lib/inspect/terminal-utils.js +0 -1
  57. package/dist/lib/inspect/terminal-utils.js.map +1 -1
  58. package/dist/lib/inspect/web.d.ts +6 -4
  59. package/dist/lib/inspect/web.d.ts.map +1 -1
  60. package/dist/lib/inspect/web.js +50 -70
  61. package/dist/lib/inspect/web.js.map +1 -1
  62. package/dist/lib/update-check.d.ts +21 -0
  63. package/dist/lib/update-check.d.ts.map +1 -0
  64. package/dist/lib/update-check.js +229 -0
  65. package/dist/lib/update-check.js.map +1 -0
  66. package/package.json +26 -25
package/bin/run.js CHANGED
@@ -1,5 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { existsSync } from 'node:fs';
4
+ import { resolve } from 'node:path';
3
5
  import { execute } from '@oclif/core';
6
+ import { config } from 'dotenv';
7
+
8
+ // Load .env file if it exists
9
+ const envPath = resolve(process.cwd(), '.env');
10
+ if (existsSync(envPath)) {
11
+ const envResult = config({ path: envPath });
12
+ if (envResult.error && envResult.error.code !== 'ENOENT') {
13
+ console.warn(
14
+ `Warning: Failed to load .env file: ${envResult.error.message}`
15
+ );
16
+ }
17
+ }
18
+
19
+ // Load .env.local file if it exists (overrides .env)
20
+ const envLocalPath = resolve(process.cwd(), '.env.local');
21
+ if (existsSync(envLocalPath)) {
22
+ const envLocalResult = config({ path: envLocalPath, override: true });
23
+ if (envLocalResult.error && envLocalResult.error.code !== 'ENOENT') {
24
+ console.warn(
25
+ `Warning: Failed to load .env.local file: ${envLocalResult.error.message}`
26
+ );
27
+ }
28
+ }
4
29
 
5
30
  await execute({ type: 'esm', development: false, dir: import.meta.url });
@@ -17,9 +17,12 @@ export default class Cancel extends BaseCommand {
17
17
  team: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
18
18
  env: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
19
  web: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ webPort: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
20
21
  noBrowser: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ localUi: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
23
  sort: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
22
24
  limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
25
+ interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
26
  };
24
27
  run(): Promise<void>;
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,SAAuB;IAEzC,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAA0D;IAEnE,KAAK,CAAC,KAAK,EAAE,GAAG;IAOtB,MAAM,CAAC,IAAI;;MAKA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;MAAY;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAOlC"}
1
+ {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,SAAuB;IAEzC,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAA0D;IAEnE,KAAK,CAAC,KAAK,EAAE,GAAG;IAOtB,MAAM,CAAC,IAAI;;MAKA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAAY;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAYlC"}
@@ -24,6 +24,9 @@ export default class Cancel extends BaseCommand {
24
24
  async run() {
25
25
  const { flags, args } = await this.parse(Cancel);
26
26
  const world = await setupCliWorld(flags, this.config.version);
27
+ if (!world) {
28
+ throw new Error('Failed to connect to backend. Check your configuration.');
29
+ }
27
30
  await cancelRun(world, args.runId);
28
31
  }
29
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAEzC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,QAAQ,GAAG,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,CAAC;IAEzE,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,IAAI;SACf,CAAC;KACM,CAAC;IAEX,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;IAEjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC"}
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAEzC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,QAAQ,GAAG,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,CAAC;IAEzE,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,IAAI;SACf,CAAC;KACM,CAAC;IAEX,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;IAEjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { BaseCommand } from '../base.js';
2
+ export default class Health extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ readonly endpoint: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
+ readonly timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
8
+ readonly port: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ readonly verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ readonly json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ readonly backend: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ readonly authToken: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ readonly project: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
+ readonly team: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
+ readonly env: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
16
+ };
17
+ catch(error: any): Promise<void>;
18
+ run(): Promise<void>;
19
+ private verifyLocalServer;
20
+ private checkEndpoints;
21
+ private checkSingleEndpoint;
22
+ private outputResults;
23
+ }
24
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA+MzC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,SAC2D;IAE7E,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAkCD;IAEL,KAAK,CAAC,KAAK,EAAE,GAAG;IAIT,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA0DnB,iBAAiB;YAiCjB,cAAc;YA2Bd,mBAAmB;IAyCjC,OAAO,CAAC,aAAa;CAetB"}
@@ -0,0 +1,313 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { VERCEL_403_ERROR_MESSAGE } from '@workflow/errors';
3
+ import { getWorkflowPort } from '@workflow/utils/get-port';
4
+ import chalk from 'chalk';
5
+ import { BaseCommand } from '../base.js';
6
+ import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
7
+ import { cliFlags } from '../lib/inspect/flags.js';
8
+ import { setupCliWorld } from '../lib/inspect/setup.js';
9
+ function formatHealthyResult(endpoint, latencyMs) {
10
+ return (chalk.green(` ✓ ${endpoint} endpoint is healthy`) +
11
+ chalk.gray(` (${latencyMs}ms)`));
12
+ }
13
+ function formatUnhealthyResult(endpoint, error) {
14
+ const errorSuffix = error ? chalk.gray(` - ${error}`) : '';
15
+ return chalk.red(` ✗ ${endpoint} endpoint is unhealthy`) + errorSuffix;
16
+ }
17
+ function getEndpointsToCheck(endpointFlag) {
18
+ return endpointFlag === 'both'
19
+ ? ['workflow', 'step']
20
+ : [endpointFlag];
21
+ }
22
+ function printSummary(results, backend) {
23
+ const allHealthy = results.every((r) => r.healthy);
24
+ logger.log('');
25
+ if (allHealthy) {
26
+ logger.log(chalk.green('All endpoints are healthy!'));
27
+ }
28
+ else {
29
+ const unhealthyCount = results.filter((r) => !r.healthy).length;
30
+ logger.log(chalk.red(`${unhealthyCount} of ${results.length} endpoint(s) unhealthy`));
31
+ // Provide helpful hints for common issues
32
+ if (backend === 'local' || backend === '@workflow/world-local') {
33
+ logger.log('');
34
+ logger.log(chalk.yellow('Hint: For local health checks, ensure:'));
35
+ logger.log(chalk.yellow(' 1. Your development server is running'));
36
+ logger.log(chalk.yellow(' 2. The server is accessible at the configured URL'));
37
+ }
38
+ }
39
+ }
40
+ function logPortDetectionDebug(explicitPort, detectedPort) {
41
+ logger.debug(`Explicit port flag: ${explicitPort || '(not set)'}`);
42
+ logger.debug(`PORT env: ${process.env.PORT || '(not set)'}`);
43
+ logger.debug(`WORKFLOW_LOCAL_BASE_URL env: ${process.env.WORKFLOW_LOCAL_BASE_URL || '(not set)'}`);
44
+ logger.debug(`Detected/resolved port: ${detectedPort || '(none)'}`);
45
+ }
46
+ // Default port for local development servers
47
+ const DEFAULT_LOCAL_PORT = 3000;
48
+ function resolveLocalBaseUrl(explicitPort, detectedPort) {
49
+ if (explicitPort) {
50
+ return `http://localhost:${explicitPort}`;
51
+ }
52
+ if (process.env.WORKFLOW_LOCAL_BASE_URL) {
53
+ return process.env.WORKFLOW_LOCAL_BASE_URL;
54
+ }
55
+ if (process.env.PORT) {
56
+ return `http://localhost:${process.env.PORT}`;
57
+ }
58
+ if (detectedPort) {
59
+ return `http://localhost:${detectedPort}`;
60
+ }
61
+ // Fall back to default port 3000 (common for Next.js, Nuxt, etc.)
62
+ return `http://localhost:${DEFAULT_LOCAL_PORT}`;
63
+ }
64
+ async function testHttpHealthEndpoint(baseUrl, endpoint, verbose) {
65
+ try {
66
+ const healthUrl = `${baseUrl}/.well-known/workflow/v1/${endpoint}?__health`;
67
+ if (verbose) {
68
+ logger.debug(`Testing HTTP health at: ${healthUrl}`);
69
+ }
70
+ const response = await fetch(healthUrl, {
71
+ method: 'POST',
72
+ signal: AbortSignal.timeout(5000),
73
+ });
74
+ if (response.ok) {
75
+ return { ok: true, status: response.status };
76
+ }
77
+ if (verbose) {
78
+ logger.debug(`HTTP health check returned status: ${response.status}`);
79
+ }
80
+ return { ok: false, status: response.status };
81
+ }
82
+ catch (err) {
83
+ const errorMessage = err instanceof Error ? err.message : String(err);
84
+ if (verbose) {
85
+ logger.debug(`HTTP health check failed: ${errorMessage}`);
86
+ }
87
+ return { ok: false, error: errorMessage };
88
+ }
89
+ }
90
+ /**
91
+ * For local backend, verify the server is accessible before attempting health check.
92
+ * Returns the base URL if accessible, or throws an error with a helpful message.
93
+ */
94
+ async function verifyLocalServerAccessible(verbose, explicitPort) {
95
+ const detectedPort = explicitPort ?? (await getWorkflowPort());
96
+ if (verbose) {
97
+ logPortDetectionDebug(explicitPort, detectedPort);
98
+ }
99
+ const baseUrl = resolveLocalBaseUrl(explicitPort, detectedPort);
100
+ if (verbose) {
101
+ logger.debug(`Resolved base URL: ${baseUrl}`);
102
+ }
103
+ const result = await testHttpHealthEndpoint(baseUrl, 'flow', verbose);
104
+ if (result.ok) {
105
+ return baseUrl;
106
+ }
107
+ const portHint = baseUrl === `http://localhost:${DEFAULT_LOCAL_PORT}`
108
+ ? 'If your server runs on a different port, use --port <port> or set WORKFLOW_LOCAL_BASE_URL'
109
+ : `Hint: Use --port <port> or set WORKFLOW_LOCAL_BASE_URL=http://localhost:<port>`;
110
+ throw new Error(`Cannot reach local server at ${baseUrl}. Make sure your development server is running.\n` +
111
+ portHint);
112
+ }
113
+ function isLocalBackend(backend) {
114
+ return backend === 'local' || backend === '@workflow/world-local';
115
+ }
116
+ function logWorldConfig() {
117
+ logger.debug(`Data directory: ${process.env.WORKFLOW_LOCAL_DATA_DIR || '(not set)'}`);
118
+ logger.debug(`Base URL: ${process.env.WORKFLOW_LOCAL_BASE_URL || '(not set)'}`);
119
+ logger.debug(`PORT: ${process.env.PORT || '(not set)'}`);
120
+ }
121
+ async function runHealthCheckWithLogging(healthCheck, world, endpoint, timeout, verbose) {
122
+ try {
123
+ if (verbose) {
124
+ logger.debug(`Starting health check for ${endpoint}...`);
125
+ }
126
+ const result = await healthCheck(world, endpoint, { timeout });
127
+ if (verbose) {
128
+ logger.debug(`Health check for ${endpoint} completed: ${JSON.stringify(result)}`);
129
+ }
130
+ return result;
131
+ }
132
+ catch (error) {
133
+ const errorMessage = error instanceof Error ? error.message : String(error);
134
+ if (verbose) {
135
+ logger.debug(`Health check for ${endpoint} threw: ${errorMessage}`);
136
+ }
137
+ return {
138
+ healthy: false,
139
+ error: errorMessage || 'Unknown error during health check',
140
+ };
141
+ }
142
+ }
143
+ export default class Health extends BaseCommand {
144
+ static description = 'Check health of workflow and step endpoints via queue-based health check';
145
+ static examples = [
146
+ '$ workflow health',
147
+ '$ workflow health --endpoint workflow',
148
+ '$ workflow health --endpoint step --timeout 60000',
149
+ '$ workflow health --backend vercel --project my-project --team my-team',
150
+ ];
151
+ static flags = {
152
+ endpoint: Flags.string({
153
+ char: 'e',
154
+ description: 'Which endpoint(s) to check',
155
+ options: ['workflow', 'step', 'both'],
156
+ default: 'both',
157
+ helpGroup: 'Health Check',
158
+ helpLabel: '-e, --endpoint',
159
+ helpValue: ['workflow', 'step', 'both'],
160
+ }),
161
+ timeout: Flags.integer({
162
+ char: 't',
163
+ description: 'Timeout in milliseconds for health check',
164
+ default: 30000,
165
+ helpGroup: 'Health Check',
166
+ helpLabel: '-t, --timeout',
167
+ helpValue: 'MS',
168
+ }),
169
+ port: Flags.integer({
170
+ char: 'p',
171
+ description: 'Local server port (for local backend)',
172
+ required: false,
173
+ helpGroup: 'Health Check',
174
+ helpLabel: '-p, --port',
175
+ helpValue: 'PORT',
176
+ }),
177
+ // Include relevant flags from cliFlags (excluding ones not relevant to health check)
178
+ verbose: cliFlags.verbose,
179
+ json: cliFlags.json,
180
+ backend: cliFlags.backend,
181
+ authToken: cliFlags.authToken,
182
+ project: cliFlags.project,
183
+ team: cliFlags.team,
184
+ env: cliFlags.env,
185
+ };
186
+ async catch(error) {
187
+ handleHealthCheckError(error);
188
+ }
189
+ async run() {
190
+ const { flags } = await this.parse(Health);
191
+ // For local backend, set up port configuration early
192
+ if (isLocalBackend(flags.backend)) {
193
+ // If user specifies a port, set the env var so the World uses it
194
+ if (flags.port) {
195
+ process.env.WORKFLOW_LOCAL_BASE_URL = `http://localhost:${flags.port}`;
196
+ }
197
+ // Set default WORKFLOW_LOCAL_BASE_URL if not already set
198
+ // We use WORKFLOW_LOCAL_BASE_URL instead of PORT to avoid conflicts
199
+ // with other tools (like Next.js) that also use the PORT env var
200
+ if (!process.env.WORKFLOW_LOCAL_BASE_URL && !process.env.PORT) {
201
+ process.env.WORKFLOW_LOCAL_BASE_URL = `http://localhost:${DEFAULT_LOCAL_PORT}`;
202
+ }
203
+ // Verify the server is accessible before proceeding
204
+ const accessible = await this.verifyLocalServer(flags.json, flags.verbose, flags.port);
205
+ if (!accessible) {
206
+ process.exit(1);
207
+ }
208
+ }
209
+ const world = await setupCliWorld(flags, this.config.version);
210
+ if (!world) {
211
+ throw new Error('Failed to connect to backend. Check your configuration.');
212
+ }
213
+ const { healthCheck } = await import('@workflow/core/runtime');
214
+ const endpoints = getEndpointsToCheck(flags.endpoint);
215
+ if (!flags.json) {
216
+ const backendName = flags.backend === 'local' ? 'local server' : flags.backend;
217
+ logger.log(chalk.gray(`Running queue-based health check against ${backendName}...`));
218
+ logger.log('');
219
+ }
220
+ const results = await this.checkEndpoints(endpoints, healthCheck, world, {
221
+ timeout: flags.timeout,
222
+ json: flags.json,
223
+ verbose: flags.verbose,
224
+ });
225
+ this.outputResults(results, flags.json, flags.backend);
226
+ const allHealthy = results.every((r) => r.healthy);
227
+ process.exit(allHealthy ? 0 : 1);
228
+ }
229
+ async verifyLocalServer(jsonMode, verbose, port) {
230
+ if (!jsonMode) {
231
+ logger.log(chalk.gray('Checking local server accessibility...'));
232
+ }
233
+ try {
234
+ const baseUrl = await verifyLocalServerAccessible(verbose, port);
235
+ if (!jsonMode) {
236
+ logger.log(chalk.green(` ✓ Local server accessible at ${baseUrl}`));
237
+ logger.log('');
238
+ }
239
+ return true;
240
+ }
241
+ catch (error) {
242
+ const errorMessage = error instanceof Error ? error.message : String(error);
243
+ if (jsonMode) {
244
+ console.log(JSON.stringify({
245
+ results: [],
246
+ allHealthy: false,
247
+ error: errorMessage,
248
+ }));
249
+ }
250
+ else {
251
+ logger.error(errorMessage);
252
+ }
253
+ return false;
254
+ }
255
+ }
256
+ async checkEndpoints(endpoints, healthCheck, world, flags) {
257
+ if (flags.verbose) {
258
+ logWorldConfig();
259
+ }
260
+ const results = [];
261
+ for (const endpoint of endpoints) {
262
+ const result = await this.checkSingleEndpoint(endpoint, healthCheck, world, flags);
263
+ results.push(result);
264
+ }
265
+ return results;
266
+ }
267
+ async checkSingleEndpoint(endpoint, healthCheck, world, flags) {
268
+ const startTime = Date.now();
269
+ if (!flags.json) {
270
+ logger.log(`Checking ${endpoint} endpoint...`);
271
+ }
272
+ const result = await runHealthCheckWithLogging(healthCheck, world, endpoint, flags.timeout, flags.verbose);
273
+ const latencyMs = Date.now() - startTime;
274
+ if (!flags.json) {
275
+ const message = result.healthy
276
+ ? formatHealthyResult(endpoint, latencyMs)
277
+ : formatUnhealthyResult(endpoint, result.error);
278
+ logger.log(message);
279
+ }
280
+ return {
281
+ endpoint,
282
+ healthy: result.healthy,
283
+ error: result.error,
284
+ latencyMs,
285
+ };
286
+ }
287
+ outputResults(results, jsonMode, backend) {
288
+ if (jsonMode) {
289
+ const jsonOutput = {
290
+ results,
291
+ allHealthy: results.every((r) => r.healthy),
292
+ };
293
+ console.log(JSON.stringify(jsonOutput, null, 2));
294
+ }
295
+ else {
296
+ printSummary(results, backend);
297
+ }
298
+ }
299
+ }
300
+ function handleHealthCheckError(error) {
301
+ if (error?.status === 403) {
302
+ logger.error(VERCEL_403_ERROR_MESSAGE);
303
+ }
304
+ else if (LOGGING_CONFIG.VERBOSE_MODE) {
305
+ logger.error(error);
306
+ }
307
+ else {
308
+ const errorMessage = error?.message || String(error) || 'Unknown error';
309
+ logger.error(`Error: ${errorMessage}`);
310
+ }
311
+ process.exit(1);
312
+ }
313
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,12 @@ export default class Inspect extends BaseCommand {
18
18
  readonly team: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
19
  readonly env: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
20
  readonly web: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ readonly webPort: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
21
22
  readonly noBrowser: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ readonly localUi: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
24
  readonly sort: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
23
25
  readonly limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
26
+ readonly interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
27
  readonly runId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
28
  readonly stepId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
29
  readonly hookId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmBzC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAOb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAetB,MAAM,CAAC,IAAI;;;MA+BA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;MA6CD;IAEE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmGlC"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmBzC,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAOb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IActB,MAAM,CAAC,IAAI;;;MA+BA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;MA6CD;IAEE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4GlC"}
@@ -1,8 +1,9 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
+ import { VERCEL_403_ERROR_MESSAGE } from '@workflow/errors';
2
3
  import { BaseCommand } from '../base.js';
3
4
  import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
4
5
  import { cliFlags } from '../lib/inspect/flags.js';
5
- import { listEvents, listHooks, listRuns, listSleeps, listSteps, listStreams, showHook, showRun, showStep, showStream, } from '../lib/inspect/output.js';
6
+ import { listEvents, listHooks, listRuns, listSleeps, listSteps, listStreamsByRunId, showHook, showRun, showStep, showStream, } from '../lib/inspect/output.js';
6
7
  import { setupCliWorld } from '../lib/inspect/setup.js';
7
8
  import { launchWebUI } from '../lib/inspect/web.js';
8
9
  export default class Inspect extends BaseCommand {
@@ -19,7 +20,7 @@ export default class Inspect extends BaseCommand {
19
20
  async catch(error) {
20
21
  // Check if this is a 403 error from the Vercel backend
21
22
  if (error?.status === 403) {
22
- const message = 'Your current vercel account does not have access to this workflow run. Please use `vercel login` to login, or use `vercel switch` to ensure you can access the correct team.';
23
+ const message = VERCEL_403_ERROR_MESSAGE;
23
24
  logger.error(message);
24
25
  }
25
26
  else if (LOGGING_CONFIG.VERBOSE_MODE) {
@@ -116,13 +117,19 @@ export default class Inspect extends BaseCommand {
116
117
  process.exit(1);
117
118
  }
118
119
  const id = args.id;
119
- const world = await setupCliWorld(flags, this.config.version);
120
+ // For web mode, allow config errors so we can open the web UI for configuration
121
+ const isWebMode = flags.web || resource === 'web';
122
+ const world = await setupCliWorld(flags, this.config.version, isWebMode);
120
123
  // Handle web UI mode
121
- if (flags.web || resource === 'web') {
124
+ if (isWebMode) {
122
125
  const actualResource = resource === 'web' ? 'run' : resource;
123
126
  await launchWebUI(actualResource, id, flags, this.config.version);
124
127
  process.exit(0);
125
128
  }
129
+ // For non-web commands, we need a valid world
130
+ if (!world) {
131
+ throw new Error('Failed to connect to backend. Check your configuration.');
132
+ }
126
133
  // Convert flags to InspectCLIOptions with proper typing
127
134
  const options = toInspectOptions(flags);
128
135
  if (resource === 'run') {
@@ -148,7 +155,7 @@ export default class Inspect extends BaseCommand {
148
155
  await showStream(world, id, options);
149
156
  }
150
157
  else {
151
- await listStreams(world, options);
158
+ await listStreamsByRunId(world, options);
152
159
  }
153
160
  process.exit(0);
154
161
  }
@@ -201,6 +208,7 @@ function toInspectOptions(flags) {
201
208
  workflowName: flags.workflowName,
202
209
  withData: flags.withData,
203
210
  backend: flags.backend,
211
+ interactive: flags.interactive,
204
212
  };
205
213
  }
206
214
  function normalizeResource(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,12 @@ export default class Start extends BaseCommand {
18
18
  team: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
19
  env: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
20
  web: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ webPort: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
21
22
  noBrowser: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ localUi: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
24
  sort: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
23
25
  limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
26
+ interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
27
  };
25
28
  run(): Promise<void>;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,SAAsB;IAExC,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAGb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAOtB,MAAM,CAAC,IAAI;;;MAaA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;MAAY;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAWlC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,SAAsB;IAExC,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAGb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAOtB,MAAM,CAAC,IAAI;;;MAaA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAAY;IAEX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBlC"}
@@ -37,6 +37,9 @@ export default class Start extends BaseCommand {
37
37
  const restArgs = fixedArgIndex !== -1 ? argv.slice(fixedArgIndex + 1) : [];
38
38
  const stringArgs = restArgs.map((arg) => String(arg));
39
39
  const world = await setupCliWorld(flags, this.config.version);
40
+ if (!world) {
41
+ throw new Error('Failed to connect to backend. Check your configuration.');
42
+ }
40
43
  await startRun(world, args.workflowName, flags, stringArgs);
41
44
  }
42
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;IAExC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,QAAQ,GAAG;QAChB,yCAAyC;QACzC,mCAAmC;KACpC,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;YACxB,WAAW,EACT,yFAAyF;YAC3F,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE;gBACX,0EAA0E;gBAC1E,oJAAoJ;aACrJ,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;KACM,CAAC;IAEX,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;IAEjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;IAExC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,QAAQ,GAAG;QAChB,yCAAyC;QACzC,mCAAmC;KACpC,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,KAAU;QACpB,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;YACxB,WAAW,EACT,yFAAyF;YAC3F,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE;gBACX,0EAA0E;gBAC1E,oJAAoJ;aACrJ,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;KACM,CAAC;IAEX,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;IAEjB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC"}
@@ -17,9 +17,12 @@ export default class Web extends BaseCommand {
17
17
  readonly team: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
18
18
  readonly env: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
19
  readonly web: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ readonly webPort: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
20
21
  readonly noBrowser: import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ readonly localUi: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
23
  readonly sort: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
22
24
  readonly limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
25
+ readonly interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
26
  };
24
27
  run(): Promise<void>;
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,WAAW;IAC1C,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAIb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAetB,MAAM,CAAC,IAAI;;MAKA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;MAED;IAEE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiBlC"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,WAAW;IAC1C,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAIb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IActB,MAAM,CAAC,IAAI;;MAKA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAED;IAEE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBlC"}
@@ -1,4 +1,5 @@
1
1
  import { Args } from '@oclif/core';
2
+ import { VERCEL_403_ERROR_MESSAGE } from '@workflow/errors';
2
3
  import { BaseCommand } from '../base.js';
3
4
  import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
4
5
  import { cliFlags } from '../lib/inspect/flags.js';
@@ -15,7 +16,7 @@ export default class Web extends BaseCommand {
15
16
  async catch(error) {
16
17
  // Check if this is a 403 error from the Vercel backend
17
18
  if (error?.status === 403) {
18
- const message = 'Your current vercel account does not have access to this workflow run. Please use `vercel login` to login, or use `vercel switch` to ensure you can access the correct team.';
19
+ const message = VERCEL_403_ERROR_MESSAGE;
19
20
  logger.error(message);
20
21
  }
21
22
  else if (LOGGING_CONFIG.VERBOSE_MODE) {
@@ -42,7 +43,8 @@ export default class Web extends BaseCommand {
42
43
  const id = args.id;
43
44
  // Setup the CLI world to write env vars from flags
44
45
  // This ensures backend, authToken, team, project, etc. are properly set
45
- await setupCliWorld(flags, this.config.version);
46
+ // Don't throw on config errors - let the web UI handle them
47
+ await setupCliWorld(flags, this.config.version, true);
46
48
  // Launch web UI with 'run' as the default resource
47
49
  await launchWebUI('run', id, flags, this.config.version);
48
50
  process.exit(0);