@commit451/salamander 1.0.9 → 1.1.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 (39) hide show
  1. package/README.md +3 -16
  2. package/dist/commands/runner-selection.d.ts.map +1 -1
  3. package/dist/commands/runner-selection.js +4 -52
  4. package/dist/commands/runner-selection.js.map +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +10 -9
  7. package/dist/index.js.map +1 -1
  8. package/dist/services/api.d.ts +1 -0
  9. package/dist/services/api.d.ts.map +1 -1
  10. package/dist/services/api.js.map +1 -1
  11. package/dist/services/auth.d.ts +4 -6
  12. package/dist/services/auth.d.ts.map +1 -1
  13. package/dist/services/auth.js +85 -202
  14. package/dist/services/auth.js.map +1 -1
  15. package/dist/services/command-listener.d.ts +2 -0
  16. package/dist/services/command-listener.d.ts.map +1 -1
  17. package/dist/services/command-listener.js +54 -6
  18. package/dist/services/command-listener.js.map +1 -1
  19. package/dist/services/executor.d.ts.map +1 -1
  20. package/dist/services/executor.js +8 -1
  21. package/dist/services/executor.js.map +1 -1
  22. package/dist/services/runner.d.ts +1 -0
  23. package/dist/services/runner.d.ts.map +1 -1
  24. package/dist/services/runner.js +10 -6
  25. package/dist/services/runner.js.map +1 -1
  26. package/dist/services/user.d.ts.map +1 -1
  27. package/dist/services/user.js +0 -3
  28. package/dist/services/user.js.map +1 -1
  29. package/dist/types/runner.d.ts +0 -12
  30. package/dist/types/runner.d.ts.map +1 -1
  31. package/dist/utils/encryption.d.ts +0 -4
  32. package/dist/utils/encryption.d.ts.map +1 -1
  33. package/dist/utils/encryption.js +0 -7
  34. package/dist/utils/encryption.js.map +1 -1
  35. package/dist/utils/storage.d.ts +3 -8
  36. package/dist/utils/storage.d.ts.map +1 -1
  37. package/dist/utils/storage.js +5 -13
  38. package/dist/utils/storage.js.map +1 -1
  39. package/package.json +1 -1
@@ -4,17 +4,55 @@ import { createServer } from 'http';
4
4
  import { URL } from 'url';
5
5
  import { exec } from 'child_process';
6
6
  import { promisify } from 'util';
7
- import { clearAuth, loadAuth, saveAuth } from '../utils/storage.js';
8
- import { getAuth, GoogleAuthProvider, onAuthStateChanged, signInWithCredential } from 'firebase/auth';
7
+ import { getAuth, onAuthStateChanged, signInWithCustomToken } from 'firebase/auth';
9
8
  import app from '../config/firebase.js';
10
9
  const execAsync = promisify(exec);
11
10
  const auth = getAuth(app);
