@mako10k/shell-server 0.1.0

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +114 -0
  3. package/dist/backoffice/index.d.ts +2 -0
  4. package/dist/backoffice/index.d.ts.map +1 -0
  5. package/dist/backoffice/index.js +47 -0
  6. package/dist/backoffice/index.js.map +1 -0
  7. package/dist/backoffice/server.d.ts +45 -0
  8. package/dist/backoffice/server.d.ts.map +1 -0
  9. package/dist/backoffice/server.js +610 -0
  10. package/dist/backoffice/server.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +525 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/core/config-manager.d.ts +80 -0
  16. package/dist/core/config-manager.d.ts.map +1 -0
  17. package/dist/core/config-manager.js +218 -0
  18. package/dist/core/config-manager.js.map +1 -0
  19. package/dist/core/enhanced-history-manager.d.ts +84 -0
  20. package/dist/core/enhanced-history-manager.d.ts.map +1 -0
  21. package/dist/core/enhanced-history-manager.js +319 -0
  22. package/dist/core/enhanced-history-manager.js.map +1 -0
  23. package/dist/core/file-manager.d.ts +79 -0
  24. package/dist/core/file-manager.d.ts.map +1 -0
  25. package/dist/core/file-manager.js +338 -0
  26. package/dist/core/file-manager.js.map +1 -0
  27. package/dist/core/file-storage-subscriber.d.ts +38 -0
  28. package/dist/core/file-storage-subscriber.d.ts.map +1 -0
  29. package/dist/core/file-storage-subscriber.js +132 -0
  30. package/dist/core/file-storage-subscriber.js.map +1 -0
  31. package/dist/core/monitoring-manager.d.ts +32 -0
  32. package/dist/core/monitoring-manager.d.ts.map +1 -0
  33. package/dist/core/monitoring-manager.js +296 -0
  34. package/dist/core/monitoring-manager.js.map +1 -0
  35. package/dist/core/process-manager.d.ts +105 -0
  36. package/dist/core/process-manager.d.ts.map +1 -0
  37. package/dist/core/process-manager.js +1374 -0
  38. package/dist/core/process-manager.js.map +1 -0
  39. package/dist/core/realtime-stream-subscriber.d.ts +93 -0
  40. package/dist/core/realtime-stream-subscriber.d.ts.map +1 -0
  41. package/dist/core/realtime-stream-subscriber.js +200 -0
  42. package/dist/core/realtime-stream-subscriber.js.map +1 -0
  43. package/dist/core/remote-http-client.d.ts +15 -0
  44. package/dist/core/remote-http-client.d.ts.map +1 -0
  45. package/dist/core/remote-http-client.js +60 -0
  46. package/dist/core/remote-http-client.js.map +1 -0
  47. package/dist/core/remote-process-service.d.ts +50 -0
  48. package/dist/core/remote-process-service.d.ts.map +1 -0
  49. package/dist/core/remote-process-service.js +20 -0
  50. package/dist/core/remote-process-service.js.map +1 -0
  51. package/dist/core/server-manager.d.ts +71 -0
  52. package/dist/core/server-manager.d.ts.map +1 -0
  53. package/dist/core/server-manager.js +680 -0
  54. package/dist/core/server-manager.js.map +1 -0
  55. package/dist/core/stream-publisher.d.ts +75 -0
  56. package/dist/core/stream-publisher.d.ts.map +1 -0
  57. package/dist/core/stream-publisher.js +127 -0
  58. package/dist/core/stream-publisher.js.map +1 -0
  59. package/dist/core/streaming-pipeline-reader.d.ts +67 -0
  60. package/dist/core/streaming-pipeline-reader.d.ts.map +1 -0
  61. package/dist/core/streaming-pipeline-reader.js +191 -0
  62. package/dist/core/streaming-pipeline-reader.js.map +1 -0
  63. package/dist/core/terminal-manager.d.ts +96 -0
  64. package/dist/core/terminal-manager.d.ts.map +1 -0
  65. package/dist/core/terminal-manager.js +515 -0
  66. package/dist/core/terminal-manager.js.map +1 -0
  67. package/dist/daemon/server.d.ts +8 -0
  68. package/dist/daemon/server.d.ts.map +1 -0
  69. package/dist/daemon/server.js +416 -0
  70. package/dist/daemon/server.js.map +1 -0
  71. package/dist/daemon/uds-transport.d.ts +31 -0
  72. package/dist/daemon/uds-transport.d.ts.map +1 -0
  73. package/dist/daemon/uds-transport.js +149 -0
  74. package/dist/daemon/uds-transport.js.map +1 -0
  75. package/dist/executor/server.d.ts +20 -0
  76. package/dist/executor/server.d.ts.map +1 -0
  77. package/dist/executor/server.js +375 -0
  78. package/dist/executor/server.js.map +1 -0
  79. package/dist/index.d.ts +2 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +73 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/runtime/daemon-runtime.d.ts +4 -0
  84. package/dist/runtime/daemon-runtime.d.ts.map +1 -0
  85. package/dist/runtime/daemon-runtime.js +4 -0
  86. package/dist/runtime/daemon-runtime.js.map +1 -0
  87. package/dist/runtime/index.d.ts +3 -0
  88. package/dist/runtime/index.d.ts.map +1 -0
  89. package/dist/runtime/index.js +3 -0
  90. package/dist/runtime/index.js.map +1 -0
  91. package/dist/runtime/tool-runtime.d.ts +52 -0
  92. package/dist/runtime/tool-runtime.d.ts.map +1 -0
  93. package/dist/runtime/tool-runtime.js +161 -0
  94. package/dist/runtime/tool-runtime.js.map +1 -0
  95. package/dist/security/chat-completion-adapter.d.ts +443 -0
  96. package/dist/security/chat-completion-adapter.d.ts.map +1 -0
  97. package/dist/security/chat-completion-adapter.js +475 -0
  98. package/dist/security/chat-completion-adapter.js.map +1 -0
  99. package/dist/security/enhanced-evaluator.d.ts +139 -0
  100. package/dist/security/enhanced-evaluator.d.ts.map +1 -0
  101. package/dist/security/enhanced-evaluator.js +1208 -0
  102. package/dist/security/enhanced-evaluator.js.map +1 -0
  103. package/dist/security/evaluator-types.d.ts +614 -0
  104. package/dist/security/evaluator-types.d.ts.map +1 -0
  105. package/dist/security/evaluator-types.js +124 -0
  106. package/dist/security/evaluator-types.js.map +1 -0
  107. package/dist/security/manager.d.ts +76 -0
  108. package/dist/security/manager.d.ts.map +1 -0
  109. package/dist/security/manager.js +445 -0
  110. package/dist/security/manager.js.map +1 -0
  111. package/dist/security/security-llm-prompt-generator.d.ts +105 -0
  112. package/dist/security/security-llm-prompt-generator.d.ts.map +1 -0
  113. package/dist/security/security-llm-prompt-generator.js +323 -0
  114. package/dist/security/security-llm-prompt-generator.js.map +1 -0
  115. package/dist/security/security-tools.d.ts +174 -0
  116. package/dist/security/security-tools.d.ts.map +1 -0
  117. package/dist/security/security-tools.js +159 -0
  118. package/dist/security/security-tools.js.map +1 -0
  119. package/dist/security/validator-criteria-manager.d.ts +47 -0
  120. package/dist/security/validator-criteria-manager.d.ts.map +1 -0
  121. package/dist/security/validator-criteria-manager.js +169 -0
  122. package/dist/security/validator-criteria-manager.js.map +1 -0
  123. package/dist/tools/shell-tools.d.ts +474 -0
  124. package/dist/tools/shell-tools.d.ts.map +1 -0
  125. package/dist/tools/shell-tools.js +861 -0
  126. package/dist/tools/shell-tools.js.map +1 -0
  127. package/dist/types/enhanced-security.d.ts +529 -0
  128. package/dist/types/enhanced-security.d.ts.map +1 -0
  129. package/dist/types/enhanced-security.js +286 -0
  130. package/dist/types/enhanced-security.js.map +1 -0
  131. package/dist/types/index.d.ts +282 -0
  132. package/dist/types/index.d.ts.map +1 -0
  133. package/dist/types/index.js +158 -0
  134. package/dist/types/index.js.map +1 -0
  135. package/dist/types/quick-schemas.d.ts +177 -0
  136. package/dist/types/quick-schemas.d.ts.map +1 -0
  137. package/dist/types/quick-schemas.js +113 -0
  138. package/dist/types/quick-schemas.js.map +1 -0
  139. package/dist/types/response-schemas.d.ts +41 -0
  140. package/dist/types/response-schemas.d.ts.map +1 -0
  141. package/dist/types/response-schemas.js +41 -0
  142. package/dist/types/response-schemas.js.map +1 -0
  143. package/dist/types/schemas.d.ts +578 -0
  144. package/dist/types/schemas.d.ts.map +1 -0
  145. package/dist/types/schemas.js +498 -0
  146. package/dist/types/schemas.js.map +1 -0
  147. package/dist/utils/criteria-manager.d.ts +47 -0
  148. package/dist/utils/criteria-manager.d.ts.map +1 -0
  149. package/dist/utils/criteria-manager.js +228 -0
  150. package/dist/utils/criteria-manager.js.map +1 -0
  151. package/dist/utils/errors.d.ts +27 -0
  152. package/dist/utils/errors.d.ts.map +1 -0
  153. package/dist/utils/errors.js +67 -0
  154. package/dist/utils/errors.js.map +1 -0
  155. package/dist/utils/helpers.d.ts +85 -0
  156. package/dist/utils/helpers.d.ts.map +1 -0
  157. package/dist/utils/helpers.js +400 -0
  158. package/dist/utils/helpers.js.map +1 -0
  159. package/dist/utils/json-repair.d.ts +23 -0
  160. package/dist/utils/json-repair.d.ts.map +1 -0
  161. package/dist/utils/json-repair.js +208 -0
  162. package/dist/utils/json-repair.js.map +1 -0
  163. package/dist/utils/process-utils.d.ts +31 -0
  164. package/dist/utils/process-utils.d.ts.map +1 -0
  165. package/dist/utils/process-utils.js +217 -0
  166. package/dist/utils/process-utils.js.map +1 -0
  167. package/dist/utils/server-helpers.d.ts +4 -0
  168. package/dist/utils/server-helpers.d.ts.map +1 -0
  169. package/dist/utils/server-helpers.js +10 -0
  170. package/dist/utils/server-helpers.js.map +1 -0
  171. package/dist/utils/sse.d.ts +2 -0
  172. package/dist/utils/sse.d.ts.map +1 -0
  173. package/dist/utils/sse.js +6 -0
  174. package/dist/utils/sse.js.map +1 -0
  175. package/package.json +47 -0
