@runflow-ai/cli 0.2.24 → 0.2.25

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,209 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.auth0Login = auth0Login;
40
+ exports.decodeJwtPayload = decodeJwtPayload;
41
+ const crypto = __importStar(require("crypto"));
42
+ const http = __importStar(require("http"));
43
+ const url = __importStar(require("url"));
44
+ const axios_1 = __importDefault(require("axios"));
45
+ const open_1 = __importDefault(require("open"));
46
+ const config_1 = require("./config");
47
+ const logger_1 = require("./logger");
48
+ function generateCodeVerifier() {
49
+ return crypto.randomBytes(32).toString('base64url');
50
+ }
51
+ function generateCodeChallenge(verifier) {
52
+ return crypto.createHash('sha256').update(verifier).digest('base64url');
53
+ }
54
+ function generateState() {
55
+ return crypto.randomBytes(16).toString('hex');
56
+ }
57
+ async function findAvailablePort() {
58
+ for (const port of config_1.AUTH0_CONFIG.callbackPorts) {
59
+ try {
60
+ await new Promise((resolve, reject) => {
61
+ const server = http.createServer();
62
+ server.once('error', reject);
63
+ server.once('listening', () => {
64
+ server.close(() => resolve());
65
+ });
66
+ server.listen(port, '127.0.0.1');
67
+ });
68
+ return port;
69
+ }
70
+ catch {
71
+ continue;
72
+ }
73
+ }
74
+ throw new Error('No available port found for callback server (tried 8630-8640)');
75
+ }
76
+ function startCallbackServer(port, expectedState) {
77
+ return new Promise((resolve, reject) => {
78
+ const timeout = setTimeout(() => {
79
+ server.close();
80
+ reject(new Error('Login timed out (5 minutes). Please try again.'));
81
+ }, 5 * 60 * 1000);
82
+ const server = http.createServer((req, res) => {
83
+ const parsedUrl = url.parse(req.url || '', true);
84
+ if (parsedUrl.pathname === '/callback') {
85
+ const code = parsedUrl.query.code;
86
+ const state = parsedUrl.query.state;
87
+ const error = parsedUrl.query.error;
88
+ const errorDescription = parsedUrl.query.error_description;
89
+ if (error) {
90
+ res.writeHead(200, { 'Content-Type': 'text/html' });
91
+ res.end(getErrorPage(errorDescription || error));
92
+ clearTimeout(timeout);
93
+ server.close();
94
+ reject(new Error(errorDescription || error));
95
+ return;
96
+ }
97
+ if (state !== expectedState) {
98
+ res.writeHead(200, { 'Content-Type': 'text/html' });
99
+ res.end(getErrorPage('Invalid state parameter. Possible CSRF attack.'));
100
+ clearTimeout(timeout);
101
+ server.close();
102
+ reject(new Error('Invalid state parameter'));
103
+ return;
104
+ }
105
+ if (!code) {
106
+ res.writeHead(200, { 'Content-Type': 'text/html' });
107
+ res.end(getErrorPage('No authorization code received'));
108
+ clearTimeout(timeout);
109
+ server.close();
110
+ reject(new Error('No authorization code received'));
111
+ return;
112
+ }
113
+ res.writeHead(200, { 'Content-Type': 'text/html' });
114
+ res.end(getSuccessPage());
115
+ clearTimeout(timeout);
116
+ server.close();
117
+ resolve(code);
118
+ }
119
+ else {
120
+ res.writeHead(404);
121
+ res.end();
122
+ }
123
+ });
124
+ server.listen(port, '127.0.0.1', () => {
125
+ (0, logger_1.logDebug)(`Callback server listening on http://127.0.0.1:${port}/callback`);
126
+ });
127
+ server.on('error', (err) => {
128
+ clearTimeout(timeout);
129
+ reject(err);
130
+ });
131
+ });
132
+ }
133
+ async function exchangeCodeForTokens(code, codeVerifier, redirectUri) {
134
+ const response = await axios_1.default.post(`${config_1.AUTH0_CONFIG.domain}/oauth/token`, {
135
+ grant_type: 'authorization_code',
136
+ client_id: config_1.AUTH0_CONFIG.clientId,
137
+ code,
138
+ code_verifier: codeVerifier,
139
+ redirect_uri: redirectUri,
140
+ });
141
+ return {
142
+ accessToken: response.data.access_token,
143
+ refreshToken: response.data.refresh_token,
144
+ idToken: response.data.id_token,
145
+ expiresIn: response.data.expires_in,
146
+ tokenType: response.data.token_type,
147
+ };
148
+ }
149
+ async function auth0Login() {
150
+ const codeVerifier = generateCodeVerifier();
151
+ const codeChallenge = generateCodeChallenge(codeVerifier);
152
+ const state = generateState();
153
+ const port = await findAvailablePort();
154
+ const redirectUri = `http://localhost:${port}/callback`;
155
+ (0, logger_1.logDebug)(`Using callback: ${redirectUri}`);
156
+ const authUrl = new URL(`${config_1.AUTH0_CONFIG.domain}/authorize`);
157
+ authUrl.searchParams.set('response_type', 'code');
158
+ authUrl.searchParams.set('client_id', config_1.AUTH0_CONFIG.clientId);
159
+ authUrl.searchParams.set('redirect_uri', redirectUri);
160
+ authUrl.searchParams.set('scope', 'openid profile email offline_access');
161
+ authUrl.searchParams.set('audience', config_1.AUTH0_CONFIG.audience);
162
+ authUrl.searchParams.set('code_challenge', codeChallenge);
163
+ authUrl.searchParams.set('code_challenge_method', 'S256');
164
+ authUrl.searchParams.set('state', state);
165
+ const codePromise = startCallbackServer(port, state);
166
+ try {
167
+ await (0, open_1.default)(authUrl.toString());
168
+ }
169
+ catch (err) {
170
+ (0, logger_1.logError)(`Could not open browser. Please visit this URL manually:\n${authUrl.toString()}`);
171
+ }
172
+ const code = await codePromise;
173
+ const tokens = await exchangeCodeForTokens(code, codeVerifier, redirectUri);
174
+ return tokens;
175
+ }
176
+ function decodeJwtPayload(token) {
177
+ const parts = token.split('.');
178
+ if (parts.length !== 3) {
179
+ throw new Error('Invalid JWT format');
180
+ }
181
+ return JSON.parse(Buffer.from(parts[1], 'base64url').toString());
182
+ }
183
+ function getSuccessPage() {
184
+ return `<!DOCTYPE html>
185
+ <html>
186
+ <head><title>Runflow CLI - Login Successful</title></head>
187
+ <body style="font-family: -apple-system, system-ui, sans-serif; display: flex; align-items: center; justify-content: center; height: 100vh; margin: 0; background: #0a0a0a; color: #fafafa;">
188
+ <div style="text-align: center; max-width: 400px;">
189
+ <h1 style="color: #22c55e; font-size: 2rem;">Login successful!</h1>
190
+ <p style="color: #a1a1aa;">This window will close automatically...</p>
191
+ </div>
192
+ <script>setTimeout(function() { window.close(); }, 1500);</script>
193
+ </body>
194
+ </html>`;
195
+ }
196
+ function getErrorPage(message) {
197
+ return `<!DOCTYPE html>
198
+ <html>
199
+ <head><title>Runflow CLI - Login Failed</title></head>
200
+ <body style="font-family: -apple-system, system-ui, sans-serif; display: flex; align-items: center; justify-content: center; height: 100vh; margin: 0; background: #0a0a0a; color: #fafafa;">
201
+ <div style="text-align: center; max-width: 400px;">
202
+ <h1 style="color: #ef4444; font-size: 2rem;">Login failed</h1>
203
+ <p style="color: #a1a1aa;">${message}</p>
204
+ <p style="color: #71717a;">Please try again in the terminal.</p>
205
+ </div>
206
+ </body>
207
+ </html>`;
208
+ }
209
+ //# sourceMappingURL=auth0-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth0-login.js","sourceRoot":"","sources":["../../src/common/auth0-login.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  export declare const DEFAULT_API_URL = "https://api.runflow.ai/api/v1/runtime";
2
2
  export interface ProfileConfig {
3
- apiKey: string;
3
+ apiKey?: string;
4
+ token?: string;
5
+ refreshToken?: string;
6
+ tokenExpiresAt?: string;
7
+ email?: string;
4
8
  api?: string;
5
9
  tenantId?: string;
6
10
  agentId?: string;
@@ -11,14 +15,29 @@ export interface MultiTenantConfig {
11
15
  profiles: Record<string, ProfileConfig>;
12
16
  }
13
17
  export interface Config {
14
- apiKey: string;
18
+ apiKey?: string;
19
+ token?: string;
20
+ refreshToken?: string;
21
+ tokenExpiresAt?: string;
22
+ email?: string;
15
23
  api?: string;
16
24
  tenantId?: string;
17
25
  agentId?: string;
26
+ tenantName?: string;
18
27
  }
28
+ export declare const AUTH0_CONFIG: {
29
+ readonly domain: "https://auth.runflow.ai";
30
+ readonly clientId: "U9oFy9oHiRC0doXj9OiV4ZWIlvJmYHHI";
31
+ readonly audience: "https://api.runflow.ai";
32
+ readonly callbackPorts: readonly [8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640];
33
+ };
34
+ export declare function isTokenExpired(profile: ProfileConfig): boolean;
35
+ export declare function isJwtAuth(profile: ProfileConfig): boolean;
36
+ export declare function updateCurrentProfileToken(token: string, expiresAt: string): void;
19
37
  export declare const ERROR_MESSAGES: {
38
+ readonly AUTH_REQUIRED: "Authentication required. Please login with: rf login";
20
39
  readonly API_KEY_REQUIRED: "API key is required. Please login first with: rf login --api-key <your-key>";
21
- readonly TENANT_NOT_SELECTED: "No tenant configured. Please login again with: rf login --api-key <your-key>";
40
+ readonly TENANT_NOT_SELECTED: "No tenant configured. Please login again with: rf login";
22
41
  readonly AGENT_NOT_SELECTED: "No agent selected. Please run: rf agents list";
23
42
  readonly AGENT_NOT_DETECTED: string;
24
43
  readonly DATA_REQUIRED: "Data parameter is required";
@@ -47,4 +66,5 @@ export declare function getValidatedConfig(): {
47
66
  config: Config;
48
67
  apiUrl: string;
49
68
  apiKey: string;
69
+ authMode: 'jwt' | 'apikey';
50
70
  };
@@ -33,7 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ERROR_MESSAGES = exports.DEFAULT_API_URL = void 0;
36
+ exports.ERROR_MESSAGES = exports.AUTH0_CONFIG = exports.DEFAULT_API_URL = void 0;
37
+ exports.isTokenExpired = isTokenExpired;
38
+ exports.isJwtAuth = isJwtAuth;
39
+ exports.updateCurrentProfileToken = updateCurrentProfileToken;
37
40
  exports.loadFullConfig = loadFullConfig;
38
41
  exports.saveProfile = saveProfile;
39
42
  exports.getCurrentProfile = getCurrentProfile;
@@ -49,9 +52,34 @@ const os = __importStar(require("os"));
49
52
  const path = __importStar(require("path"));
50
53
  const YAML = __importStar(require("yaml"));
51
54
  exports.DEFAULT_API_URL = 'https://api.runflow.ai/api/v1/runtime';
55
+ exports.AUTH0_CONFIG = {
56
+ domain: 'https://auth.runflow.ai',
57
+ clientId: 'U9oFy9oHiRC0doXj9OiV4ZWIlvJmYHHI',
58
+ audience: 'https://api.runflow.ai',
59
+ callbackPorts: [8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640],
60
+ };
61
+ function isTokenExpired(profile) {
62
+ if (!profile.tokenExpiresAt)
63
+ return true;
64
+ const expiresAt = new Date(profile.tokenExpiresAt).getTime();
65
+ return Date.now() >= expiresAt - 60_000;
66
+ }
67
+ function isJwtAuth(profile) {
68
+ return !!profile.token;
69
+ }
70
+ function updateCurrentProfileToken(token, expiresAt) {
71
+ const fullConfig = loadFullConfig();
72
+ const currentProfileName = fullConfig.currentProfile;
73
+ if (currentProfileName && fullConfig.profiles[currentProfileName]) {
74
+ fullConfig.profiles[currentProfileName].token = token;
75
+ fullConfig.profiles[currentProfileName].tokenExpiresAt = expiresAt;
76
+ fs.writeFileSync(configFile(), YAML.stringify(fullConfig));
77
+ }
78
+ }
52
79
  exports.ERROR_MESSAGES = {
80
+ AUTH_REQUIRED: 'Authentication required. Please login with: rf login',
53
81
  API_KEY_REQUIRED: 'API key is required. Please login first with: rf login --api-key <your-key>',
54
- TENANT_NOT_SELECTED: 'No tenant configured. Please login again with: rf login --api-key <your-key>',
82
+ TENANT_NOT_SELECTED: 'No tenant configured. Please login again with: rf login',
55
83
  AGENT_NOT_SELECTED: 'No agent selected. Please run: rf agents list',
56
84
  AGENT_NOT_DETECTED: 'No agent detected in current directory. Either:\n' +
57
85
  ' 1. Run from a cloned agent directory, or\n' +
@@ -163,15 +191,27 @@ function getApiUrl(config, override) {
163
191
  }
164
192
  function getValidatedConfig() {
165
193
  const config = loadConfig();
166
- const apiKey = config?.apiKey;
167
- if (!apiKey) {
168
- throw new Error(exports.ERROR_MESSAGES.API_KEY_REQUIRED);
194
+ if (!config) {
195
+ throw new Error(exports.ERROR_MESSAGES.AUTH_REQUIRED);
196
+ }
197
+ if (config.token) {
198
+ const apiUrl = getApiUrl(config);
199
+ return {
200
+ config: config,
201
+ apiUrl,
202
+ apiKey: '',
203
+ authMode: 'jwt',
204
+ };
205
+ }
206
+ if (!config.apiKey) {
207
+ throw new Error(exports.ERROR_MESSAGES.AUTH_REQUIRED);
169
208
  }
170
209
  const apiUrl = getApiUrl(config);
171
210
  return {
172
211
  config: config,
173
212
  apiUrl,
174
- apiKey
213
+ apiKey: config.apiKey,
214
+ authMode: 'apikey',
175
215
  };
176
216
  }
177
217
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/common/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/common/config.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const COMMAND_TREE = "\nUsage: rf [options] [command]\n\n\uD83D\uDE80 Main Workflow:\n login Authenticate with your API key\n switch <profile> Switch between tenants/profiles\n create Create a new agent project (\u2605 start here)\n agents <action> Manage AI agents\n\n\uD83D\uDCCA Management:\n users <action> Manage team users \n profiles List all profiles/tenants\n \n\uD83D\uDEE0\uFE0F Developer Tools:\n prompts <action> Manage prompts and templates\n credentials <action> Manage API credentials\n\nQuick Start:\n 1. rf login --api-key <your-key>\n 2. rf agents list\n 3. Select agent \u2192 clone \u2192 make changes \u2192 deploy\n\nOptions:\n --verbose Show detailed output\n --quiet Suppress output\n --version, -v Show version number\n --help, -h Show this help\n \nUse \"rf <command> --help\" for detailed information about each command.\n";
1
+ export declare const COMMAND_TREE = "\nUsage: rf [options] [command]\n\n\uD83D\uDE80 Main Workflow:\n login Authenticate (opens browser, or use --api-key)\n switch [tenant] Switch between tenants\n whoami Show current user and tenant info\n create Create a new agent project\n agents <action> Manage AI agents\n\n\uD83D\uDCCA Management:\n users <action> Manage team users\n profiles List all profiles/tenants\n\n\uD83D\uDEE0\uFE0F Developer Tools:\n prompts <action> Manage prompts and templates\n credentials <action> Manage API credentials\n\nQuick Start:\n 1. rf login (opens browser for Auth0 login)\n or: rf login --api-key <your-key>\n 2. rf agents list\n 3. Select agent \u2192 clone \u2192 make changes \u2192 deploy\n\nOptions:\n --verbose Show detailed output\n --quiet Suppress output\n --version, -v Show version number\n --help, -h Show this help\n \nUse \"rf <command> --help\" for detailed information about each command.\n";
2
2
  export declare function showTree(): void;
@@ -6,21 +6,23 @@ exports.COMMAND_TREE = `
6
6
  Usage: rf [options] [command]
7
7
 
8
8
  🚀 Main Workflow:
9
- login Authenticate with your API key
10
- switch <profile> Switch between tenants/profiles
11
- create Create a new agent project (★ start here)
9
+ login Authenticate (opens browser, or use --api-key)
10
+ switch [tenant] Switch between tenants
11
+ whoami Show current user and tenant info
12
+ create Create a new agent project
12
13
  agents <action> Manage AI agents
13
14
 
14
15
  📊 Management:
15
- users <action> Manage team users
16
+ users <action> Manage team users
16
17
  profiles List all profiles/tenants
17
-
18
+
18
19
  🛠️ Developer Tools:
19
20
  prompts <action> Manage prompts and templates
20
21
  credentials <action> Manage API credentials
21
22
 
22
23
  Quick Start:
23
- 1. rf login --api-key <your-key>
24
+ 1. rf login (opens browser for Auth0 login)
25
+ or: rf login --api-key <your-key>
24
26
  2. rf agents list
25
27
  3. Select agent → clone → make changes → deploy
26
28
 
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/common/help.ts"],"names":[],"mappings":";;;AAgCA,4BAGC;AAlCY,QAAA,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B3B,CAAC;AAEF,SAAgB,QAAQ;IAEtB,OAAO,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/common/help.ts"],"names":[],"mappings":";;;AAkCA,4BAGC;AApCY,QAAA,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B3B,CAAC;AAEF,SAAgB,QAAQ;IAEtB,OAAO,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function refreshAccessToken(): Promise<string | null>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.refreshAccessToken = refreshAccessToken;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const config_1 = require("./config");
9
+ const logger_1 = require("./logger");
10
+ async function refreshAccessToken() {
11
+ const profile = (0, config_1.getCurrentProfile)();
12
+ if (!profile?.refreshToken) {
13
+ (0, logger_1.logDebug)('No refresh token available');
14
+ return null;
15
+ }
16
+ try {
17
+ (0, logger_1.logDebug)('Refreshing access token...');
18
+ const response = await axios_1.default.post(`${config_1.AUTH0_CONFIG.domain}/oauth/token`, {
19
+ grant_type: 'refresh_token',
20
+ client_id: config_1.AUTH0_CONFIG.clientId,
21
+ refresh_token: profile.refreshToken,
22
+ }, { timeout: 10_000 });
23
+ const newToken = response.data.access_token;
24
+ const expiresIn = response.data.expires_in || 86400;
25
+ const expiresAt = new Date(Date.now() + expiresIn * 1000).toISOString();
26
+ (0, config_1.updateCurrentProfileToken)(newToken, expiresAt);
27
+ (0, logger_1.logDebug)('Access token refreshed successfully');
28
+ return newToken;
29
+ }
30
+ catch (error) {
31
+ (0, logger_1.logDebug)(`Token refresh failed: ${error.message}`);
32
+ return null;
33
+ }
34
+ }
35
+ //# sourceMappingURL=token-refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-refresh.js","sourceRoot":"","sources":["../../src/common/token-refresh.ts"],"names":[],"mappings":";;;;;AASA,gDAkCC;AA3CD,kDAA0B;AAC1B,qCAAsF;AACtF,qCAAoC;AAO7B,KAAK,UAAU,kBAAkB;IACtC,MAAM,OAAO,GAAG,IAAA,0BAAiB,GAAE,CAAC;IAEpC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;QAC3B,IAAA,iBAAQ,EAAC,4BAA4B,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAA,iBAAQ,EAAC,4BAA4B,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,qBAAY,CAAC,MAAM,cAAc,EACpC;YACE,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,qBAAY,CAAC,QAAQ;YAChC,aAAa,EAAE,OAAO,CAAC,YAAY;SACpC,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAGxE,IAAA,kCAAyB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE/C,IAAA,iBAAQ,EAAC,qCAAqC,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAA,iBAAQ,EAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function checkVersionCompatibility(cliVersion: string): Promise<void>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.checkVersionCompatibility = checkVersionCompatibility;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const config_1 = require("./config");
10
+ const logger_1 = require("./logger");
11
+ function compareSemver(a, b) {
12
+ const partsA = a.split('.').map(Number);
13
+ const partsB = b.split('.').map(Number);
14
+ for (let i = 0; i < 3; i++) {
15
+ const va = partsA[i] || 0;
16
+ const vb = partsB[i] || 0;
17
+ if (va < vb)
18
+ return -1;
19
+ if (va > vb)
20
+ return 1;
21
+ }
22
+ return 0;
23
+ }
24
+ async function checkVersionCompatibility(cliVersion) {
25
+ try {
26
+ const config = (0, config_1.loadConfig)();
27
+ if (!config?.apiKey && !config?.token)
28
+ return;
29
+ const apiUrl = (0, config_1.getApiUrl)(config);
30
+ const response = await axios_1.default.get(`${apiUrl}/health`, { timeout: 3000 });
31
+ const versions = response.data?.versions;
32
+ if (!versions)
33
+ return;
34
+ if (versions.minCliVersion && compareSemver(cliVersion, versions.minCliVersion) < 0) {
35
+ console.warn(chalk_1.default.yellow(`\nWarning: Your CLI version (${cliVersion}) is below the minimum required (${versions.minCliVersion}).`));
36
+ console.warn(chalk_1.default.yellow(' Update with: npm install -g @runflow-ai/cli\n'));
37
+ }
38
+ try {
39
+ const sdkPkg = require('@runflow-ai/sdk/package.json');
40
+ if (versions.minSdkVersion && compareSemver(sdkPkg.version, versions.minSdkVersion) < 0) {
41
+ console.warn(chalk_1.default.yellow(`\nWarning: Your SDK version (${sdkPkg.version}) is below the minimum required (${versions.minSdkVersion}).`));
42
+ console.warn(chalk_1.default.yellow(' Update with: npm install @runflow-ai/sdk@latest\n'));
43
+ }
44
+ }
45
+ catch {
46
+ }
47
+ }
48
+ catch (error) {
49
+ (0, logger_1.logDebug)(`Version check failed (non-critical): ${error.message}`);
50
+ }
51
+ }
52
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/common/version-check.ts"],"names":[],"mappings":";;;;;AA0BA,8DAmCC;AA7DD,kDAA0B;AAC1B,kDAA0B;AAC1B,qCAAiD;AACjD,qCAAoC;AAMpC,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAMM,KAAK,UAAU,yBAAyB,CAAC,UAAkB;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK;YAAE,OAAO;QAE9C,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;QAEzC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAGtB,IAAI,QAAQ,CAAC,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CAAC,gCAAgC,UAAU,oCAAoC,QAAQ,CAAC,aAAa,IAAI,CAAC,CACvH,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAChF,CAAC;QAGD,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxF,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CAAC,gCAAgC,MAAM,CAAC,OAAO,oCAAoC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAC3H,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAA,iBAAQ,EAAC,wCAAwC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -53,9 +53,11 @@ const secret_command_1 = require("./commands/secret/secret.command");
53
53
  const credentials_command_1 = require("./commands/credentials/credentials.command");
54
54
  const prompts_command_1 = require("./commands/prompts/prompts.command");
55
55
  const kb_command_1 = require("./commands/kb/kb.command");
56
+ const whoami_command_1 = require("./commands/whoami/whoami.command");
56
57
  const logger_1 = require("./common/logger");
57
58
  const banner_1 = require("./common/banner");
58
59
  const help_1 = require("./common/help");
60
+ const version_check_1 = require("./common/version-check");
59
61
  const fs = __importStar(require("fs"));
60
62
  const path = __importStar(require("path"));
61
63
  let AppModule = class AppModule {
@@ -74,6 +76,7 @@ AppModule = __decorate([
74
76
  prompts_command_1.PromptsCommand,
75
77
  kb_command_1.KnowledgeBaseCommand,
76
78
  secret_command_1.SecretCommand,
79
+ whoami_command_1.WhoamiCommand,
77
80
  ],
78
81
  })
79
82
  ], AppModule);
@@ -134,12 +137,17 @@ async function bootstrap() {
134
137
  'switch',
135
138
  'use',
136
139
  'profiles',
140
+ 'whoami',
137
141
  ].includes(arg));
138
142
  if (show) {
139
143
  (0, banner_1.showBanner)();
140
144
  (0, help_1.showTree)();
141
145
  return;
142
146
  }
147
+ const isSkipVersionCheck = args.some((arg) => ['login', '--help', '-h', '--version', '-v'].includes(arg));
148
+ if (!isSkipVersionCheck) {
149
+ (0, version_check_1.checkVersionCompatibility)(getVersion()).catch(() => { });
150
+ }
143
151
  try {
144
152
  await nest_commander_1.CommandFactory.run(AppModule, { cliName: 'rf' });
145
153
  }
@@ -179,6 +187,7 @@ function getSuggestions(unknownCommand) {
179
187
  'knowledge',
180
188
  'credentials',
181
189
  'credential',
190
+ 'whoami',
182
191
  ];
183
192
  const suggestions = [];
184
193
  for (const cmd of availableCommands) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runflow-ai/cli",
3
- "version": "0.2.24",
3
+ "version": "0.2.25",
4
4
  "description": "Official CLI for RunFlow AI platform - manage agents, deploy code, and interact with AI workflows from your terminal",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,6 +30,7 @@
30
30
  "form-data": "^4.0.1",
31
31
  "inquirer": "^8.2.7",
32
32
  "nest-commander": "^3.20.1",
33
+ "open": "^9.1.0",
33
34
  "ora": "^5.4.1",
34
35
  "picocolors": "^1.0.0",
35
36
  "tsx": "^4.21.0",