12
11
  export class AuthService {
13
12
  static currentUser = null;
14
- static customUserInfo = null;
15
13
  static authStateInitialized = false;
16
14
  static authStateReady = null;
17
- static CLIENT_ID = '87955960620-mu7hdiu5nntb4al1ekk79dn73bu5otvu.apps.googleusercontent.com';
15
+ static WEB_APP_URL = 'https://salamander.space';
16
+ static generateAuthResponseHTML(isSuccess, title, message) {
17
+ const headingColor = isSuccess ? '#10b981' : '#f87171';
18
+ return `
19
+ <!DOCTYPE html>
20
+ <html>
21
+ <head>
22
+ <title>${title}</title>
23
+ <style>
24
+ body {
25
+ background-color: #111827;
26
+ color: #f9fafb;
27
+ font-family: 'Fira Code', 'JetBrains Mono', monospace;
28
+ text-align: center;
29
+ padding: 50px;
30
+ margin: 0;
31
+ }
32
+ h1 { color: ${headingColor}; }
33
+ .logo {
34
+ width: 48px;
35
+ height: 48px;
36
+ margin: 0 auto 24px;
37
+ background: #ff6b35;
38
+ border-radius: 8px;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ font-size: 24px;
43
+ color: white;
44
+ font-weight: bold;
45
+ }
46
+ </style>
47
+ </head>
48
+ <body>
49
+ <div class="logo">S</div>
50
+ <h1>${title}</h1>
51
+ <p>${message}</p>
52
+ </body>
53
+ </html>
54
+ `;
55
+ }
18
56
  static async openBrowser(url) {
19
57
  const platform = process.platform;
20
58
  let command;
@@ -23,7 +61,7 @@ export class AuthService {
23
61
  command = `open "${url}"`;
24
62
  break;
25
63
  case 'win32':
26
- command = `start "${url}"`;
64
+ command = `cmd /c start "" "${url}"`;
27
65
  break;
28
66
  default:
29
67
  command = `xdg-open "${url}"`;
@@ -35,126 +73,48 @@ export class AuthService {
35
73
  console.log(chalk.yellow(`⚠️ Could not open browser automatically. Please visit: ${url}`));
36
74
  }
37
75
  }
38
- static async startLocalServer() {
76
+ static async startLocalServerForToken() {
39
77
  return new Promise((resolve, reject) => {
40
78
  const server = createServer();
41
- let authCodeResolve;
42
- let authCodeReject;
43
- const authCodePromise = new Promise((res, rej) => {
44
- authCodeResolve = res;
45
- authCodeReject = rej;
79
+ let tokenResolve;
80
+ let tokenReject;
81
+ const tokenPromise = new Promise((res, rej) => {
82
+ tokenResolve = res;
83
+ tokenReject = rej;
46
84
  });
47
85
  server.on('request', (req, res) => {
48
86
  if (req.url) {
49
87
  const url = new URL(req.url, 'http://localhost:8080');
50
- if (url.pathname === '/oauth/callback') {
51
- const code = url.searchParams.get('code');
88
+ if (url.pathname === '/auth-callback') {
89
+ const token = url.searchParams.get('token');
52
90
  const error = url.searchParams.get('error');
53
91
  if (error) {
54
92
  res.writeHead(400, { 'Content-Type': 'text/html' });
55
- res.end('<h1>Authentication Failed</h1><p>You can close this window.</p>');
56
- authCodeReject(new Error(`OAuth error: ${error}`));
93
+ res.end(this.generateAuthResponseHTML(false, 'Authentication Failed', `Error: ${error}<br>You can close this window and try again.`));
94
+ tokenReject(new Error(`Authentication error: ${error}`));
57
95
  return;
58
96
  }
59
- if (code) {
97
+ if (token) {
60
98
  res.writeHead(200, { 'Content-Type': 'text/html' });
61
- res.end(`
62
- <!DOCTYPE html>
63
- <html>
64
- <head>
65
- <title>Authentication Successful</title>
66
- <style>
67
- body {
68
- background-color: #000000;
69
- color: #ffffff;
70
- font-family: Arial, sans-serif;
71
- text-align: center;
72
- padding: 50px;
73
- margin: 0;
74
- }
75
- h1 {
76
- font-size: 2.5em;
77
- margin-bottom: 20px;
78
- }
79
- p {
80
- font-size: 1.2em;
81
- }
82
- </style>
83
- </head>
84
- <body>
85
- <h1>Authentication Successful!</h1>
86
- <p>You can close this window and return to the CLI.</p>
87
- </body>
88
- </html>
89
- `);
90
- authCodeResolve(code);
99
+ res.end(this.generateAuthResponseHTML(true, 'Authentication Successful!', 'You can now close this window and return to the CLI.'));
100
+ tokenResolve(token);
91
101
  }
92
102
  else {
93
103
  res.writeHead(400, { 'Content-Type': 'text/html' });
94
- res.end('<h1>Authentication Failed</h1><p>No authorization code received.</p>');
95
- authCodeReject(new Error('No authorization code received'));
104
+ res.end(this.generateAuthResponseHTML(false, 'Authentication Failed', 'No authentication token received.<br>You can close this window and try again.'));
105
+ tokenReject(new Error('No authentication token received'));
96
106
  }
97
107
  }
98
108
  }
99
109
  });
100
110
  server.listen(8080, 'localhost', () => {
101
- resolve({ server, authCodePromise });
111
+ resolve({ server, tokenPromise });
102
112
  });
103
113
  server.on('error', (error) => {
104
114
  reject(error);
105
115
  });
106
116
  });
107
117
  }
108
- static async exchangeCodeForTokens(code) {
109
- const params = new URLSearchParams({
110
- client_id: this.CLIENT_ID,
111
- code,
112
- grant_type: 'authorization_code',
113
- redirect_uri: 'http://localhost:8080/oauth/callback',
114
- });
115
- const response = await fetch('https://oauth2.googleapis.com/token', {
116
- method: 'POST',
117
- headers: {
118
- 'Content-Type': 'application/x-www-form-urlencoded',
119
- },
120
- body: params.toString(),
121
- });
122
- if (!response.ok) {
123
- const error = await response.text();
124
- throw new Error(`Token exchange failed: ${error}`);
125
- }
126
- return await response.json();
127
- }
128
- static async refreshToken(refreshToken) {
129
- const params = new URLSearchParams({
130
- grant_type: 'refresh_token',
131
- refresh_token: refreshToken,
132
- client_id: this.CLIENT_ID,
133
- });
134
- const response = await fetch('https://oauth2.googleapis.com/token', {
135
- method: 'POST',
136
- headers: {
137
- 'Content-Type': 'application/x-www-form-urlencoded',
138
- },
139
- body: params.toString(),
140
- });
141
- if (!response.ok) {
142
- const errorText = await response.text();
143
- throw new Error(`Token refresh failed: ${response.status} ${errorText}`);
144
- }
145
- const tokens = await response.json();
146
- // Sign in to Firebase with the new access token
147
- const credential = GoogleAuthProvider.credential(null, tokens.access_token);
148
- await signInWithCredential(auth, credential);
149
- // Update stored tokens with new access token (refresh token may be the same)
150
- const existingAuth = await loadAuth();
151
- await saveAuth({
152
- userId: existingAuth?.userId || '',
153
- email: existingAuth?.email || '',
154
- accessToken: tokens.access_token,
155
- refreshToken: tokens.refresh_token || existingAuth?.refreshToken
156
- });
157
- }
158
118
  static async initialize() {
159
119
  if (this.authStateInitialized) {
160
120
  // Wait for auth state to be ready if initialization is in progress
@@ -168,78 +128,23 @@ export class AuthService {
168
128
  this.authStateReady = new Promise((resolve) => {
169
129
  resolveAuthState = resolve;
170
130
  });
171
- // Try to restore from stored auth
172
- const storedAuth = await loadAuth();
173
- let authAttemptMade = false;
174
- if (storedAuth?.userId && storedAuth.email && storedAuth.accessToken) {
175
- authAttemptMade = true;
176
- try {
177
- // Try to restore Firebase session using stored access token
178
- const credential = GoogleAuthProvider.credential(null, storedAuth.accessToken);
179
- await signInWithCredential(auth, credential);
180
- console.log(chalk.green('✅ Session restored from storage'));
181
- }
182
- catch (error) {
183
- // Token might be expired, try refresh token if available
184
- if (storedAuth.refreshToken) {
185
- try {
186
- await this.refreshToken(storedAuth.refreshToken);
187
- console.log(chalk.green('✅ Session refreshed from storage'));
188
- }
189
- catch (refreshError) {
190
- console.log(chalk.yellow('⚠️ Stored session expired, please sign in again'));
191
- await clearAuth();
192
- authAttemptMade = false;
193
- }
194
- }
195
- else {
196
- console.log(chalk.yellow('⚠️ Stored session expired, please sign in again'));
197
- await clearAuth();
198
- authAttemptMade = false;
199
- }
200
- }
201
- }
202
131
  // Set up Firebase Auth state observer
203
132
  onAuthStateChanged(auth, async (user) => {
204
133
  if (user) {
205
134
  this.currentUser = user;
206
- if (!this.customUserInfo) {
207
- this.customUserInfo = {
208
- id: user.uid,
209
- email: user.email || '',
210
- name: user.displayName || user.email?.split('@')[0] || ''
211
- };
212
- }
213
- // Only update user info in storage, preserve OAuth tokens if they exist
214
- const existingAuth = await loadAuth();
215
- await saveAuth({
216
- userId: user.uid,
217
- email: user.email || '',
218
- accessToken: existingAuth?.accessToken || undefined,
219
- refreshToken: existingAuth?.refreshToken || undefined
220
- });
221
135
  }
222
136
  else {
223
137
  // User signed out, clean up
224
138
  this.currentUser = null;
225
- this.customUserInfo = null;
226
- await clearAuth();
227
139
  }
228
140
  // Resolve the auth state promise once we know the state
229
- if (resolveAuthState) {
230
- resolveAuthState();
231
- resolveAuthState = null;
232
- }
141
+ resolveAuthState();
233
142
  });
234
143
  this.authStateInitialized = true;
235
- // If no auth attempt was made, resolve immediately since no user will be set
236
- if (!authAttemptMade) {
237
- setTimeout(() => {
238
- if (resolveAuthState) {
239
- resolveAuthState();
240
- }
241
- }, 100);
242
- }
144
+ // No session to restore, resolve after a short delay to allow Firebase auth state to settle
145
+ setTimeout(() => {
146
+ resolveAuthState();
147
+ }, 100);
243
148
  // Wait for auth state to be determined
244
149
  await this.authStateReady;
245
150
  }
@@ -254,7 +159,7 @@ export class AuthService {
254
159
  }
255
160
  static async loginFlow() {
256
161
  console.log(chalk.blue('\n🔐 Authentication Required'));
257
- console.log('Please sign in with Google to continue.\n');
162
+ console.log('Please sign in to continue.\n');
258
163
  try {
259
164
  // Ensure auth state is initialized
260
165
  await this.initialize();
@@ -264,46 +169,36 @@ export class AuthService {
264
169
  return true;
265
170
  }
266
171
  const proceed = await input({
267
- message: 'Press Enter to open Google sign-in in your browser, or type "q" to quit:',
172
+ message: 'Press Enter to open sign-in in your browser, or type "q" to quit:',
268
173
  default: '',
269
174
  });
270
175
  if (proceed.toLowerCase() === 'q') {
271
176
  return false;
272
177
  }
273
- console.log(chalk.yellow('🌐 Starting local server and opening browser...'));
178
+ return await this.webAuthFlow();
179
+ }
180
+ catch (error) {
181
+ return false;
182
+ }
183
+ }
184
+ static async webAuthFlow() {
185
+ try {
186
+ console.log(chalk.yellow('🌐 Please complete sign-in in your browser...\n'));
274
187
  // Start local server to receive callback
275
- const { server, authCodePromise } = await this.startLocalServer();
188
+ const { server, tokenPromise } = await this.startLocalServerForToken();
276
189
  try {
277
- // Create OAuth URL (simplified without PKCE)
278
- const authUrl = new URL('https://accounts.google.com/o/oauth2/v2/auth');
279
- authUrl.searchParams.set('client_id', this.CLIENT_ID);
280
- authUrl.searchParams.set('redirect_uri', 'http://localhost:8080/oauth/callback');
281
- authUrl.searchParams.set('response_type', 'code');
282
- authUrl.searchParams.set('scope', 'openid email profile');
283
- authUrl.searchParams.set('access_type', 'offline');
284
- authUrl.searchParams.set('prompt', 'consent');
190
+ // Create the auth URL - use main auth page with callback parameter
191
+ const redirectUrl = 'http://localhost:8080/auth-callback';
192
+ const authUrl = `${this.WEB_APP_URL}/#auth?callback=${encodeURIComponent(redirectUrl)}`;
285
193
  // Open browser
286
- await this.openBrowser(authUrl.toString());
287
- console.log('Please complete the authentication in your browser...\n');
194
+ await this.openBrowser(authUrl);
195
+ console.log('');
288
196
  // Wait for callback
289
- const authCode = await authCodePromise;
290
- console.log(chalk.green('✅ Authorization code received!'));
291
- // Exchange code for tokens
292
- console.log('Exchanging authorization code for tokens...');
293
- const tokens = await this.exchangeCodeForTokens(authCode);
294
- // Sign in to Firebase Auth using the Google OAuth token
295
- const credential = GoogleAuthProvider.credential(null, tokens.access_token);
296
- const userCredential = await signInWithCredential(auth, credential);
197
+ const customToken = await tokenPromise;
198
+ // Sign in to Firebase Auth using the custom token
199
+ const userCredential = await signInWithCustomToken(auth, customToken);
297
200
  this.currentUser = userCredential.user;
298
- // Store the OAuth tokens immediately after successful login
299
- await saveAuth({
300
- userId: userCredential.user.uid,
301
- email: userCredential.user.email || '',
302
- accessToken: tokens.access_token,
303
- refreshToken: tokens.refresh_token
304
- });
305
- console.log(chalk.green(`✅ Welcome ${userCredential.user.displayName || userCredential.user.email}!`));
306
- console.log(chalk.green('✅ Login successful!'));
201
+ console.log(chalk.green('✅ Login successful!'));
307
202
  return true;
308
203
  }
309
204
  finally {
@@ -311,20 +206,8 @@ export class AuthService {
311
206
  }
312
207
  }
313
208
  catch (error) {
314
- console.error(chalk.red('❌ Authentication failed:'), error.message);
315
209
  return false;
316
210
  }
317
211
  }
318
- static async signOut() {
319
- try {
320
- await auth.signOut();
321
- // Firebase auth state observer will handle clearing user state
322
- console.log(chalk.green('✅ Signed out successfully'));
323
- }
324
- catch (error) {
325
- console.error(chalk.red('❌ Error signing out:'), error.message);
326
- throw error;
327
- }
328
- }
329
212
  }
330
213
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ import { Runner } from '../types/runner.js';
2
2
  export declare class CommandListener {
3
3
  private activeListeners;
4
4
  private isShuttingDown;
5
+ private rl;
5
6
  startListening(runner: Runner): Promise<void>;
7
+ private promptForUserCommand;
6
8
  stopListening(runnerId: string): Promise<void>;
7
9
  }
8
10
  //# sourceMappingURL=command-listener.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-listener.d.ts","sourceRoot":"","sources":["../../src/services/command-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAQ1C,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAS;IAEzB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyI7C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvD"}
1
+ {"version":3,"file":"command-listener.d.ts","sourceRoot":"","sources":["../../src/services/command-listener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAO1C,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,EAAE,CAAmC;IAEvC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA2IrC,oBAAoB;IA8C5B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAavD"}
@@ -1,12 +1,14 @@
1
1
  import chalk from 'chalk';
2
+ import * as readline from 'readline/promises';
2
3
  import { RunnerService } from './runner.js';
3
4
  import { CommandExecutor } from './executor.js';
4
5
  import { generateDeviceId } from '../utils/device.js';
5
6
  import { EncryptionService } from '../utils/encryption.js';
6
- import { loadAuth, saveAuth } from '../utils/storage.js';
7
+ import { loadEncryption, saveEncryption } from '../utils/storage.js';
7
8
  export class CommandListener {
8
9
  activeListeners = new Map();
9
10
  isShuttingDown = false;
11
+ rl = null;
10
12
  async startListening(runner) {
11
13
  if (this.activeListeners.has(runner.id)) {
12
14
  console.log(chalk.yellow(`Already listening to runner "${runner.name}"`));
@@ -19,16 +21,15 @@ export class CommandListener {
19
21
  }
20
22
  // Generate or load encryption code
21
23
  let encryptionCode;
22
- const storedAuth = await loadAuth();
23
- if (storedAuth?.encryptionCode) {
24
- encryptionCode = storedAuth.encryptionCode;
24
+ const storedEncryption = await loadEncryption();
25
+ if (storedEncryption?.encryptionCode) {
26
+ encryptionCode = storedEncryption.encryptionCode;
25
27
  }
26
28
  else {
27
29
  // Generate new random encryption code
28
30
  encryptionCode = EncryptionService.generateRandomSecret();
29
31
  // Save to storage
30
- const updatedAuth = { ...storedAuth, encryptionCode };
31
- await saveAuth(updatedAuth);
32
+ await saveEncryption({ encryptionCode });
32
33
  }
33
34
  console.log(chalk.blue(`👂 Started listening for commands on runner "${runner.name}"`));
34
35
  console.log(chalk.gray(` Directory: ${runner.directory}`));
@@ -47,6 +48,7 @@ export class CommandListener {
47
48
  console.log('');
48
49
  console.log(chalk.gray(` Press Ctrl+C to stop`));
49
50
  console.log(chalk.gray(` Keep in mind, if your machine goes to sleep, it won't process commands`));
51
+ await this.promptForUserCommand(runner.id, encryptionCode);
50
52
  const unsubscribe = RunnerService.listenToRunner(runner.id, async (updatedRunner) => {
51
53
  if (!updatedRunner || this.isShuttingDown)
52
54
  return;
@@ -79,6 +81,7 @@ export class CommandListener {
79
81
  await RunnerService.updateRunnerAfterCommand(runner.id, encryptedOutput);
80
82
  console.log(chalk.blue(`💌 Message sent`));
81
83
  console.log(chalk.gray('Waiting for next command...'));
84
+ await this.promptForUserCommand(runner.id, encryptionCode);
82
85
  }
83
86
  catch (error) {
84
87
  console.error(chalk.red(`❌ Error processing command: ${error.message}`));
@@ -99,6 +102,7 @@ export class CommandListener {
99
102
  console.error(chalk.red('Failed to update runner with error result'));
100
103
  }
101
104
  console.log(chalk.gray('Waiting for next command...'));
105
+ await this.promptForUserCommand(runner.id, encryptionCode);
102
106
  }
103
107
  }
104
108
  });
@@ -119,12 +123,56 @@ export class CommandListener {
119
123
  process.on('uncaughtException', cleanup);
120
124
  process.on('unhandledRejection', cleanup);
121
125
  }
126
+ async promptForUserCommand(runnerId, encryptionCode) {
127
+ if (this.isShuttingDown)
128
+ return;
129
+ try {
130
+ // Create readline interface if it doesn't exist
131
+ if (!this.rl) {
132
+ this.rl = readline.createInterface({
133
+ input: process.stdin,
134
+ output: process.stdout,
135
+ });
136
+ }
137
+ console.log(chalk.cyan('💬 You can also enter a command here (or press Ctrl+C to exit):'));
138
+ const userInput = await this.rl.question(chalk.green('> '));
139
+ // If user provided input, send it as a command
140
+ if (userInput && userInput.trim().length > 0) {
141
+ const command = userInput.trim();
142
+ console.log(chalk.cyan(`📤 Sending command: ${command}`));
143
+ // Encrypt the command
144
+ const encryptResult = EncryptionService.encrypt(command, encryptionCode);
145
+ const encryptedCommand = encryptResult.success ? encryptResult.encrypted : command;
146
+ // Create a user message in Firestore
147
+ await RunnerService.createMessage(runnerId, {
148
+ content: encryptedCommand,
149
+ senderName: '',
150
+ type: 'user',
151
+ });
152
+ // Update the runner with the pending command (this will trigger the listener)
153
+ await RunnerService.updateRunner(runnerId, encryptedCommand);
154
+ console.log(chalk.blue(`✅ Command submitted successfully`));
155
+ console.log(chalk.gray('Processing...'));
156
+ }
157
+ }
158
+ catch (error) {
159
+ // If the error is from Ctrl+C or shutdown, the process SIGINT handler will handle cleanup
160
+ if (!this.isShuttingDown) {
161
+ console.error(chalk.red(`❌ Error prompting for command: ${error.message}`));
162
+ }
163
+ }
164
+ }
122
165
  async stopListening(runnerId) {
123
166
  const unsubscribe = this.activeListeners.get(runnerId);
124
167
  if (unsubscribe) {
125
168
  unsubscribe();
126
169
  this.activeListeners.delete(runnerId);
127
170
  }
171
+ // Close readline interface if it exists
172
+ if (this.rl) {
173
+ this.rl.close();
174
+ this.rl = null;
175
+ }
128
176
  }
129
177
  }
130
178
  //# sourceMappingURL=command-listener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-listener.js","sourceRoot":"","sources":["../../src/services/command-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-listener.js","sourceRoot":"","sources":["../../src/services/command-listener.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnE,MAAM,OAAO,eAAe;IAChB,eAAe,GAA4B,IAAI,GAAG,EAAE,CAAC;IACrD,cAAc,GAAG,KAAK,CAAC;IACvB,EAAE,GAA8B,IAAI,CAAC;IAE7C,KAAK,CAAC,cAAc,CAAC,MAAc;QAC/B,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1E,OAAO;QACX,CAAC;QAED,gCAAgC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,mCAAmC;QACnC,IAAI,cAAsB,CAAC;QAC3B,MAAM,gBAAgB,GAAG,MAAM,cAAc,EAAE,CAAC;QAEhD,IAAI,gBAAgB,EAAE,cAAc,EAAE,CAAC;YACnC,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,sCAAsC;YACtC,cAAc,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAE1D,kBAAkB;YAClB,MAAM,cAAc,CAAC,EAAC,cAAc,EAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAGhB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yEAAyE,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0EAA0E,CAAC,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oFAAoF,CAAC,CAAC,CAAC;QAChH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC;QACrG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YAChF,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc;gBAAE,OAAO;YAElD,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;gBAC/B,8BAA8B;gBAC9B,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBAE9F,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;oBACvF,wBAAwB;oBACxB,MAAM,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnD,OAAO;gBACX,CAAC;gBAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,CAAC,CAAC;gBAEpE,IAAI,CAAC;oBACD,wCAAwC;oBACxC,MAAM,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEnD,gCAAgC;oBAChC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;oBAErF,qBAAqB;oBACrB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;oBAC/E,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBAExF,0CAA0C;oBAC1C,MAAM,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE;wBACzC,OAAO,EAAE,eAAe;wBACxB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,IAAI,EAAE,QAAQ;qBACjB,CAAC,CAAC;oBAEH,8CAA8C;oBAC9C,MAAM,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;oBAEzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;oBACvD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBAC/D,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAEzE,MAAM,YAAY,GAAG,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC;oBAEjE,4BAA4B;oBAC5B,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;oBAC9E,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;oBAEtF,IAAI,CAAC;wBACD,yCAAyC;wBACzC,MAAM,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE;4BACzC,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,MAAM,CAAC,IAAI;4BACvB,IAAI,EAAE,QAAQ;yBACjB,CAAC,CAAC;wBAEH,MAAM,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;oBAC5E,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;oBAC1E,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;oBACvD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,sEAAsE;QACtE,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAEtC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/B,kCAAkC;QAClC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,cAAsB;QACvE,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAEhC,IAAI,CAAC;YACD,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;oBAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB,CAAC,CAAC;YACP,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;YAC3F,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5D,+CAA+C;YAC/C,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBAEjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;gBAE1D,sBAAsB;gBACtB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBACzE,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;gBAEnF,qCAAqC;gBACrC,MAAM,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE;oBACxC,OAAO,EAAE,gBAAgB;oBACzB,UAAU,EAAE,EAAE;oBACd,IAAI,EAAE,MAAM;iBACf,CAAC,CAAC;gBAEH,8EAA8E;gBAC9E,MAAM,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;gBAE7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,0FAA0F;YAC1F,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACnB,CAAC;IACL,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/services/executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,eAAe;WACX,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiCpF,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsBnC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B,OAAO,CAAC,MAAM,CAAC,WAAW;CAY7B"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/services/executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,eAAe;WACX,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiCpF,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsBnC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAwB/B,OAAO,CAAC,MAAM,CAAC,WAAW;CAY7B"}
@@ -60,7 +60,14 @@ export class CommandExecutor {
60
60
  case RunnerType.GEMINI:
61
61
  return `gemini -p "${escapedInput}" --yolo`;
62
62
  case RunnerType.CODEX:
63
- return `codex exec "${escapedInput}" --full-auto --skip-git-repo-check`;
63
+ // codex exec "whats my name" --skip-git-repo-check --full-auto --json
64
+ // {"type":"thread.started","thread_id":"0199b81e-5536-7ca0-95f8-95d394c52ade"}
65
+ // {"type":"turn.started"}
66
+ // {"type":"item.completed","item":{"id":"item_0","type":"reasoning","text":"**Handling missing information**"}}
67
+ // {"type":"item.completed","item":{"id":"item_1","type":"agent_message","text":"I’m not sure—I don’t have that information."}}
68
+ // {"type":"turn.completed","usage":{"input_tokens":2570,"cached_input_tokens":2048,"output_tokens":17}}
69
+ // we would need to parse the item.completed event with type == agent_message and then get the text from that
70
+ return `codex exec "${escapedInput}" --experimental-json --full-auto --skip-git-repo-check resume "0199b82c-b9ac-70d0-8f09-567cf6554a8a"`;
64
71
  }
65
72
  }
66
73
  static getToolName(runnerType) {