@@ -0,0 +1,416 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as net from 'net';
3
+ import * as path from 'path';
4
+ import { spawn } from 'child_process';
5
+ import { existsSync } from 'fs';
6
+ import { fileURLToPath, pathToFileURL } from 'url';
7
+ import { createShellToolRuntime, dispatchToolCall, TOOL_NAMES } from '../runtime/tool-runtime.js';
8
+ import { logger } from '../utils/helpers.js';
9
+ const DAEMON_COMPONENT = 'daemon';
10
+ const SOCKET_REQUEST_TIMEOUT_MS = 1000;
11
+ const HEARTBEAT_TIMEOUT_MS = 500;
12
+ const MCP_SOCKET_FILE_NAME = 'mcp.sock';
13
+ function getArgValue(args, flag) {
14
+ const index = args.indexOf(flag);
15
+ if (index < 0 || index === args.length - 1) {
16
+ return undefined;
17
+ }
18
+ return args[index + 1];
19
+ }
20
+ async function removeIfEmpty(dirPath) {
21
+ try {
22
+ const entries = await fs.readdir(dirPath);
23
+ if (entries.length === 0) {
24
+ await fs.rmdir(dirPath);
25
+ }
26
+ }
27
+ catch {
28
+ // Best-effort cleanup only.
29
+ }
30
+ }
31
+ async function cleanupSocket(socketPath) {
32
+ try {
33
+ await fs.unlink(socketPath);
34
+ }
35
+ catch {
36
+ return;
37
+ }
38
+ const branchDir = path.dirname(socketPath);
39
+ const hashDir = path.dirname(branchDir);
40
+ await removeIfEmpty(branchDir);
41
+ await removeIfEmpty(hashDir);
42
+ }
43
+ export function resolveDaemonOptionsFromProcess() {
44
+ const args = process.argv.slice(2);
45
+ const socketPath = getArgValue(args, '--socket') || process.env['MCP_SHELL_DAEMON_SOCKET'];
46
+ const cwd = getArgValue(args, '--cwd') || process.env['MCP_SHELL_DAEMON_CWD'];
47
+ const branch = getArgValue(args, '--branch') || process.env['MCP_SHELL_DAEMON_BRANCH'];
48
+ if (!socketPath) {
49
+ throw new Error('Daemon socket path is required.');
50
+ }
51
+ return {
52
+ socketPath,
53
+ ...(cwd ? { cwd } : {}),
54
+ ...(branch ? { branch } : {}),
55
+ };
56
+ }
57
+ export async function startDaemon(options) {
58
+ const socketPath = options.socketPath;
59
+ const cwd = options.cwd;
60
+ const branch = options.branch;
61
+ const toolRuntime = createShellToolRuntime({
62
+ ...(cwd ? { defaultWorkingDirectory: cwd } : {}),
63
+ enhancedConfigOverrides: {
64
+ enhanced_mode_enabled: false,
65
+ },
66
+ });
67
+ if (!socketPath) {
68
+ throw new Error('Daemon socket path is required.');
69
+ }
70
+ if (cwd) {
71
+ process.chdir(cwd);
72
+ }
73
+ const socketDir = path.dirname(socketPath);
74
+ await fs.mkdir(socketDir, { recursive: true });
75
+ try {
76
+ const stat = await fs.stat(socketPath);
77
+ if (stat.isSocket()) {
78
+ await fs.unlink(socketPath);
79
+ }
80
+ }
81
+ catch {
82
+ // Ignore missing socket.
83
+ }
84
+ const startedAt = new Date().toISOString();
85
+ const state = {
86
+ attached: false,
87
+ detached: false,
88
+ attachedAt: undefined,
89
+ detachedAt: undefined,
90
+ };
91
+ let mcpChild = null;
92
+ const mcpSocketPath = path.join(path.dirname(socketPath), MCP_SOCKET_FILE_NAME);
93
+ const resolveMcpDaemonEntry = () => {
94
+ const override = process.env['MCP_SHELL_MCP_DAEMON_ENTRY'];
95
+ if (override) {
96
+ return override;
97
+ }
98
+ // Prefer resolving relative to this module's location so that packaged
99
+ // environments (VS Code extension / node_modules) work without relying on cwd.
100
+ const packagedCandidate = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'packages', 'mcp-shell', 'src', 'daemon.js');
101
+ const candidates = [
102
+ // Mono-repo build output co-located under dist/packages.
103
+ packagedCandidate,
104
+ // Legacy cwd-based mono-repo path.
105
+ path.resolve(process.cwd(), 'dist/packages/mcp-shell/src/daemon.js'),
106
+ ];
107
+ for (const candidate of candidates) {
108
+ if (existsSync(candidate)) {
109
+ return candidate;
110
+ }
111
+ }
112
+ // Best guess (validated by fs.access in startMcpDaemon).
113
+ return packagedCandidate;
114
+ };
115
+ const startMcpDaemon = async () => {
116
+ if (mcpChild) {
117
+ return;
118
+ }
119
+ const daemonEntry = resolveMcpDaemonEntry();
120
+ try {
121
+ await fs.access(daemonEntry);
122
+ }
123
+ catch (error) {
124
+ logger.error('MCP daemon entry not found', { error: String(error), daemonEntry }, DAEMON_COMPONENT);
125
+ return;
126
+ }
127
+ try {
128
+ await fs.unlink(mcpSocketPath);
129
+ }
130
+ catch {
131
+ // Ignore missing socket.
132
+ }
133
+ mcpChild = spawn(process.execPath, [daemonEntry], {
134
+ detached: true,
135
+ stdio: 'ignore',
136
+ env: {
137
+ ...process.env,
138
+ MCP_SHELL_MCP_SOCKET: mcpSocketPath,
139
+ },
140
+ });
141
+ mcpChild.unref();
142
+ };
143
+ let attachSocket = null;
144
+ let pongResolver = null;
145
+ const markDetached = () => {
146
+ state.attached = false;
147
+ state.detached = true;
148
+ state.detachedAt = new Date().toISOString();
149
+ };
150
+ const closeAttachSocket = () => {
151
+ if (attachSocket) {
152
+ attachSocket.destroy();
153
+ attachSocket = null;
154
+ }
155
+ };
156
+ const checkAttachLiveness = async () => {
157
+ if (!attachSocket) {
158
+ return false;
159
+ }
160
+ if (pongResolver) {
161
+ return false;
162
+ }
163
+ return new Promise((resolve) => {
164
+ const timeout = setTimeout(() => {
165
+ pongResolver = null;
166
+ resolve(false);
167
+ }, HEARTBEAT_TIMEOUT_MS);
168
+ pongResolver = (result) => {
169
+ clearTimeout(timeout);
170
+ pongResolver = null;
171
+ resolve(result);
172
+ };
173
+ try {
174
+ attachSocket?.write(`${JSON.stringify({ type: 'ping' })}\n`);
175
+ }
176
+ catch {
177
+ pongResolver = null;
178
+ clearTimeout(timeout);
179
+ resolve(false);
180
+ }
181
+ });
182
+ };
183
+ const sendResponse = (socket, response, close = true) => {
184
+ try {
185
+ socket.write(`${JSON.stringify(response)}\n`);
186
+ }
187
+ catch (error) {
188
+ logger.error('Failed to write daemon response', { error: String(error) }, DAEMON_COMPONENT);
189
+ }
190
+ finally {
191
+ if (close) {
192
+ socket.end();
193
+ }
194
+ }
195
+ };
196
+ const server = net.createServer((socket) => {
197
+ let buffer = '';
198
+ const timeout = setTimeout(() => {
199
+ socket.destroy();
200
+ }, SOCKET_REQUEST_TIMEOUT_MS);
201
+ socket.setEncoding('utf-8');
202
+ const cleanup = () => {
203
+ clearTimeout(timeout);
204
+ socket.removeAllListeners();
205
+ };
206
+ let handled = false;
207
+ socket.on('data', (chunk) => {
208
+ buffer += chunk;
209
+ if (buffer.includes('\n')) {
210
+ void handleRequest();
211
+ }
212
+ });
213
+ const handleRequest = async () => {
214
+ if (handled) {
215
+ return;
216
+ }
217
+ handled = true;
218
+ cleanup();
219
+ const line = buffer.split('\n')[0]?.trim();
220
+ if (!line) {
221
+ return;
222
+ }
223
+ socket.removeAllListeners('data');
224
+ socket.removeAllListeners('end');
225
+ let request;
226
+ try {
227
+ request = JSON.parse(line);
228
+ }
229
+ catch (error) {
230
+ sendResponse(socket, { ok: false, error: 'invalid_request' });
231
+ return;
232
+ }
233
+ const action = request.action || 'status';
234
+ if (action === 'status' || action === 'info') {
235
+ if (attachSocket) {
236
+ const alive = await checkAttachLiveness();
237
+ if (!alive) {
238
+ closeAttachSocket();
239
+ markDetached();
240
+ }
241
+ }
242
+ const uptimeSeconds = Math.max(0, Math.floor(process.uptime()));
243
+ sendResponse(socket, {
244
+ ok: true,
245
+ attached: state.attached,
246
+ detached: state.detached,
247
+ ...(state.attachedAt ? { attachedAt: state.attachedAt } : {}),
248
+ ...(state.detachedAt ? { detachedAt: state.detachedAt } : {}),
249
+ ...(action === 'info' ? { startedAt } : {}),
250
+ ...(action === 'info' ? { uptimeSeconds } : {}),
251
+ pid: process.pid,
252
+ cwd: process.cwd(),
253
+ ...(branch ? { branch } : {}),
254
+ ...(action === 'info' ? { socketPath } : {}),
255
+ ...(action === 'info' ? { mcpSocketPath } : {}),
256
+ });
257
+ return;
258
+ }
259
+ if (action === 'attach' || action === 'reattach') {
260
+ if (attachSocket) {
261
+ const alive = await checkAttachLiveness();
262
+ if (!alive) {
263
+ closeAttachSocket();
264
+ markDetached();
265
+ }
266
+ }
267
+ if (state.attached && !state.detached) {
268
+ sendResponse(socket, { ok: false, error: 'already_attached' });
269
+ return;
270
+ }
271
+ attachSocket = socket;
272
+ socket.setEncoding('utf-8');
273
+ socket.on('data', (data) => {
274
+ const messages = data.toString().split('\n');
275
+ for (const message of messages) {
276
+ if (!message.trim()) {
277
+ continue;
278
+ }
279
+ let parsed;
280
+ try {
281
+ parsed = JSON.parse(message);
282
+ }
283
+ catch {
284
+ continue;
285
+ }
286
+ if (parsed.type === 'pong' && pongResolver) {
287
+ pongResolver(true);
288
+ }
289
+ }
290
+ });
291
+ socket.on('close', () => {
292
+ if (attachSocket === socket) {
293
+ attachSocket = null;
294
+ }
295
+ markDetached();
296
+ });
297
+ socket.on('error', () => {
298
+ if (attachSocket === socket) {
299
+ attachSocket = null;
300
+ }
301
+ markDetached();
302
+ });
303
+ state.attached = true;
304
+ state.detached = false;
305
+ state.attachedAt = new Date().toISOString();
306
+ sendResponse(socket, {
307
+ ok: true,
308
+ attached: state.attached,
309
+ detached: state.detached,
310
+ ...(state.attachedAt ? { attachedAt: state.attachedAt } : {}),
311
+ ...(state.detachedAt ? { detachedAt: state.detachedAt } : {}),
312
+ pid: process.pid,
313
+ cwd: process.cwd(),
314
+ ...(branch ? { branch } : {}),
315
+ }, false);
316
+ return;
317
+ }
318
+ if (action === 'detach') {
319
+ closeAttachSocket();
320
+ markDetached();
321
+ sendResponse(socket, {
322
+ ok: true,
323
+ attached: state.attached,
324
+ detached: state.detached,
325
+ ...(state.attachedAt ? { attachedAt: state.attachedAt } : {}),
326
+ ...(state.detachedAt ? { detachedAt: state.detachedAt } : {}),
327
+ pid: process.pid,
328
+ cwd: process.cwd(),
329
+ ...(branch ? { branch } : {}),
330
+ });
331
+ return;
332
+ }
333
+ if (action === 'stop') {
334
+ sendResponse(socket, { ok: true });
335
+ if (mcpChild?.pid) {
336
+ try {
337
+ process.kill(mcpChild.pid);
338
+ }
339
+ catch {
340
+ // Best-effort shutdown only.
341
+ }
342
+ }
343
+ await shutdown();
344
+ process.exit(0);
345
+ }
346
+ if (action === 'tool') {
347
+ const toolNameRaw = request.tool_name;
348
+ const params = request.params ?? {};
349
+ if (!toolNameRaw) {
350
+ sendResponse(socket, { ok: false, error: 'missing_tool_name' });
351
+ return;
352
+ }
353
+ if (!TOOL_NAMES.includes(toolNameRaw)) {
354
+ sendResponse(socket, {
355
+ ok: false,
356
+ error: `unsupported_tool:${toolNameRaw}`,
357
+ });
358
+ return;
359
+ }
360
+ try {
361
+ const result = await dispatchToolCall(toolRuntime.shellTools, toolRuntime.serverManager, toolNameRaw, params, {
362
+ ...(cwd ? { defaultWorkingDirectory: cwd } : {}),
363
+ fallbackWorkingDirectory: process.cwd(),
364
+ });
365
+ sendResponse(socket, { ok: true, result });
366
+ }
367
+ catch (error) {
368
+ sendResponse(socket, { ok: false, error: String(error) });
369
+ }
370
+ return;
371
+ }
372
+ sendResponse(socket, { ok: false, error: 'unsupported_action' });
373
+ };
374
+ socket.on('end', () => {
375
+ void handleRequest();
376
+ });
377
+ socket.on('error', (error) => {
378
+ cleanup();
379
+ logger.error('Daemon socket error', { error: String(error) }, DAEMON_COMPONENT);
380
+ });
381
+ });
382
+ await new Promise((resolve, reject) => {
383
+ server.once('error', reject);
384
+ server.listen(socketPath, () => resolve());
385
+ });
386
+ await fs.chmod(socketPath, 0o600);
387
+ await startMcpDaemon();
388
+ logger.info('Daemon socket ready', { socketPath, cwd, branch }, DAEMON_COMPONENT);
389
+ const shutdown = async () => {
390
+ await new Promise((resolve) => {
391
+ server.close(() => resolve());
392
+ });
393
+ await toolRuntime.cleanup();
394
+ await cleanupSocket(socketPath);
395
+ };
396
+ process.on('SIGTERM', () => {
397
+ shutdown().catch((error) => {
398
+ logger.error('Daemon shutdown failed', { error: String(error) }, DAEMON_COMPONENT);
399
+ });
400
+ });
401
+ process.on('SIGINT', () => {
402
+ shutdown().catch((error) => {
403
+ logger.error('Daemon shutdown failed', { error: String(error) }, DAEMON_COMPONENT);
404
+ });
405
+ });
406
+ }
407
+ const isMain = process.argv[1]
408
+ ? pathToFileURL(process.argv[1]).href === import.meta.url
409
+ : false;
410
+ if (isMain) {
411
+ startDaemon(resolveDaemonOptionsFromProcess()).catch((error) => {
412
+ logger.error('Daemon startup failed', { error: String(error) }, DAEMON_COMPONENT);
413
+ process.exitCode = 1;
414
+ });
415
+ }
416
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { Transport, TransportSendOptions } from '@modelcontextprotocol/sdk/shared/transport.js';
3
+ import * as net from 'net';
4
+ export declare class UdsServerTransport implements Transport {
5
+ private readonly socket;
6
+ private readonly readBuffer;
7
+ private started;
8
+ onclose?: () => void;
9
+ onerror?: (error: Error) => void;
10
+ onmessage?: <T extends JSONRPCMessage>(message: T) => void;
11
+ constructor(socket: net.Socket);
12
+ start(): Promise<void>;
13
+ private processReadBuffer;
14
+ send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void>;
15
+ close(): Promise<void>;
16
+ }
17
+ export declare class UdsClientTransport implements Transport {
18
+ private readonly socketPath;
19
+ private readonly readBuffer;
20
+ private socket;
21
+ private started;
22
+ onclose?: () => void;
23
+ onerror?: (error: Error) => void;
24
+ onmessage?: <T extends JSONRPCMessage>(message: T) => void;
25
+ constructor(socketPath: string);
26
+ start(): Promise<void>;
27
+ private processReadBuffer;
28
+ send(message: JSONRPCMessage, _options?: TransportSendOptions): Promise<void>;
29
+ close(): Promise<void>;
30
+ }
31
+ //# sourceMappingURL=uds-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uds-transport.d.ts","sourceRoot":"","sources":["../../src/daemon/uds-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAErG,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAiC3B,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;gBAE/C,MAAM,EAAE,GAAG,CAAC,MAAM;IAIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,OAAO,CAAC,iBAAiB;IAcnB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B;AAED,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;gBAE/C,UAAU,EAAE,MAAM;IAIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B,OAAO,CAAC,iBAAiB;IAcnB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,149 @@
1
+ import { JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';
2
+ import * as net from 'net';
3
+ class ReadBuffer {
4
+ buffer;
5
+ append(chunk) {
6
+ this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk]) : chunk;
7
+ }
8
+ readMessage() {
9
+ if (!this.buffer) {
10
+ return null;
11
+ }
12
+ const index = this.buffer.indexOf('\n');
13
+ if (index === -1) {
14
+ return null;
15
+ }
16
+ const line = this.buffer.toString('utf8', 0, index).replace(/\r$/, '');
17
+ this.buffer = this.buffer.subarray(index + 1);
18
+ return JSONRPCMessageSchema.parse(JSON.parse(line));
19
+ }
20
+ clear() {
21
+ this.buffer = undefined;
22
+ }
23
+ }
24
+ function serializeMessage(message) {
25
+ return `${JSON.stringify(message)}\n`;
26
+ }
27
+ export class UdsServerTransport {
28
+ socket;
29
+ readBuffer = new ReadBuffer();
30
+ started = false;
31
+ onclose;
32
+ onerror;
33
+ onmessage;
34
+ constructor(socket) {
35
+ this.socket = socket;
36
+ }
37
+ async start() {
38
+ if (this.started) {
39
+ throw new Error('UdsServerTransport already started.');
40
+ }
41
+ this.started = true;
42
+ this.socket.on('data', (chunk) => {
43
+ this.readBuffer.append(chunk);
44
+ this.processReadBuffer();
45
+ });
46
+ this.socket.on('error', (error) => {
47
+ this.onerror?.(error);
48
+ });
49
+ this.socket.on('close', () => {
50
+ this.readBuffer.clear();
51
+ this.onclose?.();
52
+ });
53
+ }
54
+ processReadBuffer() {
55
+ while (true) {
56
+ try {
57
+ const message = this.readBuffer.readMessage();
58
+ if (!message) {
59
+ break;
60
+ }
61
+ this.onmessage?.(message);
62
+ }
63
+ catch (error) {
64
+ this.onerror?.(error);
65
+ }
66
+ }
67
+ }
68
+ async send(message, _options) {
69
+ return new Promise((resolve) => {
70
+ const payload = serializeMessage(message);
71
+ if (this.socket.write(payload)) {
72
+ resolve();
73
+ }
74
+ else {
75
+ this.socket.once('drain', resolve);
76
+ }
77
+ });
78
+ }
79
+ async close() {
80
+ this.socket.end();
81
+ this.onclose?.();
82
+ }
83
+ }
84
+ export class UdsClientTransport {
85
+ socketPath;
86
+ readBuffer = new ReadBuffer();
87
+ socket = null;
88
+ started = false;
89
+ onclose;
90
+ onerror;
91
+ onmessage;
92
+ constructor(socketPath) {
93
+ this.socketPath = socketPath;
94
+ }
95
+ async start() {
96
+ if (this.started) {
97
+ throw new Error('UdsClientTransport already started.');
98
+ }
99
+ this.started = true;
100
+ this.socket = net.connect({ path: this.socketPath }, () => {
101
+ // Connected
102
+ });
103
+ this.socket.on('data', (chunk) => {
104
+ this.readBuffer.append(chunk);
105
+ this.processReadBuffer();
106
+ });
107
+ this.socket.on('error', (error) => {
108
+ this.onerror?.(error);
109
+ });
110
+ this.socket.on('close', () => {
111
+ this.readBuffer.clear();
112
+ this.onclose?.();
113
+ });
114
+ }
115
+ processReadBuffer() {
116
+ while (true) {
117
+ try {
118
+ const message = this.readBuffer.readMessage();
119
+ if (!message) {
120
+ break;
121
+ }
122
+ this.onmessage?.(message);
123
+ }
124
+ catch (error) {
125
+ this.onerror?.(error);
126
+ }
127
+ }
128
+ }
129
+ async send(message, _options) {
130
+ const socket = this.socket;
131
+ if (!socket) {
132
+ throw new Error('UdsClientTransport not started.');
133
+ }
134
+ return new Promise((resolve) => {
135
+ const payload = serializeMessage(message);
136
+ if (socket.write(payload)) {
137
+ resolve();
138
+ }
139
+ else {
140
+ socket.once('drain', resolve);
141
+ }
142
+ });
143
+ }
144
+ async close() {
145
+ this.socket?.end();
146
+ this.onclose?.();
147
+ }
148
+ }
149
+ //# sourceMappingURL=uds-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uds-transport.js","sourceRoot":"","sources":["../../src/daemon/uds-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class ExecutorServer {
2
+ private server;
3
+ private readonly host;
4
+ private readonly port;
5
+ private readonly startedAt;
6
+ private executions;
7
+ private processes;
8
+ private events;
9
+ constructor(host?: string, port?: number);
10
+ start(): Promise<void>;
11
+ stop(): Promise<void>;
12
+ private json;
13
+ private initSSE;
14
+ private writeSSE;
15
+ private handleExecSSE;
16
+ private readJson;
17
+ private isLocalAddress;
18
+ private runCommand;
19
+ }
20
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/executor/server.ts"],"names":[],"mappings":"AASA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAEhD,OAAO,CAAC,UAAU,CAWH;IAEf,OAAO,CAAC,SAAS,CAAgE;IAEjF,OAAO,CAAC,MAAM,CAAsB;gBAExB,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyHtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,QAAQ;YASF,aAAa;YAiDb,QAAQ;IActB,OAAO,CAAC,cAAc;YAIR,UAAU;CA+GzB"}