@commit451/salamander 1.1.1 → 1.2.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.
- package/README.md +42 -42
- package/bin/salamander.js +1 -1
- package/dist/commands/create-runner.d.ts.map +1 -1
- package/dist/commands/create-runner.js +18 -3
- package/dist/commands/create-runner.js.map +1 -1
- package/dist/commands/delete-runner.d.ts.map +1 -1
- package/dist/commands/delete-runner.js +6 -0
- package/dist/commands/delete-runner.js.map +1 -1
- package/dist/commands/runner-selection.d.ts.map +1 -1
- package/dist/commands/runner-selection.js +2 -2
- package/dist/commands/runner-selection.js.map +1 -1
- package/dist/services/api.d.ts +2 -0
- package/dist/services/api.d.ts.map +1 -1
- package/dist/services/api.js.map +1 -1
- package/dist/services/auth.d.ts.map +1 -1
- package/dist/services/auth.js +80 -50
- package/dist/services/auth.js.map +1 -1
- package/dist/services/command-listener.d.ts +4 -1
- package/dist/services/command-listener.d.ts.map +1 -1
- package/dist/services/command-listener.js +78 -41
- package/dist/services/command-listener.js.map +1 -1
- package/dist/services/executor.d.ts +2 -0
- package/dist/services/executor.d.ts.map +1 -1
- package/dist/services/executor.js +45 -10
- package/dist/services/executor.js.map +1 -1
- package/dist/services/runner.d.ts +1 -1
- package/dist/services/runner.d.ts.map +1 -1
- package/dist/services/runner.js +17 -3
- package/dist/services/runner.js.map +1 -1
- package/dist/types/runner.d.ts +1 -0
- package/dist/types/runner.d.ts.map +1 -1
- package/package.json +52 -52
- package/dist/services/crypto.d.ts +0 -52
- package/dist/services/crypto.d.ts.map +0 -1
- package/dist/services/crypto.js +0 -104
- package/dist/services/crypto.js.map +0 -1
- package/dist/services/key-manager.d.ts +0 -45
- package/dist/services/key-manager.d.ts.map +0 -1
- package/dist/services/key-manager.js +0 -123
- package/dist/services/key-manager.js.map +0 -1
- package/dist/services/multi-device-key-manager.d.ts +0 -56
- package/dist/services/multi-device-key-manager.d.ts.map +0 -1
- package/dist/services/multi-device-key-manager.js +0 -159
- package/dist/services/multi-device-key-manager.js.map +0 -1
|
@@ -6,9 +6,16 @@ import { generateDeviceId } from '../utils/device.js';
|
|
|
6
6
|
import { EncryptionService } from '../utils/encryption.js';
|
|
7
7
|
import { loadEncryption, saveEncryption } from '../utils/storage.js';
|
|
8
8
|
export class CommandListener {
|
|
9
|
+
static instance = null;
|
|
9
10
|
activeListeners = new Map();
|
|
10
11
|
isShuttingDown = false;
|
|
11
12
|
rl = null;
|
|
13
|
+
static getInstance() {
|
|
14
|
+
if (!CommandListener.instance) {
|
|
15
|
+
CommandListener.instance = new CommandListener();
|
|
16
|
+
}
|
|
17
|
+
return CommandListener.instance;
|
|
18
|
+
}
|
|
12
19
|
async startListening(runner) {
|
|
13
20
|
if (this.activeListeners.has(runner.id)) {
|
|
14
21
|
console.log(chalk.yellow(`Already listening to runner "${runner.name}"`));
|
|
@@ -42,13 +49,19 @@ export class CommandListener {
|
|
|
42
49
|
console.log(chalk.gray(' connect to this runner. Your messages and commands are end to end encrypted'));
|
|
43
50
|
console.log('');
|
|
44
51
|
console.log(chalk.yellow('⚠️ SECURITY WARNING'));
|
|
45
|
-
|
|
52
|
+
if (runner.runnerType === 'claude') {
|
|
53
|
+
console.log(chalk.yellow(' Claude commands will be executed with --dangerously-skip-permissions'));
|
|
54
|
+
}
|
|
55
|
+
else if (runner.runnerType === 'codex') {
|
|
56
|
+
console.log(chalk.yellow(' Codex commands will be executed with --full-auto and --skip-git-repo-check'));
|
|
57
|
+
}
|
|
46
58
|
console.log(chalk.yellow(' This bypasses normal permission checks for file access and operations'));
|
|
47
59
|
console.log(chalk.yellow(' Be careful about what directories you run this in and what commands you execute'));
|
|
48
60
|
console.log('');
|
|
49
61
|
console.log(chalk.gray(` Press Ctrl+C to stop`));
|
|
50
62
|
console.log(chalk.gray(` Keep in mind, if your machine goes to sleep, it won't process commands`));
|
|
51
|
-
|
|
63
|
+
// Set up non-blocking readline for local commands
|
|
64
|
+
this.setupLocalCommandPrompt(runner.id, encryptionCode);
|
|
52
65
|
const unsubscribe = RunnerService.listenToRunner(runner.id, async (updatedRunner) => {
|
|
53
66
|
if (!updatedRunner || this.isShuttingDown)
|
|
54
67
|
return;
|
|
@@ -77,11 +90,10 @@ export class CommandListener {
|
|
|
77
90
|
senderName: runner.name,
|
|
78
91
|
type: 'runner',
|
|
79
92
|
});
|
|
80
|
-
// Update the runner with the encrypted result
|
|
81
|
-
await RunnerService.updateRunnerAfterCommand(runner.id, encryptedOutput);
|
|
93
|
+
// Update the runner with the encrypted result and threadId
|
|
94
|
+
await RunnerService.updateRunnerAfterCommand(runner.id, encryptedOutput, result.threadId);
|
|
82
95
|
console.log(chalk.blue(`💌 Message sent`));
|
|
83
96
|
console.log(chalk.gray('Waiting for next command...'));
|
|
84
|
-
await this.promptForUserCommand(runner.id, encryptionCode);
|
|
85
97
|
}
|
|
86
98
|
catch (error) {
|
|
87
99
|
console.error(chalk.red(`❌ Error processing command: ${error.message}`));
|
|
@@ -102,7 +114,6 @@ export class CommandListener {
|
|
|
102
114
|
console.error(chalk.red('Failed to update runner with error result'));
|
|
103
115
|
}
|
|
104
116
|
console.log(chalk.gray('Waiting for next command...'));
|
|
105
|
-
await this.promptForUserCommand(runner.id, encryptionCode);
|
|
106
117
|
}
|
|
107
118
|
}
|
|
108
119
|
});
|
|
@@ -123,43 +134,50 @@ export class CommandListener {
|
|
|
123
134
|
process.on('uncaughtException', cleanup);
|
|
124
135
|
process.on('unhandledRejection', cleanup);
|
|
125
136
|
}
|
|
126
|
-
|
|
137
|
+
setupLocalCommandPrompt(runnerId, encryptionCode) {
|
|
127
138
|
if (this.isShuttingDown)
|
|
128
139
|
return;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
140
|
+
// Create readline interface if it doesn't exist
|
|
141
|
+
if (!this.rl) {
|
|
142
|
+
this.rl = readline.createInterface({
|
|
143
|
+
input: process.stdin,
|
|
144
|
+
output: process.stdout,
|
|
145
|
+
prompt: chalk.green('> ')
|
|
146
|
+
});
|
|
147
|
+
console.log(chalk.cyan('\n💬 You can enter a command here (or press Ctrl+C to exit):'));
|
|
148
|
+
this.rl.prompt();
|
|
149
|
+
// Listen for line events (non-blocking)
|
|
150
|
+
this.rl.on('line', async (userInput) => {
|
|
151
|
+
if (this.isShuttingDown)
|
|
152
|
+
return;
|
|
153
|
+
// If user provided input, send it as a command
|
|
154
|
+
if (userInput && userInput.trim().length > 0) {
|
|
155
|
+
const command = userInput.trim();
|
|
156
|
+
console.log(chalk.cyan(`📤 Sending command: ${command}`));
|
|
157
|
+
try {
|
|
158
|
+
// Encrypt the command
|
|
159
|
+
const encryptResult = EncryptionService.encrypt(command, encryptionCode);
|
|
160
|
+
const encryptedCommand = encryptResult.success ? encryptResult.encrypted : command;
|
|
161
|
+
// Create a user message in Firestore
|
|
162
|
+
await RunnerService.createMessage(runnerId, {
|
|
163
|
+
content: encryptedCommand,
|
|
164
|
+
senderName: '',
|
|
165
|
+
type: 'user',
|
|
166
|
+
});
|
|
167
|
+
// Update the runner with the pending command (this will trigger the listener)
|
|
168
|
+
await RunnerService.updateRunner(runnerId, encryptedCommand);
|
|
169
|
+
console.log(chalk.blue(`✅ Command submitted successfully`));
|
|
170
|
+
console.log(chalk.gray('Processing...'));
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
console.error(chalk.red(`❌ Error submitting command: ${error.message}`));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Show prompt again for next command
|
|
177
|
+
if (!this.isShuttingDown && this.rl) {
|
|
178
|
+
this.rl.prompt();
|
|
179
|
+
}
|
|
180
|
+
});
|
|
163
181
|
}
|
|
164
182
|
}
|
|
165
183
|
async stopListening(runnerId) {
|
|
@@ -174,5 +192,24 @@ export class CommandListener {
|
|
|
174
192
|
this.rl = null;
|
|
175
193
|
}
|
|
176
194
|
}
|
|
195
|
+
async stopAll() {
|
|
196
|
+
// Unsubscribe all active Firestore listeners
|
|
197
|
+
for (const [id, unsubscribe] of this.activeListeners.entries()) {
|
|
198
|
+
try {
|
|
199
|
+
unsubscribe();
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// no-op
|
|
203
|
+
}
|
|
204
|
+
finally {
|
|
205
|
+
this.activeListeners.delete(id);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Close readline interface if present
|
|
209
|
+
if (this.rl) {
|
|
210
|
+
this.rl.close();
|
|
211
|
+
this.rl = null;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
177
214
|
}
|
|
178
215
|
//# sourceMappingURL=command-listener.js.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"command-listener.js","sourceRoot":"","sources":["../../src/services/command-listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ export interface CommandResult {
|
|
|
3
3
|
output: string;
|
|
4
4
|
success: boolean;
|
|
5
5
|
executionTime: number;
|
|
6
|
+
threadId?: string;
|
|
6
7
|
}
|
|
7
8
|
export declare class CommandExecutor {
|
|
8
9
|
static executeCommand(runner: Runner, command: string): Promise<CommandResult>;
|
|
9
10
|
private static executeRunnerCommand;
|
|
10
11
|
private static buildCommandLine;
|
|
12
|
+
private static parseCodexOutput;
|
|
11
13
|
private static getToolName;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -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;
|
|
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;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD,qBAAa,eAAe;WACX,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4CpF,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsBnC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAyB/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgC/B,OAAO,CAAC,MAAM,CAAC,WAAW;CAY7B"}
|
|
@@ -9,14 +9,23 @@ export class CommandExecutor {
|
|
|
9
9
|
console.log(chalk.gray(`Type: ${runner.runnerType}\n`));
|
|
10
10
|
const startTime = Date.now();
|
|
11
11
|
try {
|
|
12
|
-
const
|
|
12
|
+
const rawOutput = this.executeRunnerCommand(runner, command);
|
|
13
13
|
const executionTime = Date.now() - startTime;
|
|
14
|
+
// Parse Codex output if needed
|
|
15
|
+
let output = rawOutput;
|
|
16
|
+
let threadId;
|
|
17
|
+
if (runner.runnerType === RunnerType.CODEX) {
|
|
18
|
+
const parsed = this.parseCodexOutput(rawOutput);
|
|
19
|
+
output = parsed.output;
|
|
20
|
+
threadId = parsed.threadId;
|
|
21
|
+
}
|
|
14
22
|
console.log(chalk.green('✅ Command completed successfully'));
|
|
15
23
|
console.log(chalk.grey(output));
|
|
16
24
|
return {
|
|
17
25
|
output: output || 'Command executed successfully (no output)',
|
|
18
26
|
success: true,
|
|
19
|
-
executionTime
|
|
27
|
+
executionTime,
|
|
28
|
+
threadId
|
|
20
29
|
};
|
|
21
30
|
}
|
|
22
31
|
catch (error) {
|
|
@@ -60,15 +69,41 @@ export class CommandExecutor {
|
|
|
60
69
|
case RunnerType.GEMINI:
|
|
61
70
|
return `gemini -p "${escapedInput}" --yolo`;
|
|
62
71
|
case RunnerType.CODEX:
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
// Build base command
|
|
73
|
+
let codexCmd = `codex exec "${escapedInput}" --experimental-json --full-auto --skip-git-repo-check`;
|
|
74
|
+
// Add resume with threadId if we have one
|
|
75
|
+
if (runner.threadId) {
|
|
76
|
+
codexCmd += ` resume "${runner.threadId}"`;
|
|
77
|
+
}
|
|
78
|
+
return codexCmd;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
static parseCodexOutput(rawOutput) {
|
|
82
|
+
const lines = rawOutput.trim().split('\n');
|
|
83
|
+
const agentMessages = [];
|
|
84
|
+
let threadId;
|
|
85
|
+
for (const line of lines) {
|
|
86
|
+
try {
|
|
87
|
+
const event = JSON.parse(line);
|
|
88
|
+
// Extract thread ID from thread.started event
|
|
89
|
+
if (event.type === 'thread.started' && event.thread_id) {
|
|
90
|
+
threadId = event.thread_id;
|
|
91
|
+
}
|
|
92
|
+
// Extract agent messages from item.completed events
|
|
93
|
+
if (event.type === 'item.completed' && event.item?.type === 'agent_message') {
|
|
94
|
+
agentMessages.push(event.item.text);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Ignore lines that aren't valid JSON
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
71
101
|
}
|
|
102
|
+
// Combine all agent messages
|
|
103
|
+
const output = agentMessages.length > 0
|
|
104
|
+
? agentMessages.join('\n\n')
|
|
105
|
+
: rawOutput; // Fallback to raw output if no agent messages found
|
|
106
|
+
return { output, threadId };
|
|
72
107
|
}
|
|
73
108
|
static getToolName(runnerType) {
|
|
74
109
|
switch (runnerType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/services/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,UAAU,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/services/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare class RunnerService {
|
|
|
6
6
|
static createRunner(data: CreateRunnerData): Promise<Runner>;
|
|
7
7
|
static deleteRunner(runnerId: string): Promise<void>;
|
|
8
8
|
static clearPendingCommand(runnerId: string): Promise<void>;
|
|
9
|
-
static updateRunnerAfterCommand(runnerId: string, result: string): Promise<void>;
|
|
9
|
+
static updateRunnerAfterCommand(runnerId: string, result: string, threadId?: string): Promise<void>;
|
|
10
10
|
static updateRunner(runnerId: string, pendingCommand: string): Promise<void>;
|
|
11
11
|
static createMessage(runnerId: string, data: CreateMessageRequest): Promise<void>;
|
|
12
12
|
static listenToRunner(runnerId: string, callback: (runner: Runner | null) => void): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAC,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAKlF,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;WAE1C,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAkBlC,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAC,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAKlF,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;WAE1C,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;WAkBlC,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;WAmDrD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAK7C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAMpD,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAQ5F,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WAOrE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAavF,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI;IA6B9F,OAAO,CAAC,MAAM,CAAC,WAAW;IAiB1B,OAAO,CAAC,MAAM,CAAC,eAAe;CAWjC"}
|
package/dist/services/runner.js
CHANGED
|
@@ -45,7 +45,8 @@ export class RunnerService {
|
|
|
45
45
|
directory: data.directory,
|
|
46
46
|
machineId: deviceId,
|
|
47
47
|
machineName: deviceName,
|
|
48
|
-
encryptionVerification
|
|
48
|
+
encryptionVerification: encryptionVerification,
|
|
49
|
+
runnerType: data.runnerType,
|
|
49
50
|
});
|
|
50
51
|
const runnerId = response.id;
|
|
51
52
|
return {
|
|
@@ -69,10 +70,11 @@ export class RunnerService {
|
|
|
69
70
|
clearPendingCommand: true
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
|
-
static async updateRunnerAfterCommand(runnerId, result) {
|
|
73
|
+
static async updateRunnerAfterCommand(runnerId, result, threadId) {
|
|
73
74
|
await ApiService.updateRunner(runnerId, {
|
|
74
75
|
updateLastUsed: true,
|
|
75
|
-
lastMessage: result ?? ''
|
|
76
|
+
lastMessage: result ?? '',
|
|
77
|
+
threadId: threadId
|
|
76
78
|
});
|
|
77
79
|
}
|
|
78
80
|
static async updateRunner(runnerId, pendingCommand) {
|
|
@@ -100,6 +102,17 @@ export class RunnerService {
|
|
|
100
102
|
else {
|
|
101
103
|
callback(null);
|
|
102
104
|
}
|
|
105
|
+
},
|
|
106
|
+
// Swallow transient NOT_FOUND/unlisten race errors from Firestore stream restarts
|
|
107
|
+
(error) => {
|
|
108
|
+
const msg = String(error?.message || '');
|
|
109
|
+
if (error?.code === 'not-found' ||
|
|
110
|
+
msg.includes('Target id not found')) {
|
|
111
|
+
// no-op; listener cleanup or document delete races can cause this
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Re-throw other errors so they bubble and can be handled upstream
|
|
115
|
+
throw error;
|
|
103
116
|
});
|
|
104
117
|
}
|
|
105
118
|
static docToRunner(data, id) {
|
|
@@ -115,6 +128,7 @@ export class RunnerService {
|
|
|
115
128
|
machineName: data.machineName || undefined,
|
|
116
129
|
machineId: data.machineId || undefined,
|
|
117
130
|
pendingCommand: data.pendingCommand || undefined,
|
|
131
|
+
threadId: data.threadId || undefined,
|
|
118
132
|
};
|
|
119
133
|
}
|
|
120
134
|
static parseRunnerType(type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAC,EAAE,EAAC,MAAM,uBAAuB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,UAAU,EAAuB,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAqC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnE,MAAM,OAAO,aAAa;IACd,MAAM,CAAU,kBAAkB,GAAG,SAAS,CAAC;IAEvD,MAAM,CAAC,KAAK,CAAC,aAAa;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,GAAG,KAAK,CACX,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,EACvC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAC7B,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,EAClC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAC9B,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAsB;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;QAE1C,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,6BAA6B;QAC7B,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;QAE1F,qDAAqD;QACrD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC;YAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,sBAAsB;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types/runner.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/types/runner.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/types/runner.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,IAAI;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;CAC5B"}
|
package/package.json
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@commit451/salamander",
|
|
3
|
-
"version": "1.
|
|
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.6",
|
|
22
|
-
"chalk": "^5.6.2",
|
|
23
|
-
"commander": "^14.0.1",
|
|
24
|
-
"firebase": "^12.3.0"
|
|
25
|
-
},
|
|
26
|
-
"devDependencies": {
|
|
27
|
-
"@types/node": "^24.5.2",
|
|
28
|
-
"tsx": "^4.20.5",
|
|
29
|
-
"typescript": "^5.9.2"
|
|
30
|
-
},
|
|
31
|
-
"keywords": [
|
|
32
|
-
"cli",
|
|
33
|
-
"afk",
|
|
34
|
-
"automation",
|
|
35
|
-
"tool"
|
|
36
|
-
],
|
|
37
|
-
"author": "",
|
|
38
|
-
"license": "ISC",
|
|
39
|
-
"repository": {
|
|
40
|
-
"type": "git",
|
|
41
|
-
"url": ""
|
|
42
|
-
},
|
|
43
|
-
"homepage": "",
|
|
44
|
-
"bugs": {
|
|
45
|
-
"url": ""
|
|
46
|
-
},
|
|
47
|
-
"files": [
|
|
48
|
-
"dist/**/*",
|
|
49
|
-
"bin/**/*",
|
|
50
|
-
"README.md"
|
|
51
|
-
]
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@commit451/salamander",
|
|
3
|
+
"version": "1.2.1",
|
|
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.6",
|
|
22
|
+
"chalk": "^5.6.2",
|
|
23
|
+
"commander": "^14.0.1",
|
|
24
|
+
"firebase": "^12.3.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "^24.5.2",
|
|
28
|
+
"tsx": "^4.20.5",
|
|
29
|
+
"typescript": "^5.9.2"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"cli",
|
|
33
|
+
"afk",
|
|
34
|
+
"automation",
|
|
35
|
+
"tool"
|
|
36
|
+
],
|
|
37
|
+
"author": "",
|
|
38
|
+
"license": "ISC",
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": ""
|
|
42
|
+
},
|
|
43
|
+
"homepage": "",
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": ""
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"dist/**/*",
|
|
49
|
+
"bin/**/*",
|
|
50
|
+
"README.md"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
export interface KeyPair {
|
|
2
|
-
publicKey: string;
|
|
3
|
-
privateKey: string;
|
|
4
|
-
}
|
|
5
|
-
export interface EncryptedMessage {
|
|
6
|
-
encryptedData: string;
|
|
7
|
-
iv: string;
|
|
8
|
-
tag: string;
|
|
9
|
-
}
|
|
10
|
-
export declare class CryptoService {
|
|
11
|
-
private static readonly ALGORITHM;
|
|
12
|
-
private static readonly IV_LENGTH;
|
|
13
|
-
private static readonly TAG_LENGTH;
|
|
14
|
-
private static readonly KEY_LENGTH;
|
|
15
|
-
/**
|
|
16
|
-
* Generate an ECDH key pair for key exchange
|
|
17
|
-
*/
|
|
18
|
-
static generateECDHKeyPair(): KeyPair;
|
|
19
|
-
/**
|
|
20
|
-
* Derive a shared secret from ECDH key exchange
|
|
21
|
-
*/
|
|
22
|
-
static deriveSharedSecret(privateKey: string, publicKey: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* Encrypt a message using AES-256-GCM
|
|
25
|
-
*/
|
|
26
|
-
static encrypt(message: string, key: string): EncryptedMessage;
|
|
27
|
-
/**
|
|
28
|
-
* Decrypt a message using AES-256-GCM
|
|
29
|
-
*/
|
|
30
|
-
static decrypt(encryptedMessage: EncryptedMessage, key: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Generate a random 256-bit key for symmetric encryption
|
|
33
|
-
*/
|
|
34
|
-
static generateRandomKey(): string;
|
|
35
|
-
/**
|
|
36
|
-
* Check if a message appears to be encrypted
|
|
37
|
-
*/
|
|
38
|
-
static isEncrypted(message: string): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Safely encrypt a message, handling both string and object inputs
|
|
41
|
-
*/
|
|
42
|
-
static safeEncrypt(data: any, key: string): string;
|
|
43
|
-
/**
|
|
44
|
-
* Safely decrypt a message, throwing error if decryption fails
|
|
45
|
-
*/
|
|
46
|
-
static safeDecrypt(encryptedData: string, key: string): string;
|
|
47
|
-
/**
|
|
48
|
-
* Create a hash of the key for identification purposes
|
|
49
|
-
*/
|
|
50
|
-
static createKeyHash(key: string): string;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/services/crypto.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IAExC;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,OAAO;IAUrC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAYxE;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB;IAmB9D;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAevE;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAKlC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAS5C;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAMlD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAS9D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAG5C"}
|