@commit451/salamander 1.2.1 → 1.3.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 (45) hide show
  1. package/README.md +42 -42
  2. package/bin/salamander.js +1 -1
  3. package/dist/commands/runner-selection.d.ts +1 -1
  4. package/dist/commands/runner-selection.d.ts.map +1 -1
  5. package/dist/commands/runner-selection.js +75 -12
  6. package/dist/commands/runner-selection.js.map +1 -1
  7. package/dist/config/firebase.d.ts +2 -0
  8. package/dist/config/firebase.d.ts.map +1 -1
  9. package/dist/config/firebase.js +16 -0
  10. package/dist/config/firebase.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +19 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/services/auth.d.ts +1 -0
  15. package/dist/services/auth.d.ts.map +1 -1
  16. package/dist/services/auth.js +51 -61
  17. package/dist/services/auth.js.map +1 -1
  18. package/dist/services/command-listener.d.ts +1 -0
  19. package/dist/services/command-listener.d.ts.map +1 -1
  20. package/dist/services/command-listener.js +30 -7
  21. package/dist/services/command-listener.js.map +1 -1
  22. package/dist/services/crypto.d.ts +52 -0
  23. package/dist/services/crypto.d.ts.map +1 -0
  24. package/dist/services/crypto.js +104 -0
  25. package/dist/services/crypto.js.map +1 -0
  26. package/dist/services/key-manager.d.ts +45 -0
  27. package/dist/services/key-manager.d.ts.map +1 -0
  28. package/dist/services/key-manager.js +123 -0
  29. package/dist/services/key-manager.js.map +1 -0
  30. package/dist/services/multi-device-key-manager.d.ts +56 -0
  31. package/dist/services/multi-device-key-manager.d.ts.map +1 -0
  32. package/dist/services/multi-device-key-manager.js +159 -0
  33. package/dist/services/multi-device-key-manager.js.map +1 -0
  34. package/dist/services/runner.d.ts.map +1 -1
  35. package/dist/services/runner.js +56 -19
  36. package/dist/services/runner.js.map +1 -1
  37. package/dist/utils/file-persistence.d.ts +19 -0
  38. package/dist/utils/file-persistence.d.ts.map +1 -0
  39. package/dist/utils/file-persistence.js +64 -0
  40. package/dist/utils/file-persistence.js.map +1 -0
  41. package/dist/utils/storage.d.ts +5 -0
  42. package/dist/utils/storage.d.ts.map +1 -1
  43. package/dist/utils/storage.js +14 -0
  44. package/dist/utils/storage.js.map +1 -1
  45. package/package.json +52 -52
