@commit451/salamander 1.0.4 → 1.0.5
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.
- package/README.md +55 -50
- package/bin/salamander.js +1 -1
- package/dist/services/auth.d.ts +2 -0
- package/dist/services/auth.d.ts.map +1 -1
- package/dist/services/auth.js +125 -12
- package/dist/services/auth.js.map +1 -1
- package/dist/services/command-listener.d.ts.map +1 -1
- package/dist/services/command-listener.js +7 -1
- package/dist/services/command-listener.js.map +1 -1
- package/package.json +54 -54
package/README.md
CHANGED
|
@@ -1,50 +1,55 @@
|
|
|
1
|
-
# Salamander CLI
|
|
2
|
-
|
|
3
|
-
Never be AFK.
|
|
4
|
-
|
|
5
|
-
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.
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
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.
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
npm install -g @commit451/salamander
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
### Start the CLI (main interface)
|
|
17
|
-
```bash
|
|
18
|
-
salamander
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Create a new runner
|
|
22
|
-
```bash
|
|
23
|
-
salamander create
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Start runner selection
|
|
27
|
-
```bash
|
|
28
|
-
salamander start
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Logout
|
|
32
|
-
```bash
|
|
33
|
-
salamander logout
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Development
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# Install dependencies
|
|
40
|
-
npm install
|
|
41
|
-
|
|
42
|
-
# Run in development mode
|
|
43
|
-
npm run dev
|
|
44
|
-
|
|
45
|
-
# Build the project
|
|
46
|
-
npm run build
|
|
47
|
-
|
|
48
|
-
# Run the built version
|
|
49
|
-
npm start
|
|
50
|
-
```
|
|
1
|
+
# Salamander CLI
|
|
2
|
+
|
|
3
|
+
Never be AFK.
|
|
4
|
+
|
|
5
|
+
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.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
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.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install -g @commit451/salamander
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
### Start the CLI (main interface)
|
|
17
|
+
```bash
|
|
18
|
+
salamander
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Create a new runner
|
|
22
|
+
```bash
|
|
23
|
+
salamander create
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Start runner selection
|
|
27
|
+
```bash
|
|
28
|
+
salamander start
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Logout
|
|
32
|
+
```bash
|
|
33
|
+
salamander logout
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Development
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Install dependencies
|
|
40
|
+
npm install
|
|
41
|
+
|
|
42
|
+
# Run in development mode
|
|
43
|
+
npm run dev
|
|
44
|
+
|
|
45
|
+
# Build the project
|
|
46
|
+
npm run build
|
|
47
|
+
|
|
48
|
+
# Run the built version
|
|
49
|
+
npm start
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Publish
|
|
53
|
+
```
|
|
54
|
+
npm run pub
|
|
55
|
+
```
|
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);
|
package/dist/services/auth.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ export declare class AuthService {
|
|
|
3
3
|
private static currentUser;
|
|
4
4
|
private static customUserInfo;
|
|
5
5
|
private static authStateInitialized;
|
|
6
|
+
private static authStateReady;
|
|
6
7
|
private static readonly CLIENT_ID;
|
|
7
8
|
private static openBrowser;
|
|
8
9
|
private static startLocalServer;
|
|
9
10
|
private static exchangeCodeForTokens;
|
|
11
|
+
private static refreshToken;
|
|
10
12
|
static initialize(): Promise<void>;
|
|
11
13
|
static get isAuthenticated(): boolean;
|
|
12
14
|
static get user(): User | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAOA,OAAO,EAA+F,IAAI,EAAC,MAAM,eAAe,CAAC;AAcjI,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAqB;IAC/C,OAAO,CAAC,MAAM,CAAC,cAAc,CAAyB;IACtD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAkB;IACrD,OAAO,CAAC,MAAM,CAAC,cAAc,CAA8B;IAE3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAA6E;mBAEzF,WAAW;mBAsBX,gBAAgB;mBA6EhB,qBAAqB;mBAwBrB,YAAY;WAoCpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6FxC,MAAM,KAAK,eAAe,IAAI,OAAO,CAEpC;IAED,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,CAE7B;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,GAAG,IAAI,CAEjC;WAGY,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;WA8E7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAUxC"}
|
package/dist/services/auth.js
CHANGED
|
@@ -13,6 +13,7 @@ export class AuthService {
|
|
|
13
13
|
static currentUser = null;
|
|
14
14
|
static customUserInfo = null;
|
|
15
15
|
static authStateInitialized = false;
|
|
16
|
+
static authStateReady = null;
|
|
16
17
|
static CLIENT_ID = '87955960620-mu7hdiu5nntb4al1ekk79dn73bu5otvu.apps.googleusercontent.com';
|
|
17
18
|
static async openBrowser(url) {
|
|
18
19
|
const platform = process.platform;
|
|
@@ -57,7 +58,35 @@ export class AuthService {
|
|
|
57
58
|
}
|
|
58
59
|
if (code) {
|
|
59
60
|
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
60
|
-
res.end(
|
|
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
|
+
`);
|
|
61
90
|
authCodeResolve(code);
|
|
62
91
|
}
|
|
63
92
|
else {
|
|
@@ -96,18 +125,79 @@ export class AuthService {
|
|
|
96
125
|
}
|
|
97
126
|
return await response.json();
|
|
98
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
|
+
}
|
|
99
158
|
static async initialize() {
|
|
100
|
-
if (this.authStateInitialized)
|
|
159
|
+
if (this.authStateInitialized) {
|
|
160
|
+
// Wait for auth state to be ready if initialization is in progress
|
|
161
|
+
if (this.authStateReady) {
|
|
162
|
+
await this.authStateReady;
|
|
163
|
+
}
|
|
101
164
|
return;
|
|
165
|
+
}
|
|
166
|
+
// Create a promise that resolves when auth state is determined
|
|
167
|
+
let resolveAuthState;
|
|
168
|
+
this.authStateReady = new Promise((resolve) => {
|
|
169
|
+
resolveAuthState = resolve;
|
|
170
|
+
});
|
|
102
171
|
// Try to restore from stored auth
|
|
103
172
|
const storedAuth = await loadAuth();
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
+
}
|
|
111
201
|
}
|
|
112
202
|
// Set up Firebase Auth state observer
|
|
113
203
|
onAuthStateChanged(auth, async (user) => {
|
|
@@ -120,12 +210,13 @@ export class AuthService {
|
|
|
120
210
|
name: user.displayName || user.email?.split('@')[0] || ''
|
|
121
211
|
};
|
|
122
212
|
}
|
|
123
|
-
//
|
|
213
|
+
// Only update user info in storage, preserve OAuth tokens if they exist
|
|
214
|
+
const existingAuth = await loadAuth();
|
|
124
215
|
await saveAuth({
|
|
125
216
|
userId: user.uid,
|
|
126
217
|
email: user.email || '',
|
|
127
|
-
accessToken: undefined,
|
|
128
|
-
refreshToken: undefined
|
|
218
|
+
accessToken: existingAuth?.accessToken || undefined,
|
|
219
|
+
refreshToken: existingAuth?.refreshToken || undefined
|
|
129
220
|
});
|
|
130
221
|
}
|
|
131
222
|
else {
|
|
@@ -134,8 +225,23 @@ export class AuthService {
|
|
|
134
225
|
this.customUserInfo = null;
|
|
135
226
|
await clearAuth();
|
|
136
227
|
}
|
|
228
|
+
// Resolve the auth state promise once we know the state
|
|
229
|
+
if (resolveAuthState) {
|
|
230
|
+
resolveAuthState();
|
|
231
|
+
resolveAuthState = null;
|
|
232
|
+
}
|
|
137
233
|
});
|
|
138
234
|
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
|
+
}
|
|
243
|
+
// Wait for auth state to be determined
|
|
244
|
+
await this.authStateReady;
|
|
139
245
|
}
|
|
140
246
|
static get isAuthenticated() {
|
|
141
247
|
return this.currentUser !== null;
|
|
@@ -189,6 +295,13 @@ export class AuthService {
|
|
|
189
295
|
const credential = GoogleAuthProvider.credential(null, tokens.access_token);
|
|
190
296
|
const userCredential = await signInWithCredential(auth, credential);
|
|
191
297
|
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
|
+
});
|
|
192
305
|
console.log(chalk.green(`✅ Welcome ${userCredential.user.displayName || userCredential.user.email}!`));
|
|
193
306
|
console.log(chalk.green('✅ Login successful!'));
|
|
194
307
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAClC,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAK1C,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAS;IAEzB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
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;AAK1C,qBAAa,eAAe;IACxB,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAS;IAEzB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2F7C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAcvD"}
|
|
@@ -20,6 +20,12 @@ export class CommandListener {
|
|
|
20
20
|
console.log(chalk.blue(`👂 Started listening for commands on runner "${runner.name}"`));
|
|
21
21
|
console.log(chalk.gray(` Directory: ${runner.directory}`));
|
|
22
22
|
console.log(chalk.gray(` Type: ${runner.runnerType}`));
|
|
23
|
+
console.log('');
|
|
24
|
+
console.log(chalk.yellow('⚠️ SECURITY WARNING'));
|
|
25
|
+
console.log(chalk.yellow(' Claude commands will be executed with --dangerously-skip-permissions'));
|
|
26
|
+
console.log(chalk.yellow(' This bypasses normal permission checks for file access and operations'));
|
|
27
|
+
console.log(chalk.yellow(' Be careful about what directories you run this in and what commands you execute'));
|
|
28
|
+
console.log('');
|
|
23
29
|
console.log(chalk.gray(` Press Ctrl+C to stop`));
|
|
24
30
|
console.log(chalk.gray(` Keep in mind, if your machine goes to sleep, it won't process commands`));
|
|
25
31
|
const unsubscribe = RunnerService.listenToRunner(runner.id, async (updatedRunner) => {
|
|
@@ -69,7 +75,7 @@ export class CommandListener {
|
|
|
69
75
|
const cleanup = async () => {
|
|
70
76
|
this.isShuttingDown = true;
|
|
71
77
|
await this.stopListening(runner.id);
|
|
72
|
-
console.log(chalk.blue(`👋 Stopped
|
|
78
|
+
console.log(chalk.blue(`👋 Stopped runner "${runner.name}"`));
|
|
73
79
|
process.exit(0);
|
|
74
80
|
};
|
|
75
81
|
process.on('SIGINT', cleanup);
|
|
@@ -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;AAE1B,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,eAAe;IAChB,eAAe,GAA4B,IAAI,GAAG,EAAE,CAAC;IACrD,cAAc,GAAG,KAAK,CAAC;IAE/B,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,uBAAuB;QACvB,MAAM,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE/C,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;QAChB,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;QAErG,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,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAEhF,IAAI,CAAC;oBACD,wCAAwC;oBACxC,MAAM,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEnD,sBAAsB;oBACtB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;oBAEjG,0CAA0C;oBAC1C,MAAM,aAAa,CAAC,aAAa,CAAC;wBAC9B,OAAO,EAAE,MAAM,CAAC,MAAM;wBACtB,UAAU,EAAE,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,MAAM,CAAC,EAAE;qBACtB,CAAC,CAAC;oBAEH,oCAAoC;oBACpC,MAAM,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBAEvE,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;gBAC3D,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,IAAI,CAAC;wBACD,yCAAyC;wBACzC,MAAM,aAAa,CAAC,aAAa,CAAC;4BAC9B,OAAO,EAAE,YAAY;4BACrB,UAAU,EAAE,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,MAAM,CAAC,EAAE;yBACtB,CAAC,CAAC;wBAEH,MAAM,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;oBAC1E,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;gBAC3D,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,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnC,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;YAEtC,wBAAwB;YACxB,IAAI,CAAC;gBACD,MAAM,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@commit451/salamander",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Never be AFK",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"salamander": "bin/salamander.js"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"dev": "tsx src/index.ts",
|
|
13
|
-
"start": "node dist/index.js",
|
|
14
|
-
"prepare": "npm run build",
|
|
15
|
-
"pub": "npm publish --access public"
|
|
16
|
-
},
|
|
17
|
-
"engines": {
|
|
18
|
-
"node": ">=18.0.0"
|
|
19
|
-
},
|
|
20
|
-
"dependencies": {
|
|
21
|
-
"@inquirer/prompts": "^7.8.4",
|
|
22
|
-
"chalk": "^5.6.2",
|
|
23
|
-
"commander": "^14.0.0",
|
|
24
|
-
"firebase": "^12.2.1",
|
|
25
|
-
"uuid": "^13.0.0"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@types/node": "^24.3.1",
|
|
29
|
-
"@types/uuid": "^10.0.0",
|
|
30
|
-
"tsx": "^4.20.5",
|
|
31
|
-
"typescript": "^5.9.2"
|
|
32
|
-
},
|
|
33
|
-
"keywords": [
|
|
34
|
-
"cli",
|
|
35
|
-
"afk",
|
|
36
|
-
"automation",
|
|
37
|
-
"tool"
|
|
38
|
-
],
|
|
39
|
-
"author": "",
|
|
40
|
-
"license": "ISC",
|
|
41
|
-
"repository": {
|
|
42
|
-
"type": "git",
|
|
43
|
-
"url": ""
|
|
44
|
-
},
|
|
45
|
-
"homepage": "",
|
|
46
|
-
"bugs": {
|
|
47
|
-
"url": ""
|
|
48
|
-
},
|
|
49
|
-
"files": [
|
|
50
|
-
"dist/**/*",
|
|
51
|
-
"bin/**/*",
|
|
52
|
-
"README.md"
|
|
53
|
-
]
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@commit451/salamander",
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"description": "Never be AFK",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"salamander": "bin/salamander.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsx src/index.ts",
|
|
13
|
+
"start": "node dist/index.js",
|
|
14
|
+
"prepare": "npm run build",
|
|
15
|
+
"pub": "npm publish --access public"
|
|
16
|
+
},
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=18.0.0"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@inquirer/prompts": "^7.8.4",
|
|
22
|
+
"chalk": "^5.6.2",
|
|
23
|
+
"commander": "^14.0.0",
|
|
24
|
+
"firebase": "^12.2.1",
|
|
25
|
+
"uuid": "^13.0.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^24.3.1",
|
|
29
|
+
"@types/uuid": "^10.0.0",
|
|
30
|
+
"tsx": "^4.20.5",
|
|
31
|
+
"typescript": "^5.9.2"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"cli",
|
|
35
|
+
"afk",
|
|
36
|
+
"automation",
|
|
37
|
+
"tool"
|
|
38
|
+
],
|
|
39
|
+
"author": "",
|
|
40
|
+
"license": "ISC",
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": ""
|
|
44
|
+
},
|
|
45
|
+
"homepage": "",
|
|
46
|
+
"bugs": {
|
|
47
|
+
"url": ""
|
|
48
|
+
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist/**/*",
|
|
51
|
+
"bin/**/*",
|
|
52
|
+
"README.md"
|
|
53
|
+
]
|
|
54
|
+
}
|