@jungjaehoon/mama-os 0.9.3 → 0.9.4
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/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +2 -3
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/claude-cli-wrapper.d.ts +4 -4
- package/dist/agent/claude-cli-wrapper.d.ts.map +1 -1
- package/dist/agent/claude-cli-wrapper.js +17 -5
- package/dist/agent/claude-cli-wrapper.js.map +1 -1
- package/dist/agent/claude-client.js +3 -3
- package/dist/agent/claude-client.js.map +1 -1
- package/dist/agent/codex-mcp-process.d.ts +10 -0
- package/dist/agent/codex-mcp-process.d.ts.map +1 -1
- package/dist/agent/codex-mcp-process.js +226 -58
- package/dist/agent/codex-mcp-process.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +15 -1
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +37 -3
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +1 -0
- package/dist/agent/persistent-cli-process.d.ts +2 -0
- package/dist/agent/persistent-cli-process.d.ts.map +1 -1
- package/dist/agent/persistent-cli-process.js +15 -0
- package/dist/agent/persistent-cli-process.js.map +1 -1
- package/dist/agent/types.d.ts +3 -3
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +30 -4
- package/dist/api/graph-api.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +91 -6
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +7 -1
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +49 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/config/types.d.ts +3 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +3 -3
- package/dist/cli/config/types.js.map +1 -1
- package/dist/gateways/image-analyzer.js +1 -1
- package/dist/gateways/image-analyzer.js.map +1 -1
- package/dist/gateways/slack.d.ts.map +1 -1
- package/dist/gateways/slack.js +8 -9
- package/dist/gateways/slack.js.map +1 -1
- package/dist/multi-agent/agent-process-manager.d.ts +12 -0
- package/dist/multi-agent/agent-process-manager.d.ts.map +1 -1
- package/dist/multi-agent/agent-process-manager.js +100 -10
- package/dist/multi-agent/agent-process-manager.js.map +1 -1
- package/dist/multi-agent/bmad-templates.d.ts +67 -0
- package/dist/multi-agent/bmad-templates.d.ts.map +1 -0
- package/dist/multi-agent/bmad-templates.js +248 -0
- package/dist/multi-agent/bmad-templates.js.map +1 -0
- package/dist/multi-agent/multi-agent-base.d.ts +1 -0
- package/dist/multi-agent/multi-agent-base.d.ts.map +1 -1
- package/dist/multi-agent/multi-agent-base.js +7 -3
- package/dist/multi-agent/multi-agent-base.js.map +1 -1
- package/dist/multi-agent/multi-agent-discord.d.ts.map +1 -1
- package/dist/multi-agent/multi-agent-discord.js +24 -2
- package/dist/multi-agent/multi-agent-discord.js.map +1 -1
- package/dist/multi-agent/multi-agent-slack.d.ts +2 -0
- package/dist/multi-agent/multi-agent-slack.d.ts.map +1 -1
- package/dist/multi-agent/multi-agent-slack.js +78 -19
- package/dist/multi-agent/multi-agent-slack.js.map +1 -1
- package/dist/multi-agent/runtime-process.d.ts +3 -0
- package/dist/multi-agent/runtime-process.d.ts.map +1 -1
- package/dist/multi-agent/runtime-process.js +4 -0
- package/dist/multi-agent/runtime-process.js.map +1 -1
- package/dist/multi-agent/types.d.ts +20 -0
- package/dist/multi-agent/types.d.ts.map +1 -1
- package/dist/multi-agent/types.js.map +1 -1
- package/dist/multi-agent/workflow-engine.d.ts +7 -0
- package/dist/multi-agent/workflow-engine.d.ts.map +1 -1
- package/dist/multi-agent/workflow-engine.js +210 -30
- package/dist/multi-agent/workflow-engine.js.map +1 -1
- package/dist/multi-agent/workflow-types.d.ts +5 -1
- package/dist/multi-agent/workflow-types.d.ts.map +1 -1
- package/dist/onboarding/phase-7-integrations.js +1 -1
- package/dist/onboarding/phase-7-integrations.js.map +1 -1
- package/dist/setup/setup-prompt.d.ts +1 -1
- package/dist/setup/setup-prompt.d.ts.map +1 -1
- package/dist/setup/setup-prompt.js +1 -1
- package/package.json +1 -1
- package/public/viewer/js/modules/settings.js +110 -15
- package/public/viewer/js/utils/format.js +10 -7
- package/public/viewer/src/modules/settings.ts +133 -16
- package/public/viewer/src/utils/api.ts +2 -1
- package/public/viewer/src/utils/format.ts +10 -7
- package/public/viewer/viewer.html +1 -0
- package/templates/bmad/LICENSE +28 -0
- package/templates/bmad/architecture.md +343 -0
- package/templates/bmad/bmm-workflow-status.template.yaml +66 -0
- package/templates/bmad/prd.md +198 -0
- package/templates/bmad/product-brief.md +149 -0
- package/templates/bmad/sprint-status.template.yaml +35 -0
- package/templates/bmad/tech-spec.md +151 -0
- package/templates/personas/conductor.md +86 -15
|
@@ -49,9 +49,14 @@ exports.CodexMCPProcess = void 0;
|
|
|
49
49
|
const child_process_1 = require("child_process");
|
|
50
50
|
const events_1 = require("events");
|
|
51
51
|
const readline = __importStar(require("readline"));
|
|
52
|
+
const fs_1 = require("fs");
|
|
53
|
+
const os_1 = require("os");
|
|
54
|
+
const path_1 = require("path");
|
|
52
55
|
const debugLogger = __importStar(require("@jungjaehoon/mama-core/debug-logger"));
|
|
53
56
|
const { DebugLogger } = debugLogger;
|
|
54
57
|
const logger = new DebugLogger('CodexMCP');
|
|
58
|
+
const DEFAULT_REQUEST_TIMEOUT_MS = 15 * 60 * 1000;
|
|
59
|
+
const DEFAULT_INITIALIZE_TIMEOUT_MS = 60 * 1000;
|
|
55
60
|
class CodexMCPProcess extends events_1.EventEmitter {
|
|
56
61
|
process = null;
|
|
57
62
|
options;
|
|
@@ -73,11 +78,33 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
73
78
|
return;
|
|
74
79
|
}
|
|
75
80
|
this.state = 'starting';
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
let command;
|
|
82
|
+
try {
|
|
83
|
+
command = this.resolveCodexCommand();
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.state = 'dead';
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
logger.info(`Starting Codex MCP server with command: ${command}`);
|
|
90
|
+
try {
|
|
91
|
+
this.process = (0, child_process_1.spawn)(command, ['mcp-server'], {
|
|
92
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
93
|
+
cwd: this.options.cwd,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const startError = error instanceof Error ? error : new Error(String(error));
|
|
98
|
+
logger.error('Failed to start Codex MCP process:', startError);
|
|
99
|
+
this.state = 'dead';
|
|
100
|
+
this.process = null;
|
|
101
|
+
throw startError;
|
|
102
|
+
}
|
|
103
|
+
if (!this.process) {
|
|
104
|
+
const startError = new Error(`Failed to create Codex MCP process with command: ${command}`);
|
|
105
|
+
this.state = 'dead';
|
|
106
|
+
throw startError;
|
|
107
|
+
}
|
|
81
108
|
// Set up readline for JSON parsing
|
|
82
109
|
this.rl = readline.createInterface({
|
|
83
110
|
input: this.process.stdout,
|
|
@@ -92,40 +119,49 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
92
119
|
});
|
|
93
120
|
this.process.on('close', (code) => {
|
|
94
121
|
logger.info(`Process closed with code ${code}`);
|
|
95
|
-
this.
|
|
96
|
-
this.process = null;
|
|
97
|
-
this.threadId = null;
|
|
122
|
+
this.shutdown(new Error(`Process closed with code ${code ?? 'unknown'}`), false);
|
|
98
123
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
124
|
+
// Wait for process to either start successfully or fail with spawn error
|
|
125
|
+
await new Promise((resolve, reject) => {
|
|
126
|
+
const onSpawnError = (error) => {
|
|
127
|
+
logger.error('Process spawn error:', error);
|
|
128
|
+
this.state = 'dead';
|
|
129
|
+
reject(error);
|
|
130
|
+
};
|
|
131
|
+
this.process.on('error', onSpawnError);
|
|
132
|
+
// Give process a moment to start; if no error fires, it spawned OK
|
|
133
|
+
setTimeout(() => {
|
|
134
|
+
this.process?.removeListener('error', onSpawnError);
|
|
135
|
+
this.process?.on('error', (error) => {
|
|
136
|
+
logger.error('Process error:', error);
|
|
137
|
+
if (this.listenerCount('error') > 0) {
|
|
138
|
+
this.emit('error', error);
|
|
139
|
+
}
|
|
140
|
+
this.shutdown(error instanceof Error ? error : new Error(String(error)), true);
|
|
141
|
+
});
|
|
142
|
+
resolve();
|
|
143
|
+
}, 200);
|
|
102
144
|
});
|
|
103
|
-
// Give process a moment to start, then send initialize request
|
|
104
|
-
// MCP servers don't output anything until client sends first request
|
|
105
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
106
145
|
try {
|
|
107
|
-
// MCP Initialize
|
|
108
|
-
await
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
146
|
+
// MCP Initialize (bounded timeout to avoid dead startup)
|
|
147
|
+
await Promise.race([
|
|
148
|
+
this.sendRequest('initialize', {
|
|
149
|
+
protocolVersion: '2024-11-05',
|
|
150
|
+
capabilities: {},
|
|
151
|
+
clientInfo: { name: 'MAMA', version: '1.0.0' },
|
|
152
|
+
}),
|
|
153
|
+
new Promise((_, reject) => {
|
|
154
|
+
setTimeout(() => {
|
|
155
|
+
reject(new Error(`MCP initialize timeout after ${DEFAULT_INITIALIZE_TIMEOUT_MS}ms`));
|
|
156
|
+
}, DEFAULT_INITIALIZE_TIMEOUT_MS);
|
|
157
|
+
}),
|
|
158
|
+
]);
|
|
113
159
|
this.state = 'ready';
|
|
114
160
|
logger.info('Codex MCP server ready');
|
|
115
161
|
}
|
|
116
162
|
catch (error) {
|
|
117
|
-
// Cleanup on initialization failure
|
|
118
163
|
logger.error('MCP initialization failed:', error);
|
|
119
|
-
this.
|
|
120
|
-
this.threadId = null;
|
|
121
|
-
if (this.rl) {
|
|
122
|
-
this.rl.close();
|
|
123
|
-
this.rl = null;
|
|
124
|
-
}
|
|
125
|
-
if (this.process) {
|
|
126
|
-
this.process.kill();
|
|
127
|
-
this.process = null;
|
|
128
|
-
}
|
|
164
|
+
this.cleanup('MCP initialization failed');
|
|
129
165
|
throw error;
|
|
130
166
|
}
|
|
131
167
|
}
|
|
@@ -133,9 +169,17 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
133
169
|
* Send a prompt and get response
|
|
134
170
|
*/
|
|
135
171
|
async prompt(content, callbacks, options) {
|
|
136
|
-
// Ensure process is running
|
|
172
|
+
// Ensure process is running (retry once on failure)
|
|
137
173
|
if (this.state === 'dead') {
|
|
138
|
-
|
|
174
|
+
try {
|
|
175
|
+
await this.start();
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
logger.warn('First start attempt failed, retrying in 1s:', err);
|
|
179
|
+
this.cleanup('Process restart after failed start');
|
|
180
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
181
|
+
await this.start();
|
|
182
|
+
}
|
|
139
183
|
}
|
|
140
184
|
// Handle resumeSession option
|
|
141
185
|
if (options?.resumeSession === false) {
|
|
@@ -178,13 +222,13 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
178
222
|
if (this.options.compactPrompt) {
|
|
179
223
|
args['compact-prompt'] = this.options.compactPrompt;
|
|
180
224
|
}
|
|
181
|
-
result = await this.
|
|
225
|
+
result = await this.callToolWithRetry('codex', args);
|
|
182
226
|
this.threadId = result.threadId;
|
|
183
227
|
logger.info(`Thread started: ${this.threadId}`);
|
|
184
228
|
}
|
|
185
229
|
else {
|
|
186
230
|
// Subsequent messages: use "codex-reply" tool
|
|
187
|
-
result = await this.
|
|
231
|
+
result = await this.callToolWithRetry('codex-reply', {
|
|
188
232
|
threadId: this.threadId,
|
|
189
233
|
prompt: content,
|
|
190
234
|
});
|
|
@@ -242,29 +286,16 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
242
286
|
* Stop the process
|
|
243
287
|
*/
|
|
244
288
|
stop() {
|
|
245
|
-
|
|
246
|
-
this.process.kill();
|
|
247
|
-
this.process = null;
|
|
248
|
-
}
|
|
249
|
-
if (this.rl) {
|
|
250
|
-
this.rl.close();
|
|
251
|
-
this.rl = null;
|
|
252
|
-
}
|
|
253
|
-
this.state = 'dead';
|
|
254
|
-
this.threadId = null;
|
|
255
|
-
// Reject all pending requests and clear their timeouts
|
|
256
|
-
for (const [, pending] of this.pendingRequests) {
|
|
257
|
-
clearTimeout(pending.timeout);
|
|
258
|
-
pending.reject(new Error('Process stopped'));
|
|
259
|
-
}
|
|
260
|
-
this.pendingRequests.clear();
|
|
289
|
+
this.cleanup('Process stopped');
|
|
261
290
|
logger.info('Process stopped');
|
|
262
291
|
}
|
|
292
|
+
cleanup(reason = 'Process terminated') {
|
|
293
|
+
this.shutdown(new Error(reason), true);
|
|
294
|
+
}
|
|
263
295
|
// ============================================================================
|
|
264
296
|
// Internal methods
|
|
265
297
|
// ============================================================================
|
|
266
298
|
async callTool(name, args) {
|
|
267
|
-
logger.debug(`[CALL] ${name}`);
|
|
268
299
|
const response = (await this.sendRequest('tools/call', {
|
|
269
300
|
name,
|
|
270
301
|
arguments: args,
|
|
@@ -306,6 +337,28 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
306
337
|
logger.warn(`Unexpected callTool response format: ${JSON.stringify(response)}`);
|
|
307
338
|
return { threadId: this.threadId || '', content: '', usage };
|
|
308
339
|
}
|
|
340
|
+
async callToolWithRetry(name, args) {
|
|
341
|
+
let attempt = 0;
|
|
342
|
+
while (attempt < 2) {
|
|
343
|
+
attempt += 1;
|
|
344
|
+
try {
|
|
345
|
+
logger.debug(`[CALL] ${name} (attempt=${attempt})`);
|
|
346
|
+
return await this.callTool(name, args);
|
|
347
|
+
}
|
|
348
|
+
catch (error) {
|
|
349
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
350
|
+
if (attempt >= 2 || !this.isRetryableToolError(err)) {
|
|
351
|
+
logger.error(`Call failed: ${name} (attempt=${attempt})`, err);
|
|
352
|
+
throw err;
|
|
353
|
+
}
|
|
354
|
+
logger.warn(`Retrying ${name} after recoverable tool error: ${err.message}`);
|
|
355
|
+
this.threadId = null;
|
|
356
|
+
this.cleanup();
|
|
357
|
+
await this.start();
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
throw new Error(`Tool call failed after ${attempt} attempts: ${name}`);
|
|
361
|
+
}
|
|
309
362
|
async sendRequest(method, params) {
|
|
310
363
|
if (!this.process?.stdin) {
|
|
311
364
|
throw new Error('Process not running');
|
|
@@ -318,15 +371,25 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
318
371
|
params,
|
|
319
372
|
};
|
|
320
373
|
return new Promise((resolve, reject) => {
|
|
321
|
-
const timeoutMs = this.options.timeoutMs ??
|
|
374
|
+
const timeoutMs = this.options.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
322
375
|
const timeout = setTimeout(() => {
|
|
323
|
-
|
|
324
|
-
|
|
376
|
+
const timeoutError = new Error(`Request timeout: ${method} (id=${id}, timeoutMs=${timeoutMs})`);
|
|
377
|
+
this.failPendingRequest(id, timeoutError);
|
|
378
|
+
this.shutdown(timeoutError, true);
|
|
325
379
|
}, timeoutMs);
|
|
326
|
-
this.pendingRequests.set(id, { resolve, reject, timeout });
|
|
380
|
+
this.pendingRequests.set(id, { resolve, reject, method, timeout });
|
|
327
381
|
const line = JSON.stringify(request) + '\n';
|
|
328
|
-
|
|
329
|
-
|
|
382
|
+
try {
|
|
383
|
+
this.process.stdin.write(line);
|
|
384
|
+
logger.debug(`Sent: ${method} (id=${id})`);
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
const requestError = error instanceof Error ? error : new Error(String(error));
|
|
388
|
+
logger.error('Failed to write MCP request:', requestError);
|
|
389
|
+
this.failPendingRequest(id, requestError);
|
|
390
|
+
this.shutdown(requestError, true);
|
|
391
|
+
reject(requestError);
|
|
392
|
+
}
|
|
330
393
|
});
|
|
331
394
|
}
|
|
332
395
|
handleLine(line) {
|
|
@@ -352,6 +415,111 @@ class CodexMCPProcess extends events_1.EventEmitter {
|
|
|
352
415
|
logger.warn('Failed to parse line:', line.substring(0, 100));
|
|
353
416
|
}
|
|
354
417
|
}
|
|
418
|
+
resolveCodexCommand() {
|
|
419
|
+
const configured = [
|
|
420
|
+
this.options.command,
|
|
421
|
+
process.env.MAMA_CODEX_COMMAND,
|
|
422
|
+
process.env.CODEX_COMMAND,
|
|
423
|
+
];
|
|
424
|
+
for (const candidate of configured) {
|
|
425
|
+
if (!candidate) {
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
428
|
+
const trimmed = candidate.trim();
|
|
429
|
+
if (!trimmed) {
|
|
430
|
+
continue;
|
|
431
|
+
}
|
|
432
|
+
if (this.isExecutable(trimmed)) {
|
|
433
|
+
return trimmed;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
const fromPath = this.findExecutableInPath('codex');
|
|
437
|
+
if (fromPath) {
|
|
438
|
+
return fromPath;
|
|
439
|
+
}
|
|
440
|
+
const home = (0, os_1.homedir)();
|
|
441
|
+
const fallbackCandidates = [
|
|
442
|
+
(0, path_1.join)(home, '.local', 'bin', 'codex'),
|
|
443
|
+
(0, path_1.join)(home, 'bin', 'codex'),
|
|
444
|
+
'/usr/local/bin/codex',
|
|
445
|
+
'/usr/bin/codex',
|
|
446
|
+
'/opt/homebrew/bin/codex',
|
|
447
|
+
'/bin/codex',
|
|
448
|
+
];
|
|
449
|
+
for (const candidate of fallbackCandidates) {
|
|
450
|
+
if (this.isExecutable(candidate)) {
|
|
451
|
+
return candidate;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
throw new Error('Codex command not found. Set MAMA_CODEX_COMMAND or CODEX_COMMAND to an executable path, or install codex in PATH.');
|
|
455
|
+
}
|
|
456
|
+
isExecutable(target) {
|
|
457
|
+
try {
|
|
458
|
+
(0, fs_1.accessSync)(target, fs_1.constants.X_OK);
|
|
459
|
+
return true;
|
|
460
|
+
}
|
|
461
|
+
catch {
|
|
462
|
+
return false;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
findExecutableInPath(commandName) {
|
|
466
|
+
const pathValue = process.env.PATH || '';
|
|
467
|
+
if (!pathValue) {
|
|
468
|
+
return null;
|
|
469
|
+
}
|
|
470
|
+
const pathEntries = pathValue
|
|
471
|
+
.split(path_1.delimiter)
|
|
472
|
+
.map((value) => value.trim())
|
|
473
|
+
.filter(Boolean);
|
|
474
|
+
for (const dir of pathEntries) {
|
|
475
|
+
const candidate = (0, path_1.join)(dir, commandName);
|
|
476
|
+
if (this.isExecutable(candidate)) {
|
|
477
|
+
return candidate;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
return null;
|
|
481
|
+
}
|
|
482
|
+
failPendingRequest(id, error) {
|
|
483
|
+
const pending = this.pendingRequests.get(id);
|
|
484
|
+
if (!pending) {
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
clearTimeout(pending.timeout);
|
|
488
|
+
this.pendingRequests.delete(id);
|
|
489
|
+
pending.reject(error);
|
|
490
|
+
}
|
|
491
|
+
clearPendingRequests(error) {
|
|
492
|
+
for (const [, pending] of this.pendingRequests) {
|
|
493
|
+
clearTimeout(pending.timeout);
|
|
494
|
+
pending.reject(new Error(`${error.message} (${pending.method})`));
|
|
495
|
+
}
|
|
496
|
+
this.pendingRequests.clear();
|
|
497
|
+
}
|
|
498
|
+
isRetryableToolError(error) {
|
|
499
|
+
const message = error.message.toLowerCase();
|
|
500
|
+
return (message.includes('request timeout') ||
|
|
501
|
+
message.includes('process is not running') ||
|
|
502
|
+
message.includes('process closed with code') ||
|
|
503
|
+
message.includes('mcp initialize timeout') ||
|
|
504
|
+
message.includes('connection closed') ||
|
|
505
|
+
message.includes('econnreset'));
|
|
506
|
+
}
|
|
507
|
+
shutdown(error, shouldKillProcess) {
|
|
508
|
+
if (this.state === 'dead' && this.pendingRequests.size === 0 && !shouldKillProcess) {
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
this.state = 'dead';
|
|
512
|
+
this.clearPendingRequests(error);
|
|
513
|
+
if (shouldKillProcess && this.process) {
|
|
514
|
+
this.process.kill();
|
|
515
|
+
}
|
|
516
|
+
if (this.rl) {
|
|
517
|
+
this.rl.close();
|
|
518
|
+
this.rl = null;
|
|
519
|
+
}
|
|
520
|
+
this.process = null;
|
|
521
|
+
this.threadId = null;
|
|
522
|
+
}
|
|
355
523
|
}
|
|
356
524
|
exports.CodexMCPProcess = CodexMCPProcess;
|
|
357
525
|
//# sourceMappingURL=codex-mcp-process.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-mcp-process.js","sourceRoot":"","sources":["../../src/agent/codex-mcp-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-mcp-process.js","sourceRoot":"","sources":["../../src/agent/codex-mcp-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,11 +19,20 @@ export interface DiscordGatewayInterface {
|
|
|
19
19
|
sendFile(channelId: string, filePath: string, caption?: string): Promise<void>;
|
|
20
20
|
sendImage(channelId: string, imagePath: string, caption?: string): Promise<void>;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Slack gateway interface for sending messages and files
|
|
24
|
+
*/
|
|
25
|
+
export interface SlackGatewayInterface {
|
|
26
|
+
sendMessage(channelId: string, message: string): Promise<void>;
|
|
27
|
+
sendFile(channelId: string, filePath: string, caption?: string): Promise<void>;
|
|
28
|
+
sendImage(channelId: string, imagePath: string, caption?: string): Promise<void>;
|
|
29
|
+
}
|
|
22
30
|
export declare class GatewayToolExecutor {
|
|
23
31
|
private mamaApi;
|
|
24
32
|
private readonly mamaDbPath?;
|
|
25
33
|
private sessionStore?;
|
|
26
34
|
private discordGateway;
|
|
35
|
+
private slackGateway;
|
|
27
36
|
private browserTool;
|
|
28
37
|
private roleManager;
|
|
29
38
|
private currentContext;
|
|
@@ -38,6 +47,7 @@ export declare class GatewayToolExecutor {
|
|
|
38
47
|
*/
|
|
39
48
|
getAgentContext(): AgentContext | null;
|
|
40
49
|
setDiscordGateway(gateway: DiscordGatewayInterface): void;
|
|
50
|
+
setSlackGateway(gateway: SlackGatewayInterface): void;
|
|
41
51
|
/**
|
|
42
52
|
* Initialize the MAMA API by importing from mcp-server package
|
|
43
53
|
* Called lazily on first tool execution if not provided in constructor
|
|
@@ -99,6 +109,10 @@ export declare class GatewayToolExecutor {
|
|
|
99
109
|
* Supports images, documents, and any file type
|
|
100
110
|
*/
|
|
101
111
|
private executeDiscordSend;
|
|
112
|
+
/**
|
|
113
|
+
* Execute slack_send tool - Send message/file to Slack channel
|
|
114
|
+
*/
|
|
115
|
+
private executeSlackSend;
|
|
102
116
|
/**
|
|
103
117
|
* Navigate to a URL
|
|
104
118
|
*/
|
|
@@ -169,7 +183,7 @@ export declare class GatewayToolExecutor {
|
|
|
169
183
|
*
|
|
170
184
|
* Usage:
|
|
171
185
|
* - Set role-specific model: { role: 'chat_bot', model: 'claude-3-haiku-20240307' }
|
|
172
|
-
* - Set global model: { model: 'claude-sonnet-4-
|
|
186
|
+
* - Set global model: { model: 'claude-sonnet-4-6' }
|
|
173
187
|
*/
|
|
174
188
|
private executeSetModel;
|
|
175
189
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-tool-executor.d.ts","sourceRoot":"","sources":["../../src/agent/gateway-tool-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAWjB,0BAA0B,EAU1B,YAAY,EASZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAQpB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;
|
|
1
|
+
{"version":3,"file":"gateway-tool-executor.d.ts","sourceRoot":"","sources":["../../src/agent/gateway-tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ const VALID_TOOLS = [
|
|
|
38
38
|
'Write',
|
|
39
39
|
'Bash',
|
|
40
40
|
'discord_send',
|
|
41
|
+
'slack_send',
|
|
41
42
|
'browser_navigate',
|
|
42
43
|
'browser_screenshot',
|
|
43
44
|
'browser_click',
|
|
@@ -71,6 +72,7 @@ class GatewayToolExecutor {
|
|
|
71
72
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
73
|
sessionStore;
|
|
73
74
|
discordGateway = null;
|
|
75
|
+
slackGateway = null;
|
|
74
76
|
browserTool;
|
|
75
77
|
roleManager;
|
|
76
78
|
currentContext = null;
|
|
@@ -102,6 +104,9 @@ class GatewayToolExecutor {
|
|
|
102
104
|
setDiscordGateway(gateway) {
|
|
103
105
|
this.discordGateway = gateway;
|
|
104
106
|
}
|
|
107
|
+
setSlackGateway(gateway) {
|
|
108
|
+
this.slackGateway = gateway;
|
|
109
|
+
}
|
|
105
110
|
/**
|
|
106
111
|
* Initialize the MAMA API by importing from mcp-server package
|
|
107
112
|
* Called lazily on first tool execution if not provided in constructor
|
|
@@ -205,6 +210,8 @@ class GatewayToolExecutor {
|
|
|
205
210
|
return await this.executeBash(input);
|
|
206
211
|
case 'discord_send':
|
|
207
212
|
return await this.executeDiscordSend(input);
|
|
213
|
+
case 'slack_send':
|
|
214
|
+
return await this.executeSlackSend(input);
|
|
208
215
|
// Browser tools
|
|
209
216
|
case 'browser_navigate':
|
|
210
217
|
return await this.executeBrowserNavigate(input);
|
|
@@ -583,6 +590,33 @@ class GatewayToolExecutor {
|
|
|
583
590
|
return { success: false, error: `Failed to send to Discord: ${err}` };
|
|
584
591
|
}
|
|
585
592
|
}
|
|
593
|
+
/**
|
|
594
|
+
* Execute slack_send tool - Send message/file to Slack channel
|
|
595
|
+
*/
|
|
596
|
+
async executeSlackSend(input) {
|
|
597
|
+
const { channel_id, message, file_path } = input;
|
|
598
|
+
if (!channel_id) {
|
|
599
|
+
return { success: false, error: 'channel_id is required' };
|
|
600
|
+
}
|
|
601
|
+
if (!this.slackGateway) {
|
|
602
|
+
return { success: false, error: 'Slack gateway not configured' };
|
|
603
|
+
}
|
|
604
|
+
try {
|
|
605
|
+
if (file_path) {
|
|
606
|
+
await this.slackGateway.sendFile(channel_id, file_path, message);
|
|
607
|
+
}
|
|
608
|
+
else if (message) {
|
|
609
|
+
await this.slackGateway.sendMessage(channel_id, message);
|
|
610
|
+
}
|
|
611
|
+
else {
|
|
612
|
+
return { success: false, error: 'Either message or file_path is required' };
|
|
613
|
+
}
|
|
614
|
+
return { success: true };
|
|
615
|
+
}
|
|
616
|
+
catch (err) {
|
|
617
|
+
return { success: false, error: `Failed to send to Slack: ${err}` };
|
|
618
|
+
}
|
|
619
|
+
}
|
|
586
620
|
// ============================================================================
|
|
587
621
|
// Browser Tool Execution
|
|
588
622
|
// ============================================================================
|
|
@@ -919,7 +953,7 @@ class GatewayToolExecutor {
|
|
|
919
953
|
*
|
|
920
954
|
* Usage:
|
|
921
955
|
* - Set role-specific model: { role: 'chat_bot', model: 'claude-3-haiku-20240307' }
|
|
922
|
-
* - Set global model: { model: 'claude-sonnet-4-
|
|
956
|
+
* - Set global model: { model: 'claude-sonnet-4-6' }
|
|
923
957
|
*/
|
|
924
958
|
async executeSetModel(input) {
|
|
925
959
|
// Check viewer-only permission
|
|
@@ -941,7 +975,7 @@ class GatewayToolExecutor {
|
|
|
941
975
|
if (!isValidModel) {
|
|
942
976
|
return {
|
|
943
977
|
success: false,
|
|
944
|
-
error: `Invalid model name format: ${model}. Expected Claude model format (e.g., claude-sonnet-4-
|
|
978
|
+
error: `Invalid model name format: ${model}. Expected Claude model format (e.g., claude-sonnet-4-6, claude-opus-4-latest)`,
|
|
945
979
|
};
|
|
946
980
|
}
|
|
947
981
|
if (maxTurns !== undefined && (maxTurns < 1 || maxTurns > 100)) {
|
|
@@ -984,7 +1018,7 @@ class GatewayToolExecutor {
|
|
|
984
1018
|
// No role specified - update global agent config
|
|
985
1019
|
if (!config.agent) {
|
|
986
1020
|
config.agent = {
|
|
987
|
-
model: 'claude-sonnet-4-
|
|
1021
|
+
model: 'claude-sonnet-4-6',
|
|
988
1022
|
max_turns: 10,
|
|
989
1023
|
timeout: 300000,
|
|
990
1024
|
};
|