package/README.md CHANGED
@@ -1,42 +1,42 @@
1
- # Salamander CLI
2
-
3
- Never be AFK.
4
-
5
- See [the site](https://salamander.space/) for usage.
6
-
7
- Command-line interface for Salamander AI runners. This tool allows you to run AI-powered command execution on your local machine and receive commands from the Salamander app.
8
-
9
- ## Installation
10
- You should first install [Claude's CLI](https://docs.anthropic.com/en/docs/claude-code/cli-reference) so that your machine has the needed `claude` command available.
11
-
12
- ```bash
13
- npm install -g @commit451/salamander
14
- ```
15
-
16
- ## Usage
17
-
18
- ### Start the CLI
19
- ```bash
20
- salamander
21
- ```
22
-
23
- ## Development
24
-
25
- ```bash
26
- # Install dependencies
27
- npm install
28
-
29
- # Run in development mode
30
- npm run dev
31
-
32
- # Build the project
33
- npm run build
34
-
35
- # Run the built version
36
- npm start
37
- ```
38
-
39
- ## Publish
40
- ```
41
- npm run pub
42
- ```
1
+ # Salamander CLI
2
+
3
+ Never be AFK.
4
+
5
+ See [the site](https://salamander.space/) for usage.
6
+
7
+ Command-line interface for Salamander AI runners. This tool allows you to run AI-powered command execution on your local machine and receive commands from the Salamander app.
8
+
9
+ ## Installation
10
+ You should first install [Claude's CLI](https://docs.anthropic.com/en/docs/claude-code/cli-reference) so that your machine has the needed `claude` command available.
11
+
12
+ ```bash
13
+ npm install -g @commit451/salamander
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ### Start the CLI
19
+ ```bash
20
+ salamander
21
+ ```
22
+
23
+ ## Development
24
+
25
+ ```bash
26
+ # Install dependencies
27
+ npm install
28
+
29
+ # Run in development mode
30
+ npm run dev
31
+
32
+ # Build the project
33
+ npm run build
34
+
35
+ # Run the built version
36
+ npm start
37
+ ```
38
+
39
+ ## Publish
40
+ ```
41
+ npm run pub
42
+ ```
package/bin/salamander.js CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
  import('../dist/index.js').then(m => m.default()).catch(console.error);
@@ -1,2 +1,2 @@
1
- export declare function runnerSelectionFlow(): Promise<void>;
1
+ export declare function runnerSelectionFlow(checkDefault?: boolean): Promise<void>;
2
2
  //# sourceMappingURL=runner-selection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-selection.d.ts","sourceRoot":"","sources":["../../src/commands/runner-selection.ts"],"names":[],"mappings":"AAQA,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuEzD"}
1
+ {"version":3,"file":"runner-selection.d.ts","sourceRoot":"","sources":["../../src/commands/runner-selection.ts"],"names":[],"mappings":"AAUA,wBAAsB,mBAAmB,CAAC,YAAY,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiIrF"}
@@ -4,10 +4,29 @@ import { RunnerService } from '../services/runner.js';
4
4
  import { CommandListener } from '../services/command-listener.js';
5
5
  import { createRunnerFlow } from './create-runner.js';
6
6
  import { deleteRunnerFlow } from './delete-runner.js';
7
- export async function runnerSelectionFlow() {
7
+ import { loadConfig, saveConfig } from '../utils/storage.js';
8
+ import { AuthService } from '../services/auth.js';
9
+ export async function runnerSelectionFlow(checkDefault = true) {
8
10
  console.log(chalk.blue('šŸƒ Runner Selection'));
9
11
  try {
10
12
  const localRunners = await RunnerService.getAllRunners();
13
+ const config = await loadConfig();
14
+ const defaultRunnerId = config?.defaultRunnerId;
15
+ // Auto-start default runner on initial launch
16
+ if (checkDefault && defaultRunnerId) {
17
+ const defaultRunner = localRunners.find(r => r.id === defaultRunnerId);
18
+ if (defaultRunner) {
19
+ console.log(chalk.blue(`⭐ Auto-starting default runner: ${chalk.bold(defaultRunner.name)}`));
20
+ const listener = CommandListener.getInstance();
21
+ await listener.startListening(defaultRunner);
22
+ // User typed 'q', fall through to normal menu
23
+ return runnerSelectionFlow(false);
24
+ }
25
+ else {
26
+ console.log(chalk.yellow('āš ļø Default runner no longer exists. Clearing default setting.'));
27
+ await saveConfig({});
28
+ }
29
+ }
11
30
  if (localRunners.length === 0) {
12
31
  console.log(chalk.yellow('āš ļø No runners found for this machine.'));
13
32
  console.log('You need to create a runner first.');
@@ -20,8 +39,7 @@ export async function runnerSelectionFlow() {
20
39
  });
21
40
  if (shouldCreate === 'create') {
22
41
  await createRunnerFlow();
23
- // After creating a runner, restart the selection process
24
- return runnerSelectionFlow();
42
+ return runnerSelectionFlow(false);
25
43
  }
26
44
  else {
27
45
  console.log(chalk.blue('šŸ‘‹ Goodbye!'));
@@ -31,25 +49,46 @@ export async function runnerSelectionFlow() {
31
49
  console.log(chalk.green(`āœ… Found ${localRunners.length} runner(s) for this machine`));
32
50
  const choices = [
33
51
  ...localRunners.map(runner => ({
34
- name: formatRunnerChoice(runner),
52
+ name: formatRunnerChoice(runner, defaultRunnerId),
35
53
  value: `run:${runner.id}`,
36
54
  description: `Listen for ${runner.runnerType} commands in ${runner.directory}`
37
55
  })),
38
56
  { name: 'āž• Create new runner', value: 'create' },
39
57
  { name: 'šŸ—‘ļø Delete runner', value: 'delete' },
40
- { name: '🚪 Exit', value: 'exit' }
41
58
  ];
59
+ // Add disable default option if a default is set and the runner still exists
60
+ if (defaultRunnerId) {
61
+ const defaultRunner = localRunners.find(r => r.id === defaultRunnerId);
62
+ if (defaultRunner) {
63
+ choices.push({
64
+ name: `🚫 Disable starting default runner (currently: ${defaultRunner.name})`,
65
+ value: 'disable-default'
66
+ });
67
+ }
68
+ }
69
+ choices.push({ name: 'šŸ”“ Logout', value: 'logout' });
70
+ choices.push({ name: '🚪 Exit', value: 'exit' });
42
71
  const selection = await select({
43
72
  message: 'Select a runner to start or choose an action:',
44
73
  choices
45
74
  });
46
75
  if (selection === 'create') {
47
76
  await createRunnerFlow();
48
- return runnerSelectionFlow();
77
+ return runnerSelectionFlow(false);
49
78
  }
50
79
  else if (selection === 'delete') {
51
80
  await deleteRunnerFlow();
52
- return runnerSelectionFlow();
81
+ return runnerSelectionFlow(false);
82
+ }
83
+ else if (selection === 'disable-default') {
84
+ await saveConfig({});
85
+ console.log(chalk.green('āœ… Default runner disabled. CLI will show menu on startup.'));
86
+ return runnerSelectionFlow(false);
87
+ }
88
+ else if (selection === 'logout') {
89
+ await AuthService.logout();
90
+ console.log(chalk.green('āœ… Logged out successfully.'));
91
+ process.exit(0);
53
92
  }
54
93
  else if (selection === 'exit') {
55
94
  console.log(chalk.blue('šŸ‘‹ Goodbye!'));
@@ -59,12 +98,34 @@ export async function runnerSelectionFlow() {
59
98
  const runnerId = selection.replace('run:', '');
60
99
  const runner = localRunners.find(r => r.id === runnerId);
61
100
  if (runner) {
62
- const listener = CommandListener.getInstance();
63
- await listener.startListening(runner);
101
+ // Show sub-menu for runner action
102
+ const action = await select({
103
+ message: `What would you like to do with "${runner.name}"?`,
104
+ choices: [
105
+ { name: 'Start runner', value: 'start' },
106
+ { name: 'Start and set as default (auto-start on launch)', value: 'start-default' },
107
+ { name: 'Back to menu', value: 'back' },
108
+ ]
109
+ });
110
+ if (action === 'start') {
111
+ const listener = CommandListener.getInstance();
112
+ await listener.startListening(runner);
113
+ return runnerSelectionFlow(false);
114
+ }
115
+ else if (action === 'start-default') {
116
+ await saveConfig({ defaultRunnerId: runner.id });
117
+ console.log(chalk.green(`⭐ "${runner.name}" set as default runner.`));
118
+ const listener = CommandListener.getInstance();
119
+ await listener.startListening(runner);
120
+ return runnerSelectionFlow(false);
121
+ }
122
+ else {
123
+ return runnerSelectionFlow(false);
124
+ }
64
125
  }
65
126
  else {
66
127
  console.error(chalk.red('āŒ Runner not found'));
67
- return runnerSelectionFlow();
128
+ return runnerSelectionFlow(false);
68
129
  }
69
130
  }
70
131
  }
@@ -72,7 +133,9 @@ export async function runnerSelectionFlow() {
72
133
  process.exit(1);
73
134
  }
74
135
  }
75
- function formatRunnerChoice(runner) {
76
- return `šŸ¤– ${chalk.bold(runner.name)} ${chalk.dim(`(${runner.directory})`)}`;
136
+ function formatRunnerChoice(runner, defaultRunnerId) {
137
+ const isDefault = runner.id === defaultRunnerId;
138
+ const defaultBadge = isDefault ? chalk.yellow(' ⭐') : '';
139
+ return `šŸ¤– ${chalk.bold(runner.name)} ${chalk.dim(`(${runner.directory})`)}${defaultBadge}`;
77
140
  }
78
141
  //# sourceMappingURL=runner-selection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-selection.js","sourceRoot":"","sources":["../../src/commands/runner-selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-selection.js","sourceRoot":"","sources":["../../src/commands/runner-selection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ import { type Auth } from 'firebase/auth';
1
2
  declare const app: import("@firebase/app").FirebaseApp;
3
+ export declare const auth: Auth;
2
4
  export declare const db: import("@firebase/firestore").Firestore;
3
5
  export default app;
4
6
  //# sourceMappingURL=firebase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../src/config/firebase.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,GAAG,qCAAwE,CAAC;AAGlF,eAAO,MAAM,EAAE,yCAAoB,CAAC;AAEpC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../src/config/firebase.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,IAAI,EAAC,MAAM,eAAe,CAAC;AAejE,QAAA,MAAM,GAAG,qCAAwE,CAAC;AAelF,eAAO,MAAM,IAAI,MAAe,CAAC;AAGjC,eAAO,MAAM,EAAE,yCAAoB,CAAC;AAEpC,eAAe,GAAG,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { getApps, initializeApp } from 'firebase/app';
2
+ import { getAuth, initializeAuth } from 'firebase/auth';
2
3
  import { getFirestore } from 'firebase/firestore';
4
+ import { FilePersistence } from '../utils/file-persistence.js';
3
5
  const firebaseConfig = {
4
6
  apiKey: "AIzaSyDXnEjvqq8lspDRlEJiDkztxWTmLYMoDGg",
5
7
  authDomain: "salamander-ai.firebaseapp.com",
@@ -11,6 +13,20 @@ const firebaseConfig = {
11
13
  };
12
14
  // Initialize Firebase (only if not already initialized)
13
15
  const app = getApps().length === 0 ? initializeApp(firebaseConfig) : getApps()[0];
16
+ // Initialize Auth with file-based persistence for Node.js
17
+ // so sessions survive process restarts (critical for launchd/systemd)
18
+ function createAuth() {
19
+ try {
20
+ return initializeAuth(app, {
21
+ persistence: FilePersistence
22
+ });
23
+ }
24
+ catch {
25
+ // Already initialized (e.g. module re-imported), return existing instance
26
+ return getAuth(app);
27
+ }
28
+ }
29
+ export const auth = createAuth();
14
30
  // Initialize services
15
31
  export const db = getFirestore(app);
16
32
  export default app;
@@ -1 +1 @@
1
- {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/config/firebase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,yCAAyC;IACjD,UAAU,EAAE,+BAA+B;IAC3C,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,mCAAmC;IAClD,iBAAiB,EAAE,aAAa;IAChC,KAAK,EAAE,0CAA0C;IACjD,aAAa,EAAE,cAAc;CAChC,CAAC;AAEF,wDAAwD;AACxD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF,sBAAsB;AACtB,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEpC,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"firebase.js","sourceRoot":"","sources":["../../src/config/firebase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,OAAO,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAE7D,MAAM,cAAc,GAAG;IACnB,MAAM,EAAE,yCAAyC;IACjD,UAAU,EAAE,+BAA+B;IAC3C,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,mCAAmC;IAClD,iBAAiB,EAAE,aAAa;IAChC,KAAK,EAAE,0CAA0C;IACjD,aAAa,EAAE,cAAc;CAChC,CAAC;AAEF,wDAAwD;AACxD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF,0DAA0D;AAC1D,sEAAsE;AACtE,SAAS,UAAU;IACf,IAAI,CAAC;QACD,OAAO,cAAc,CAAC,GAAG,EAAE;YACvB,WAAW,EAAE,eAAsB;SACtC,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACL,0EAA0E;QAC1E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;AAEjC,sBAAsB;AACtB,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEpC,eAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA2IA,MAAM,CAAC,OAAO,UAAU,IAAI,SAE3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA6JA,MAAM,CAAC,OAAO,UAAU,IAAI,SAE3B"}
package/dist/index.js CHANGED
@@ -60,6 +60,25 @@ program
60
60
  process.exit(1);
61
61
  }
62
62
  });
63
+ program
64
+ .command('logout')
65
+ .description('Sign out of Salamander')
66
+ .action(async () => {
67
+ try {
68
+ await AuthService.initialize();
69
+ if (AuthService.isAuthenticated) {
70
+ await AuthService.logout();
71
+ console.log(chalk.green('āœ… Logged out successfully.'));
72
+ }
73
+ else {
74
+ console.log(chalk.yellow('Not currently signed in.'));
75
+ }
76
+ }
77
+ catch (error) {
78
+ console.error(chalk.red('āŒ Error during logout:'), error.message);
79
+ process.exit(1);
80
+ }
81
+ });
63
82
  // Default action - if no command is specified, run the main flow
64
83
  program.action(async () => {
65
84
  await initializeAndRun(runnerSelectionFlow);
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":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,YAAY,EAAC,MAAM,IAAI,CAAC;AAChC,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACnC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AACtE,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,0EAA0E,CAAC;KACvF,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,cAAc,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAGP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;YAC9B,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,iEAAiE;AACjE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACtB,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,2BAA2B;IACtC,IAAI,CAAC;QACD,MAAM,eAAe,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC;QAElE,IAAI,iBAAiB,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,eAAe,gBAAgB,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,eAAe,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,mDAAmD;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAA2B;IACvD,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE3C,mCAAmC;QACnC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAElD,2BAA2B;QAC3B,IAAI,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,gDAAgD;QAChD,MAAM,2BAA2B,EAAE,CAAC;QAEpC,2BAA2B;QAC3B,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAE/B,iCAAiC;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,cAAc,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,2BAA2B;QAC3B,MAAM,MAAM,EAAE,CAAC;IAEnB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,OAAO,UAAU,IAAI;IACxB,OAAO,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,4DAA4D;AAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IAC7C,IAAI,EAAE,CAAC;AACX,CAAC"}
@@ -11,6 +11,7 @@ export declare class AuthService {
11
11
  static get isAuthenticated(): boolean;
12
12
  static get user(): User | null;
13
13
  static get userId(): string | null;
14
+ static logout(): Promise<void>;
14
15
  static loginFlow(): Promise<boolean>;
15
16
  private static webAuthFlow;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqD,IAAI,EAAC,MAAM,eAAe,CAAC;AAOvF,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAqB;IAC/C,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAkB;IACrD,OAAO,CAAC,MAAM,CAAC,cAAc,CAA8B;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAEjE,OAAO,CAAC,MAAM,CAAC,wBAAwB;mBAyClB,WAAW;mBAsBX,wBAAwB;WA2DhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCxC,MAAM,KAAK,eAAe,IAAI,OAAO,CAEpC;IAED,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,CAE7B;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,GAAG,IAAI,CAEjC;WAEY,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;mBAqBrB,WAAW;CAsEnC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqD,IAAI,EAAC,MAAM,eAAe,CAAC;AAMvF,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAqB;IAC/C,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAkB;IACrD,OAAO,CAAC,MAAM,CAAC,cAAc,CAA8B;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAEjE,OAAO,CAAC,MAAM,CAAC,wBAAwB;mBAyClB,WAAW;mBAsBX,wBAAwB;WA2DhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC,MAAM,KAAK,eAAe,IAAI,OAAO,CAEpC;IAED,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,CAE7B;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,GAAG,IAAI,CAEjC;WAEY,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;WAMvB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;mBAqBrB,WAAW;CAsEnC"}
@@ -4,10 +4,10 @@ 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 { getAuth, onAuthStateChanged, signInWithCustomToken } from 'firebase/auth';
8
- import app from '../config/firebase.js';
7
+ import { onAuthStateChanged, signInWithCustomToken, signOut } from 'firebase/auth';
8
+ import { auth } from '../config/firebase.js';
9
+ import { clearAuthStorage } from '../utils/file-persistence.js';
9
10
  const execAsync = promisify(exec);
10
- const auth = getAuth(app);
11
11
  export class AuthService {
12
12
  static currentUser = null;
13
13
  static authStateInitialized = false;
@@ -15,42 +15,42 @@ export class AuthService {
15
15
  static WEB_APP_URL = 'https://salamander.space';
16
16
  static generateAuthResponseHTML(isSuccess, title, message) {
17
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>
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
54
  `;
55
55
  }
56
56
  static async openBrowser(url) {
@@ -125,35 +125,20 @@ export class AuthService {
125
125
  }
126
126
  static async initialize() {
127
127
  if (this.authStateInitialized) {
128
- // Wait for auth state to be ready if initialization is in progress
129
128
  if (this.authStateReady) {
130
129
  await this.authStateReady;
131
130
  }
132
131
  return;
133
132
  }
134
- // Create a promise that resolves when auth state is determined
135
- let resolveAuthState;
136
- this.authStateReady = new Promise((resolve) => {
137
- resolveAuthState = resolve;
133
+ this.authStateInitialized = true;
134
+ // Listen for ongoing auth state changes (token refresh failures, sign-out, etc.)
135
+ onAuthStateChanged(auth, (user) => {
136
+ this.currentUser = user;
138
137
  });
139
- // Set up Firebase Auth state observer
140
- onAuthStateChanged(auth, async (user) => {
141
- if (user) {
142
- this.currentUser = user;
143
- }
144
- else {
145
- // User signed out, clean up
146
- this.currentUser = null;
147
- }
148
- // Resolve the auth state promise once we know the state
149
- resolveAuthState();
138
+ // Wait for initial auth state to settle (loads persisted session from disk)
139
+ this.authStateReady = auth.authStateReady().then(() => {
140
+ this.currentUser = auth.currentUser;
150
141
  });
151
- this.authStateInitialized = true;
152
- // No session to restore, resolve after a short delay to allow Firebase auth state to settle
153
- setTimeout(() => {
154
- resolveAuthState();
155
- }, 100);
156
- // Wait for auth state to be determined
157
142
  await this.authStateReady;
158
143
  }
159
144
  static get isAuthenticated() {
@@ -165,6 +150,11 @@ export class AuthService {
165
150
  static get userId() {
166
151
  return this.currentUser?.uid || null;
167
152
  }
153
+ static async logout() {
154
+ await signOut(auth);
155
+ this.currentUser = null;
156
+ await clearAuthStorage();
157
+ }
168
158
  static async loginFlow() {
169
159
  console.log(chalk.blue('\nšŸ” Authentication Required'));
170
160
  console.log('Please sign in to continue.\n');
@@ -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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"}
@@ -4,6 +4,7 @@ export declare class CommandListener {
4
4
  private activeListeners;
5
5
  private isShuttingDown;
6
6
  private rl;
7
+ private quitResolve;
7
8
  static getInstance(): CommandListener;
8
9
  startListening(runner: Runner): Promise<void>;
9
10
  private setupLocalCommandPrompt;
@@ -1 +1 @@
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,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,EAAE,CAAmC;IAE7C,MAAM,CAAC,WAAW,IAAI,eAAe;IAO/B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+InD,OAAO,CAAC,uBAAuB;IAsDzB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBjC"}
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,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAEhD,MAAM,CAAC,WAAW,IAAI,eAAe;IAO/B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuJnD,OAAO,CAAC,uBAAuB;IAuEzB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBjC"}