@burdenoff/vibe-agent 1.0.1 → 1.0.3
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 +14 -14
- package/dist/app.d.ts +4 -4
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +145 -130
- package/dist/app.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +463 -333
- package/dist/cli.js.map +1 -1
- package/dist/db/schema.d.ts +15 -15
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +65 -62
- package/dist/db/schema.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/middleware/ModuleAuth.d.ts +2 -2
- package/dist/middleware/ModuleAuth.d.ts.map +1 -1
- package/dist/middleware/ModuleAuth.js +32 -29
- package/dist/middleware/ModuleAuth.js.map +1 -1
- package/dist/middleware/auth.d.ts +1 -1
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +4 -4
- package/dist/middleware/auth.js.map +1 -1
- package/dist/migrations/remove-notes-prompts.d.ts.map +1 -1
- package/dist/migrations/remove-notes-prompts.js +26 -26
- package/dist/migrations/remove-notes-prompts.js.map +1 -1
- package/dist/routes/bookmarks.d.ts +1 -1
- package/dist/routes/bookmarks.d.ts.map +1 -1
- package/dist/routes/bookmarks.js +53 -44
- package/dist/routes/bookmarks.js.map +1 -1
- package/dist/routes/config.d.ts +1 -1
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +29 -27
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/files.d.ts +1 -1
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +175 -134
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/git.d.ts +1 -1
- package/dist/routes/git.d.ts.map +1 -1
- package/dist/routes/git.js +183 -169
- package/dist/routes/git.js.map +1 -1
- package/dist/routes/moduleRegistry.d.ts +3 -3
- package/dist/routes/moduleRegistry.d.ts.map +1 -1
- package/dist/routes/moduleRegistry.js +58 -58
- package/dist/routes/moduleRegistry.js.map +1 -1
- package/dist/routes/notifications.d.ts +1 -1
- package/dist/routes/notifications.d.ts.map +1 -1
- package/dist/routes/notifications.js +69 -64
- package/dist/routes/notifications.js.map +1 -1
- package/dist/routes/port-forward.d.ts +1 -1
- package/dist/routes/port-forward.d.ts.map +1 -1
- package/dist/routes/port-forward.js +59 -50
- package/dist/routes/port-forward.js.map +1 -1
- package/dist/routes/projects.d.ts +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +134 -120
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/ssh.d.ts +1 -1
- package/dist/routes/ssh.d.ts.map +1 -1
- package/dist/routes/ssh.js +47 -47
- package/dist/routes/ssh.js.map +1 -1
- package/dist/routes/tasks.d.ts +1 -1
- package/dist/routes/tasks.d.ts.map +1 -1
- package/dist/routes/tasks.js +53 -49
- package/dist/routes/tasks.js.map +1 -1
- package/dist/routes/tmux.d.ts +1 -1
- package/dist/routes/tmux.d.ts.map +1 -1
- package/dist/routes/tmux.js +337 -241
- package/dist/routes/tmux.js.map +1 -1
- package/dist/routes/tunnel.d.ts +2 -2
- package/dist/routes/tunnel.d.ts.map +1 -1
- package/dist/routes/tunnel.js +115 -74
- package/dist/routes/tunnel.js.map +1 -1
- package/dist/services/ModulePermissions.d.ts +2 -2
- package/dist/services/ModulePermissions.d.ts.map +1 -1
- package/dist/services/ModulePermissions.js +50 -40
- package/dist/services/ModulePermissions.js.map +1 -1
- package/dist/services/ModuleRegistryService.d.ts +10 -10
- package/dist/services/ModuleRegistryService.d.ts.map +1 -1
- package/dist/services/ModuleRegistryService.js +156 -131
- package/dist/services/ModuleRegistryService.js.map +1 -1
- package/dist/services/agent.service.d.ts.map +1 -1
- package/dist/services/agent.service.js +24 -21
- package/dist/services/agent.service.js.map +1 -1
- package/dist/services/bootstrap.d.ts +1 -1
- package/dist/services/bootstrap.d.ts.map +1 -1
- package/dist/services/bootstrap.js +146 -69
- package/dist/services/bootstrap.js.map +1 -1
- package/dist/services/service-manager.d.ts +2 -2
- package/dist/services/service-manager.d.ts.map +1 -1
- package/dist/services/service-manager.js +75 -63
- package/dist/services/service-manager.js.map +1 -1
- package/package.json +1 -1
package/dist/routes/ssh.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { v4 as uuidv4 } from
|
|
2
|
-
import { Client } from
|
|
3
|
-
import { readFileSync } from
|
|
1
|
+
import { v4 as uuidv4 } from "uuid";
|
|
2
|
+
import { Client } from "ssh2";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
4
|
export const sshRoutes = async (fastify) => {
|
|
5
5
|
// Get all SSH connections
|
|
6
|
-
fastify.get(
|
|
6
|
+
fastify.get("/connections", async (_request, _reply) => {
|
|
7
7
|
const connections = fastify.db.getAllSSHConnections();
|
|
8
8
|
// Remove sensitive data
|
|
9
|
-
const safeConnections = connections.map(conn => ({
|
|
9
|
+
const safeConnections = connections.map((conn) => ({
|
|
10
10
|
...conn,
|
|
11
11
|
password: undefined,
|
|
12
|
-
privateKeyPath: conn.privateKeyPath ?
|
|
12
|
+
privateKeyPath: conn.privateKeyPath ? "***" : undefined,
|
|
13
13
|
}));
|
|
14
14
|
return { connections: safeConnections };
|
|
15
15
|
});
|
|
16
16
|
// Create SSH connection config
|
|
17
|
-
fastify.post(
|
|
18
|
-
const { serverName, host, port = 22, username, privateKeyPath, password } = request.body;
|
|
17
|
+
fastify.post("/connections", async (request, reply) => {
|
|
18
|
+
const { serverName, host, port = 22, username, privateKeyPath, password, } = request.body;
|
|
19
19
|
try {
|
|
20
20
|
// Note: Removed unique constraint on serverName since we now allow multiple connections to same server
|
|
21
21
|
const connection = fastify.db.createSSHConnection({
|
|
@@ -25,36 +25,36 @@ export const sshRoutes = async (fastify) => {
|
|
|
25
25
|
port,
|
|
26
26
|
username,
|
|
27
27
|
privateKeyPath,
|
|
28
|
-
password
|
|
28
|
+
password,
|
|
29
29
|
});
|
|
30
30
|
return {
|
|
31
31
|
connection: {
|
|
32
32
|
...connection,
|
|
33
33
|
password: undefined,
|
|
34
|
-
privateKeyPath: connection.privateKeyPath ?
|
|
35
|
-
}
|
|
34
|
+
privateKeyPath: connection.privateKeyPath ? "***" : undefined,
|
|
35
|
+
},
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
39
|
return reply.code(500).send({
|
|
40
|
-
error:
|
|
41
|
-
details: error instanceof Error ? error.message :
|
|
40
|
+
error: "Failed to create SSH connection",
|
|
41
|
+
details: error instanceof Error ? error.message : "Unknown error",
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
// Execute command on remote server
|
|
46
|
-
fastify.post(
|
|
46
|
+
fastify.post("/execute", async (request, reply) => {
|
|
47
47
|
const { connectionId, command, workingDirectory } = request.body;
|
|
48
48
|
try {
|
|
49
49
|
const connectionConfig = fastify.db.getSSHConnection(connectionId);
|
|
50
50
|
if (!connectionConfig) {
|
|
51
|
-
return reply.code(404).send({ error:
|
|
51
|
+
return reply.code(404).send({ error: "SSH connection not found" });
|
|
52
52
|
}
|
|
53
53
|
const conn = new Client();
|
|
54
|
-
let output =
|
|
55
|
-
let errorOutput =
|
|
54
|
+
let output = "";
|
|
55
|
+
let errorOutput = "";
|
|
56
56
|
return new Promise((resolve) => {
|
|
57
|
-
conn.on(
|
|
57
|
+
conn.on("ready", () => {
|
|
58
58
|
const fullCommand = workingDirectory
|
|
59
59
|
? `cd ${workingDirectory} && ${command}`
|
|
60
60
|
: command;
|
|
@@ -62,43 +62,43 @@ export const sshRoutes = async (fastify) => {
|
|
|
62
62
|
if (err) {
|
|
63
63
|
conn.end();
|
|
64
64
|
return resolve(reply.code(500).send({
|
|
65
|
-
error:
|
|
66
|
-
details: err.message
|
|
65
|
+
error: "Failed to execute command",
|
|
66
|
+
details: err.message,
|
|
67
67
|
}));
|
|
68
68
|
}
|
|
69
|
-
stream.on(
|
|
69
|
+
stream.on("close", (code) => {
|
|
70
70
|
conn.end();
|
|
71
71
|
resolve({
|
|
72
72
|
output,
|
|
73
73
|
errorOutput,
|
|
74
74
|
exitCode: code,
|
|
75
|
-
success: code === 0
|
|
75
|
+
success: code === 0,
|
|
76
76
|
});
|
|
77
77
|
});
|
|
78
|
-
stream.on(
|
|
78
|
+
stream.on("data", (data) => {
|
|
79
79
|
output += data.toString();
|
|
80
80
|
// Emit real-time output
|
|
81
|
-
fastify.io.emit(
|
|
81
|
+
fastify.io.emit("ssh:output", {
|
|
82
82
|
connectionId,
|
|
83
83
|
data: data.toString(),
|
|
84
|
-
type:
|
|
84
|
+
type: "stdout",
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
-
stream.stderr.on(
|
|
87
|
+
stream.stderr.on("data", (data) => {
|
|
88
88
|
errorOutput += data.toString();
|
|
89
89
|
// Emit real-time error output
|
|
90
|
-
fastify.io.emit(
|
|
90
|
+
fastify.io.emit("ssh:output", {
|
|
91
91
|
connectionId,
|
|
92
92
|
data: data.toString(),
|
|
93
|
-
type:
|
|
93
|
+
type: "stderr",
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
|
-
conn.on(
|
|
98
|
+
conn.on("error", (err) => {
|
|
99
99
|
resolve(reply.code(500).send({
|
|
100
|
-
error:
|
|
101
|
-
details: err.message
|
|
100
|
+
error: "SSH connection failed",
|
|
101
|
+
details: err.message,
|
|
102
102
|
}));
|
|
103
103
|
});
|
|
104
104
|
// Connect with appropriate auth method
|
|
@@ -118,30 +118,30 @@ export const sshRoutes = async (fastify) => {
|
|
|
118
118
|
}
|
|
119
119
|
catch (error) {
|
|
120
120
|
return reply.code(500).send({
|
|
121
|
-
error:
|
|
122
|
-
details: error instanceof Error ? error.message :
|
|
121
|
+
error: "Failed to execute SSH command",
|
|
122
|
+
details: error instanceof Error ? error.message : "Unknown error",
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
});
|
|
126
126
|
// Test SSH connection
|
|
127
|
-
fastify.post(
|
|
127
|
+
fastify.post("/test/:connectionId", async (request, reply) => {
|
|
128
128
|
const { connectionId } = request.params;
|
|
129
129
|
try {
|
|
130
130
|
const connectionConfig = fastify.db.getSSHConnection(connectionId);
|
|
131
131
|
if (!connectionConfig) {
|
|
132
|
-
return reply.code(404).send({ error:
|
|
132
|
+
return reply.code(404).send({ error: "SSH connection not found" });
|
|
133
133
|
}
|
|
134
134
|
const conn = new Client();
|
|
135
135
|
return new Promise((resolve) => {
|
|
136
|
-
conn.on(
|
|
136
|
+
conn.on("ready", () => {
|
|
137
137
|
conn.end();
|
|
138
|
-
resolve({ success: true, message:
|
|
138
|
+
resolve({ success: true, message: "Connection successful" });
|
|
139
139
|
});
|
|
140
|
-
conn.on(
|
|
140
|
+
conn.on("error", (err) => {
|
|
141
141
|
resolve(reply.code(500).send({
|
|
142
142
|
success: false,
|
|
143
|
-
error:
|
|
144
|
-
details: err.message
|
|
143
|
+
error: "Connection failed",
|
|
144
|
+
details: err.message,
|
|
145
145
|
}));
|
|
146
146
|
});
|
|
147
147
|
// Connect with appropriate auth method
|
|
@@ -149,7 +149,7 @@ export const sshRoutes = async (fastify) => {
|
|
|
149
149
|
host: connectionConfig.host,
|
|
150
150
|
port: connectionConfig.port,
|
|
151
151
|
username: connectionConfig.username,
|
|
152
|
-
readyTimeout: 10000 // 10 second timeout
|
|
152
|
+
readyTimeout: 10000, // 10 second timeout
|
|
153
153
|
};
|
|
154
154
|
if (connectionConfig.privateKeyPath) {
|
|
155
155
|
connectConfig.privateKey = readFileSync(connectionConfig.privateKeyPath);
|
|
@@ -163,18 +163,18 @@ export const sshRoutes = async (fastify) => {
|
|
|
163
163
|
catch (error) {
|
|
164
164
|
return reply.code(500).send({
|
|
165
165
|
success: false,
|
|
166
|
-
error:
|
|
167
|
-
details: error instanceof Error ? error.message :
|
|
166
|
+
error: "Failed to test connection",
|
|
167
|
+
details: error instanceof Error ? error.message : "Unknown error",
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
170
|
});
|
|
171
171
|
// Delete SSH connection
|
|
172
|
-
fastify.delete(
|
|
172
|
+
fastify.delete("/connections/:id", async (request, reply) => {
|
|
173
173
|
const { id } = request.params;
|
|
174
174
|
try {
|
|
175
175
|
const connection = fastify.db.getSSHConnection(id);
|
|
176
176
|
if (!connection) {
|
|
177
|
-
return reply.code(404).send({ error:
|
|
177
|
+
return reply.code(404).send({ error: "Connection not found" });
|
|
178
178
|
}
|
|
179
179
|
// Note: In a real implementation, you'd want to check if any active
|
|
180
180
|
// port forwards or sessions are using this connection first
|
|
@@ -183,8 +183,8 @@ export const sshRoutes = async (fastify) => {
|
|
|
183
183
|
}
|
|
184
184
|
catch (error) {
|
|
185
185
|
return reply.code(500).send({
|
|
186
|
-
error:
|
|
187
|
-
details: error instanceof Error ? error.message :
|
|
186
|
+
error: "Failed to delete connection",
|
|
187
|
+
details: error instanceof Error ? error.message : "Unknown error",
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
190
|
});
|
package/dist/routes/ssh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/routes/ssh.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAiBlC,MAAM,CAAC,MAAM,SAAS,GAAuB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC7D,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC;QACtD,wBAAwB;QACxB,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/routes/ssh.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/tasks.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAsB7C,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAsB7C,eAAO,MAAM,UAAU,EAAE,kBAuFxB,CAAC"}
|
package/dist/routes/tasks.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { v4 as uuidv4 } from
|
|
2
|
-
import { exec } from
|
|
3
|
-
import { promisify } from
|
|
1
|
+
import { v4 as uuidv4 } from "uuid";
|
|
2
|
+
import { exec } from "child_process";
|
|
3
|
+
import { promisify } from "util";
|
|
4
4
|
const execAsync = promisify(exec);
|
|
5
5
|
export const taskRoutes = async (fastify) => {
|
|
6
6
|
// Get all tasks
|
|
7
|
-
fastify.get(
|
|
7
|
+
fastify.get("/", async (request, _reply) => {
|
|
8
8
|
const { status } = request.query;
|
|
9
|
-
if (status ===
|
|
9
|
+
if (status === "pending") {
|
|
10
10
|
const tasks = fastify.db.getPendingTasks();
|
|
11
11
|
return { tasks };
|
|
12
12
|
}
|
|
@@ -16,60 +16,62 @@ export const taskRoutes = async (fastify) => {
|
|
|
16
16
|
return { tasks };
|
|
17
17
|
});
|
|
18
18
|
// Get task by ID
|
|
19
|
-
fastify.get(
|
|
19
|
+
fastify.get("/:id", async (request, reply) => {
|
|
20
20
|
const { id } = request.params;
|
|
21
21
|
const task = fastify.db.getTask(id);
|
|
22
22
|
if (!task) {
|
|
23
|
-
return reply.code(404).send({ error:
|
|
23
|
+
return reply.code(404).send({ error: "Task not found" });
|
|
24
24
|
}
|
|
25
25
|
return { task };
|
|
26
26
|
});
|
|
27
27
|
// Create new task
|
|
28
|
-
fastify.post(
|
|
28
|
+
fastify.post("/", async (request, reply) => {
|
|
29
29
|
const { type, payload } = request.body;
|
|
30
30
|
try {
|
|
31
31
|
const task = fastify.db.createTask({
|
|
32
32
|
id: uuidv4(),
|
|
33
33
|
type,
|
|
34
|
-
status:
|
|
35
|
-
payload: JSON.stringify(payload)
|
|
34
|
+
status: "pending",
|
|
35
|
+
payload: JSON.stringify(payload),
|
|
36
36
|
});
|
|
37
37
|
// Emit task created event
|
|
38
|
-
fastify.io.emit(
|
|
38
|
+
fastify.io.emit("task:created", task);
|
|
39
39
|
// Process task asynchronously
|
|
40
40
|
processTask(fastify, task);
|
|
41
41
|
return { task };
|
|
42
42
|
}
|
|
43
43
|
catch (error) {
|
|
44
44
|
return reply.code(500).send({
|
|
45
|
-
error:
|
|
46
|
-
details: error instanceof Error ? error.message :
|
|
45
|
+
error: "Failed to create task",
|
|
46
|
+
details: error instanceof Error ? error.message : "Unknown error",
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
// Cancel task
|
|
51
|
-
fastify.post(
|
|
51
|
+
fastify.post("/:id/cancel", async (request, reply) => {
|
|
52
52
|
const { id } = request.params;
|
|
53
53
|
try {
|
|
54
54
|
const task = fastify.db.getTask(id);
|
|
55
55
|
if (!task) {
|
|
56
|
-
return reply.code(404).send({ error:
|
|
56
|
+
return reply.code(404).send({ error: "Task not found" });
|
|
57
57
|
}
|
|
58
|
-
if (task.status !==
|
|
59
|
-
return reply
|
|
58
|
+
if (task.status !== "pending") {
|
|
59
|
+
return reply
|
|
60
|
+
.code(400)
|
|
61
|
+
.send({ error: "Only pending tasks can be cancelled" });
|
|
60
62
|
}
|
|
61
63
|
fastify.db.updateTask(id, {
|
|
62
|
-
status:
|
|
63
|
-
error:
|
|
64
|
+
status: "failed",
|
|
65
|
+
error: "Task cancelled by user",
|
|
64
66
|
});
|
|
65
67
|
// Emit task cancelled event
|
|
66
|
-
fastify.io.emit(
|
|
68
|
+
fastify.io.emit("task:cancelled", { id });
|
|
67
69
|
return { success: true };
|
|
68
70
|
}
|
|
69
71
|
catch (error) {
|
|
70
72
|
return reply.code(500).send({
|
|
71
|
-
error:
|
|
72
|
-
details: error instanceof Error ? error.message :
|
|
73
|
+
error: "Failed to cancel task",
|
|
74
|
+
details: error instanceof Error ? error.message : "Unknown error",
|
|
73
75
|
});
|
|
74
76
|
}
|
|
75
77
|
});
|
|
@@ -78,18 +80,18 @@ export const taskRoutes = async (fastify) => {
|
|
|
78
80
|
async function processTask(fastify, task) {
|
|
79
81
|
try {
|
|
80
82
|
// Update task status to running
|
|
81
|
-
fastify.db.updateTask(task.id, { status:
|
|
82
|
-
fastify.io.emit(
|
|
83
|
+
fastify.db.updateTask(task.id, { status: "running" });
|
|
84
|
+
fastify.io.emit("task:started", { id: task.id });
|
|
83
85
|
const payload = JSON.parse(task.payload);
|
|
84
86
|
let result;
|
|
85
87
|
switch (task.type) {
|
|
86
|
-
case
|
|
88
|
+
case "command":
|
|
87
89
|
result = await executeCommand(payload);
|
|
88
90
|
break;
|
|
89
|
-
case
|
|
91
|
+
case "script":
|
|
90
92
|
result = await executeScript(payload);
|
|
91
93
|
break;
|
|
92
|
-
case
|
|
94
|
+
case "file_operation":
|
|
93
95
|
result = await executeFileOperation(payload);
|
|
94
96
|
break;
|
|
95
97
|
default:
|
|
@@ -97,25 +99,25 @@ async function processTask(fastify, task) {
|
|
|
97
99
|
}
|
|
98
100
|
// Update task with result
|
|
99
101
|
fastify.db.updateTask(task.id, {
|
|
100
|
-
status:
|
|
101
|
-
result: JSON.stringify(result)
|
|
102
|
+
status: "completed",
|
|
103
|
+
result: JSON.stringify(result),
|
|
102
104
|
});
|
|
103
105
|
// Emit task completed event
|
|
104
|
-
fastify.io.emit(
|
|
106
|
+
fastify.io.emit("task:completed", {
|
|
105
107
|
id: task.id,
|
|
106
|
-
result
|
|
108
|
+
result,
|
|
107
109
|
});
|
|
108
110
|
}
|
|
109
111
|
catch (error) {
|
|
110
112
|
// Update task with error
|
|
111
113
|
fastify.db.updateTask(task.id, {
|
|
112
|
-
status:
|
|
113
|
-
error: error instanceof Error ? error.message :
|
|
114
|
+
status: "failed",
|
|
115
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
114
116
|
});
|
|
115
117
|
// Emit task failed event
|
|
116
|
-
fastify.io.emit(
|
|
118
|
+
fastify.io.emit("task:failed", {
|
|
117
119
|
id: task.id,
|
|
118
|
-
error: error instanceof Error ? error.message :
|
|
120
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
119
121
|
});
|
|
120
122
|
}
|
|
121
123
|
}
|
|
@@ -124,22 +126,24 @@ async function executeCommand(payload) {
|
|
|
124
126
|
const { command, cwd, env } = payload;
|
|
125
127
|
const { stdout, stderr } = await execAsync(command, {
|
|
126
128
|
cwd,
|
|
127
|
-
env: { ...process.env, ...env }
|
|
129
|
+
env: { ...process.env, ...env },
|
|
128
130
|
});
|
|
129
131
|
return { stdout, stderr };
|
|
130
132
|
}
|
|
131
133
|
// Execute script
|
|
132
134
|
async function executeScript(payload) {
|
|
133
|
-
const { script, interpreter =
|
|
135
|
+
const { script, interpreter = "bash", cwd } = payload;
|
|
134
136
|
// Write script to temporary file
|
|
135
|
-
const fs = await import(
|
|
136
|
-
const path = await import(
|
|
137
|
-
const os = await import(
|
|
137
|
+
const fs = await import("fs/promises");
|
|
138
|
+
const path = await import("path");
|
|
139
|
+
const os = await import("os");
|
|
138
140
|
const tmpDir = os.tmpdir();
|
|
139
141
|
const scriptFile = path.join(tmpDir, `vibecontrols-script-${Date.now()}.sh`);
|
|
140
142
|
await fs.writeFile(scriptFile, script, { mode: 0o755 });
|
|
141
143
|
try {
|
|
142
|
-
const { stdout, stderr } = await execAsync(`${interpreter} ${scriptFile}`, {
|
|
144
|
+
const { stdout, stderr } = await execAsync(`${interpreter} ${scriptFile}`, {
|
|
145
|
+
cwd,
|
|
146
|
+
});
|
|
143
147
|
return { stdout, stderr };
|
|
144
148
|
}
|
|
145
149
|
finally {
|
|
@@ -149,22 +153,22 @@ async function executeScript(payload) {
|
|
|
149
153
|
}
|
|
150
154
|
// Execute file operation
|
|
151
155
|
async function executeFileOperation(payload) {
|
|
152
|
-
const fs = await import(
|
|
156
|
+
const fs = await import("fs/promises");
|
|
153
157
|
const { operation, path, content } = payload;
|
|
154
158
|
switch (operation) {
|
|
155
|
-
case
|
|
156
|
-
const data = await fs.readFile(path,
|
|
159
|
+
case "read": {
|
|
160
|
+
const data = await fs.readFile(path, "utf-8");
|
|
157
161
|
return { content: data };
|
|
158
162
|
}
|
|
159
|
-
case
|
|
163
|
+
case "write":
|
|
160
164
|
if (!content)
|
|
161
|
-
throw new Error(
|
|
165
|
+
throw new Error("Content is required for write operation");
|
|
162
166
|
await fs.writeFile(path, content);
|
|
163
167
|
return { success: true };
|
|
164
|
-
case
|
|
168
|
+
case "delete":
|
|
165
169
|
await fs.unlink(path);
|
|
166
170
|
return { success: true };
|
|
167
|
-
case
|
|
171
|
+
case "exists":
|
|
168
172
|
try {
|
|
169
173
|
await fs.access(path);
|
|
170
174
|
return { exists: true };
|
|
@@ -172,7 +176,7 @@ async function executeFileOperation(payload) {
|
|
|
172
176
|
catch {
|
|
173
177
|
return { exists: false };
|
|
174
178
|
}
|
|
175
|
-
case
|
|
179
|
+
case "list": {
|
|
176
180
|
const files = await fs.readdir(path);
|
|
177
181
|
return { files };
|
|
178
182
|
}
|
package/dist/routes/tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/tmux.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/routes/tmux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAqB7C,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/routes/tmux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAqB7C,eAAO,MAAM,UAAU,EAAE,kBAkiCxB,CAAC"}
|