@workflow/cli 4.2.2 → 4.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/lib/inspect/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/lib/inspect/web.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Server } from 'node:http';\nimport chalk from 'chalk';\nimport open from 'open';\nimport { logger } from '../config/log.js';\nimport { getEnvVars } from './env.js';\nimport { getVercelDashboardUrl } from './vercel-api.js';\n\nexport const getHostUrl = (webPort: number) => `http://localhost:${webPort}`;\n\nlet httpServer: Server | null = null;\n\n/**\n * Check if a server is already listening on the given URL.\n */\nasync function isServerRunning(hostUrl: string): Promise<boolean> {\n try {\n const response = await fetch(hostUrl, { method: 'HEAD' });\n return response.ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Start the @workflow/web server in the current process.\n */\nasync function startWebServer(webPort: number): Promise<boolean> {\n if (await isServerRunning(getHostUrl(webPort))) {\n logger.debug('Server is already running');\n return true;\n }\n\n try {\n logger.info('Starting web UI server...');\n const { startServer } = await import('@workflow/web/server');\n httpServer = await startServer(webPort);\n logger.success(chalk.green(`Web UI server started on port ${webPort}`));\n return true;\n } catch (error) {\n logger.error(`Failed to start server: ${error}`);\n return false;\n }\n}\n\n/**\n * Build a URL for opening the local web UI.\n *\n * The web UI reads world configuration from server-side environment variables.\n * Query params are only used for deep-linking to specific resources (resource/id, runId, etc.)\n */\nfunction buildWebUIUrl(\n hostUrl: string,\n resource: string,\n id: string | undefined,\n flags: Record<string, any>\n): string {\n const params = new URLSearchParams();\n\n // Deep-linking params\n params.set('resource', resource);\n if (id) {\n params.set('id', id);\n }\n\n // Optional deep-linking to specific run/step/hook\n for (const flagName of ['runId', 'stepId', 'hookId'] as const) {\n const value = flags[flagName];\n if (value !== undefined && value !== '' && value !== false) {\n params.set(flagName, String(value));\n }\n }\n\n const queryString = params.toString();\n return queryString ? `${hostUrl}?${queryString}` : hostUrl;\n}\n\n/**\n * Launch the web UI with the specified configuration.\n * This starts the server (if not running), opens the browser, then keeps the server running.\n *\n * World configuration is passed to the web server via environment variables.\n * The web UI reads these from process.env on the server side, not from query params.\n */\nexport async function launchWebUI(\n resource: string,\n id: string | undefined,\n flags: Record<string, any>,\n _cliVersion: string\n): Promise<void> {\n const envVars = getEnvVars();\n\n // Check if browser opening is disabled via flag or environment variable\n const disableBrowserOpen = flags.noBrowser;\n\n // Check if we should try to use the Vercel dashboard\n const vercelBackendNames = ['vercel', '@workflow/world-vercel'];\n const isVercelBackend = vercelBackendNames.includes(\n envVars.WORKFLOW_TARGET_WORLD\n );\n const teamSlug = envVars.WORKFLOW_VERCEL_TEAM;\n const projectName =\n envVars.WORKFLOW_VERCEL_PROJECT_NAME || envVars.WORKFLOW_VERCEL_PROJECT;\n\n // Check if user wants local UI via flag or environment variable\n const useLocalUi = flags.localUi;\n\n if (!useLocalUi && isVercelBackend) {\n logger.info(\n 'If you do not want to use the Vercel dashboard, use the --localUi flag or set WORKFLOW_LOCAL_UI=1 in your environment variables.'\n );\n }\n if (isVercelBackend && teamSlug && projectName && !useLocalUi) {\n logger.debug(\n `Checking Vercel dashboard availability for team: ${teamSlug}, project: ${projectName}`\n );\n\n const dashboardUrl = getVercelDashboardUrl(\n teamSlug,\n projectName,\n resource,\n id\n );\n\n if (disableBrowserOpen) {\n logger.info(chalk.cyan(`Vercel dashboard URL: ${dashboardUrl}`));\n logger.info(chalk.cyan('(Browser auto-open disabled)'));\n return;\n }\n\n logger.info(\n chalk.green(`Opening Vercel dashboard for workflows at: ${dashboardUrl}`)\n );\n try {\n await open(dashboardUrl);\n return; // Exit early since we opened the dashboard\n } catch (error) {\n logger.error(`Failed to open browser: ${error}`);\n logger.info(`Please open the link manually.`);\n return;\n }\n }\n\n // Fall back to local web UI\n const webPort = flags.webPort ?? 3456;\n const hostUrl = getHostUrl(webPort);\n const url = buildWebUIUrl(hostUrl, resource, id, flags);\n\n // Check if server is already running\n const alreadyRunning = await isServerRunning(hostUrl);\n\n if (alreadyRunning) {\n logger.info(\n chalk.cyan(`Web UI server is already running on port ${webPort}.`)\n );\n } else {\n // Start the server\n const started = await startWebServer(webPort);\n if (!started) {\n logger.error('Failed to start web UI server');\n return;\n }\n }\n\n // Open browser\n if (disableBrowserOpen) {\n logger.info(chalk.cyan(`Web UI available at: ${url}`));\n logger.info(chalk.cyan('(Browser auto-open disabled)'));\n } else {\n logger.info(chalk.cyan(`Opening browser to: ${url}`));\n try {\n await open(url);\n } catch (error) {\n logger.error(`Failed to open browser: ${error}`);\n logger.info(`Please open the link manually.`);\n }\n }\n\n // If we started the server, keep the process running\n if (!alreadyRunning && httpServer) {\n logger.info(chalk.cyan('Press Ctrl+C to stop the web UI server and exit'));\n\n // Keep the CLI process alive while the server is running\n await new Promise<void>((resolve) => {\n if (httpServer) {\n httpServer.on('close', () => resolve());\n } else {\n resolve();\n }\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/lib/update-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/lib/update-check.ts"],"names":[],"mappings":"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","sourcesContent":["import { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport XDGAppPaths from 'xdg-app-paths';\nimport { logger } from './config/log.js';\n\n// Constants\nconst PACKAGE_NAME = '@workflow/cli';\nconst NPM_REGISTRY = 'https://registry.npmjs.org';\nconst CACHE_DURATION_MS = 3 * 24 * 60 * 60 * 1000; // 3 days\nconst REQUEST_TIMEOUT_MS = 5000;\nconst VERSION_CHECK_CACHE_FILENAME = 'version-check.json';\n\n// Get XDG-compliant cache directory for workflow\nconst getXDGAppPaths = (app: string) => {\n return (\n XDGAppPaths as unknown as (app: string) => { dataDirs: () => string[] }\n )(app);\n};\n\n/**\n * Get the cache file path for version checks.\n */\nexport function getVersionCheckCacheFile(): string {\n const dirs = getXDGAppPaths('workflow').dataDirs();\n return join(dirs[0], VERSION_CHECK_CACHE_FILENAME);\n}\n\ninterface VersionCheckResult {\n currentVersion: string;\n latestVersion?: string;\n needsUpdate: boolean;\n}\n\ninterface CachedVersionData {\n currentVersion: string;\n latestVersion: string;\n timestamp: number;\n}\n\n/**\n * Compare two semver versions including pre-release tags\n * Returns true if version a is greater than version b\n */\nfunction compareVersions(a: string, b: string): boolean {\n const parseVersion = (v: string) => {\n const [base, prerelease] = v.split('-');\n const parts = base.split('.').map(Number);\n return { parts, prerelease };\n };\n\n const comparePrerelease = (\n pre1: string | undefined,\n pre2: string | undefined\n ): number => {\n if (!pre1 && !pre2) return 0; // both no prerelease\n if (!pre1 && pre2) return 1; // no prerelease > prerelease\n if (pre1 && !pre2) return -1; // prerelease < no prerelease\n if (typeof pre1 !== 'string' || typeof pre2 !== 'string') return 0;\n\n // Both have prerelease - compare them properly\n const parts1 = pre1.split('.');\n const parts2 = pre2.split('.');\n\n for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {\n const p1 = parts1[i];\n const p2 = parts2[i];\n\n // If one side is missing, it's less than the other\n if (p1 === undefined) return -1;\n if (p2 === undefined) return 1;\n\n // Try to parse as numbers for numeric comparison\n const num1 = Number(p1);\n const num2 = Number(p2);\n const isNum1 = !Number.isNaN(num1) && p1 !== '';\n const isNum2 = !Number.isNaN(num2) && p2 !== '';\n\n if (isNum1 && isNum2) {\n // Both are numbers - compare numerically\n if (num1 > num2) return 1;\n if (num1 < num2) return -1;\n } else {\n // At least one is non-numeric - compare as strings\n if (p1 > p2) return 1;\n if (p1 < p2) return -1;\n }\n }\n\n return 0; // equal\n };\n\n const versionA = parseVersion(a);\n const versionB = parseVersion(b);\n\n // Compare major, minor, patch\n for (let i = 0; i < 3; i++) {\n if (versionA.parts[i] > versionB.parts[i]) return true;\n if (versionA.parts[i] < versionB.parts[i]) return false;\n }\n\n // If versions are equal up to patch level, check prerelease\n // No prerelease is considered greater than prerelease\n const preResult = comparePrerelease(versionA.prerelease, versionB.prerelease);\n return preResult > 0;\n}\n\n/**\n * Fetch the latest version from npm registry\n */\nasync function fetchLatestVersion(\n currentVersion: string\n): Promise<string | null> {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n\n const url = `${NPM_REGISTRY}/${PACKAGE_NAME}`;\n logger.debug(`Checking for updates at ${url}`);\n\n const response = await fetch(url, {\n headers: {\n Accept: 'application/json',\n },\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n logger.debug(\n `Failed to fetch package info: ${response.status} ${response.statusText}`\n );\n return null;\n }\n\n const data = (await response.json()) as {\n 'dist-tags': { [tag: string]: string };\n };\n\n const latestVersion = data['dist-tags']['latest'];\n if (!latestVersion) {\n logger.debug('No latest version found in registry');\n return null;\n }\n\n logger.debug(`Current: ${currentVersion}, Latest: ${latestVersion}`);\n return latestVersion;\n } catch (error) {\n if (error instanceof Error && error.name === 'AbortError') {\n logger.debug('Version check timed out after 5 seconds');\n } else {\n logger.debug(`Error fetching version: ${error}`);\n }\n return null;\n }\n}\n\n/**\n * Check if there's a new version available\n * Returns the current and latest version if an update is available\n */\nexport async function checkForUpdate(\n currentVersion: string\n): Promise<VersionCheckResult> {\n const latestVersion = await fetchLatestVersion(currentVersion);\n\n if (!latestVersion) {\n return {\n currentVersion,\n needsUpdate: false,\n };\n }\n\n // Don't suggest prerelease updates to users on stable versions\n const currentIsStable = !currentVersion.includes('-');\n const latestIsPrerelease = latestVersion.includes('-');\n const needsUpdate =\n !(currentIsStable && latestIsPrerelease) &&\n compareVersions(latestVersion, currentVersion);\n\n return {\n currentVersion,\n latestVersion,\n needsUpdate,\n };\n}\n\n/**\n * Read cached version data from file\n */\nasync function readCache(cacheFile: string): Promise<CachedVersionData | null> {\n try {\n const content = await readFile(cacheFile, 'utf-8');\n const data = JSON.parse(content) as CachedVersionData;\n return data;\n } catch {\n return null;\n }\n}\n\n/**\n * Write version data to cache file\n */\nasync function writeCache(\n cacheFile: string,\n data: CachedVersionData\n): Promise<void> {\n try {\n await mkdir(dirname(cacheFile), { recursive: true });\n await writeFile(cacheFile, JSON.stringify(data, null, 2));\n } catch (error) {\n logger.debug(`Failed to write version cache: ${error}`);\n }\n}\n\n/**\n * Check if cache is still valid\n */\nasync function isCacheValid(\n cacheFile: string,\n currentVersion: string\n): Promise<boolean> {\n try {\n const cached = await readCache(cacheFile);\n if (!cached) return false;\n\n // Cache is invalid if version changed\n if (cached.currentVersion !== currentVersion) {\n logger.debug('Version changed, cache invalidated');\n return false;\n }\n\n // Check if cache is still fresh\n const now = Date.now();\n const age = now - cached.timestamp;\n const isValid = age < CACHE_DURATION_MS;\n\n if (!isValid) {\n logger.debug(\n `Cache expired (age: ${Math.floor(age / 1000 / 60)} minutes)`\n );\n }\n\n return isValid;\n } catch {\n return false;\n }\n}\n\n/**\n * Check for updates with filesystem caching\n * Cache is valid unless the local version changes\n *\n * Set WORKFLOW_NO_UPDATE_CHECK=1 to skip the update check entirely.\n */\nexport async function checkForUpdateCached(\n currentVersion: string\n): Promise<VersionCheckResult> {\n if (process.env.WORKFLOW_NO_UPDATE_CHECK === '1') {\n logger.debug('Skipping update check (WORKFLOW_NO_UPDATE_CHECK=1)');\n return { currentVersion, needsUpdate: false };\n }\n\n const cacheFile = getVersionCheckCacheFile();\n\n // Check if cache is valid\n if (await isCacheValid(cacheFile, currentVersion)) {\n logger.debug('Using cached version check result');\n const cached = await readCache(cacheFile);\n if (cached) {\n // Don't suggest prerelease updates to users on stable versions\n const currentIsStable = !cached.currentVersion.includes('-');\n const latestIsPrerelease = cached.latestVersion.includes('-');\n return {\n currentVersion: cached.currentVersion,\n latestVersion: cached.latestVersion,\n needsUpdate:\n !(currentIsStable && latestIsPrerelease) &&\n compareVersions(cached.latestVersion, cached.currentVersion),\n };\n }\n }\n\n // Perform fresh check\n logger.debug('Performing fresh version check');\n const result = await checkForUpdate(currentVersion);\n\n // Cache the result if we got a latest version\n if (result.latestVersion) {\n await writeCache(cacheFile, {\n currentVersion: result.currentVersion,\n latestVersion: result.latestVersion,\n timestamp: Date.now(),\n });\n }\n\n return result;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/cli",
3
- "version": "4.2.2",
3
+ "version": "4.2.3",
4
4
  "description": "Command-line interface for Workflow SDK",
5
5
  "type": "module",
6
6
  "bin": {
@@ -55,15 +55,15 @@
55
55
  "tinyglobby": "0.2.15",
56
56
  "xdg-app-paths": "5.1.0",
57
57
  "zod": "4.3.6",
58
- "@workflow/builders": "4.0.3",
58
+ "@workflow/builders": "4.0.4",
59
59
  "@workflow/swc-plugin": "4.1.0",
60
- "@workflow/utils": "4.1.0",
61
- "@workflow/errors": "4.1.0",
62
- "@workflow/core": "4.2.2",
63
- "@workflow/web": "4.1.1",
64
- "@workflow/world": "4.1.0",
65
- "@workflow/world-local": "4.1.0",
66
- "@workflow/world-vercel": "4.1.0"
60
+ "@workflow/utils": "4.1.1",
61
+ "@workflow/errors": "4.1.1",
62
+ "@workflow/core": "4.2.3",
63
+ "@workflow/web": "4.1.4",
64
+ "@workflow/world": "4.1.1",
65
+ "@workflow/world-local": "4.1.1",
66
+ "@workflow/world-vercel": "4.1.1"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "tsc && chmod +x bin/run.js",