gemini-helper-friend 2.0.1 → 2.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 +1 -11
- package/dist/config/yaml/subagents.yaml +22 -5
- package/dist/index.js +127 -18
- package/dist/index.js.map +1 -1
- package/dist/tools/cleanup.d.ts +13 -0
- package/dist/tools/cleanup.d.ts.map +1 -0
- package/dist/tools/cleanup.js +55 -0
- package/dist/tools/cleanup.js.map +1 -0
- package/dist/tools/constants.d.ts +46 -0
- package/dist/tools/constants.d.ts.map +1 -0
- package/dist/tools/constants.js +73 -0
- package/dist/tools/constants.js.map +1 -0
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/subagent.tool.d.ts +6 -26
- package/dist/tools/subagent.tool.d.ts.map +1 -1
- package/dist/tools/subagent.tool.js +296 -108
- package/dist/tools/subagent.tool.js.map +1 -1
- package/dist/tools/task-store.d.ts +49 -0
- package/dist/tools/task-store.d.ts.map +1 -0
- package/dist/tools/task-store.js +191 -0
- package/dist/tools/task-store.js.map +1 -0
- package/package.json +3 -1
- package/src/config/yaml/subagents.yaml +22 -5
|
@@ -2,73 +2,22 @@
|
|
|
2
2
|
* Gemini Subagent Tool - Single consolidated tool with task type enum
|
|
3
3
|
* Loads task-specific instructions from YAML and merges with user prompt
|
|
4
4
|
*/
|
|
5
|
-
import { readFileSync } from 'fs';
|
|
5
|
+
import { readFileSync, writeFileSync, openSync, closeSync } from 'fs';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
7
|
import { dirname, join } from 'path';
|
|
8
8
|
import { parse as parseYaml } from 'yaml';
|
|
9
9
|
import { spawn } from 'child_process';
|
|
10
|
+
import { tmpdir } from 'os';
|
|
11
|
+
import { createTask, updateTask, getTask, getCompletedTasks, } from './task-store.js';
|
|
12
|
+
import { MODEL_FALLBACK_CHAIN, MONITOR_POLL_INTERVAL_MS, TASK_TIMEOUT_MS, STDOUT_FILE_PREFIX, MONITOR_FILE_PREFIX, DATA_DIR_NAME, DB_FILE_NAME, MAX_ERROR_LENGTH, } from './constants.js';
|
|
13
|
+
import { isValidPid } from './cleanup.js';
|
|
10
14
|
const __filename = fileURLToPath(import.meta.url);
|
|
11
15
|
const __dirname = dirname(__filename);
|
|
12
|
-
// In-memory task store (Map keyed by 5-digit task ID)
|
|
13
|
-
const taskStore = new Map();
|
|
14
|
-
// Task expiry: 1 hour (in milliseconds)
|
|
15
|
-
const TASK_EXPIRY_MS = 60 * 60 * 1000;
|
|
16
|
-
// ID counter (generates 5-digit IDs: 10000-99999)
|
|
17
|
-
let taskIdCounter = 10000;
|
|
18
|
-
/**
|
|
19
|
-
* Generate unique 5-digit task ID
|
|
20
|
-
*/
|
|
21
|
-
function generateTaskId() {
|
|
22
|
-
const id = taskIdCounter;
|
|
23
|
-
taskIdCounter++;
|
|
24
|
-
// Wrap around if we exceed 99999
|
|
25
|
-
if (taskIdCounter > 99999) {
|
|
26
|
-
taskIdCounter = 10000;
|
|
27
|
-
}
|
|
28
|
-
return id;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Create a new task in pending state
|
|
32
|
-
*/
|
|
33
|
-
export function createTask(taskType) {
|
|
34
|
-
const id = generateTaskId();
|
|
35
|
-
const now = new Date().toISOString();
|
|
36
|
-
const task = {
|
|
37
|
-
id,
|
|
38
|
-
status: 'pending',
|
|
39
|
-
task_type: taskType,
|
|
40
|
-
progress: 0,
|
|
41
|
-
started_at: now,
|
|
42
|
-
updated_at: now,
|
|
43
|
-
};
|
|
44
|
-
taskStore.set(id, task);
|
|
45
|
-
// Schedule cleanup after expiry
|
|
46
|
-
setTimeout(() => {
|
|
47
|
-
taskStore.delete(id);
|
|
48
|
-
}, TASK_EXPIRY_MS);
|
|
49
|
-
return task;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Update task status
|
|
53
|
-
*/
|
|
54
|
-
export function updateTask(id, updates) {
|
|
55
|
-
const task = taskStore.get(id);
|
|
56
|
-
if (!task)
|
|
57
|
-
return null;
|
|
58
|
-
Object.assign(task, updates, { updated_at: new Date().toISOString() });
|
|
59
|
-
return task;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get task by ID
|
|
63
|
-
*/
|
|
64
|
-
export function getTask(id) {
|
|
65
|
-
return taskStore.get(id) || null;
|
|
66
|
-
}
|
|
67
16
|
/**
|
|
68
17
|
* Get task status response for check_subagent_task tool
|
|
69
18
|
*/
|
|
70
19
|
export function getTaskStatusResponse(taskId) {
|
|
71
|
-
const task =
|
|
20
|
+
const task = getTask(taskId);
|
|
72
21
|
if (!task) {
|
|
73
22
|
return {
|
|
74
23
|
task_id: taskId,
|
|
@@ -82,6 +31,9 @@ export function getTaskStatusResponse(taskId) {
|
|
|
82
31
|
task_type: task.task_type,
|
|
83
32
|
started_at: task.started_at,
|
|
84
33
|
};
|
|
34
|
+
if (task.pid) {
|
|
35
|
+
response.pid = task.pid;
|
|
36
|
+
}
|
|
85
37
|
if (task.status === 'running') {
|
|
86
38
|
response.progress = task.progress;
|
|
87
39
|
}
|
|
@@ -354,21 +306,18 @@ function buildFinalPrompt(taskType, userPrompt, includeInstructions) {
|
|
|
354
306
|
* Get all completed/failed tasks as MCP resources
|
|
355
307
|
*/
|
|
356
308
|
export function getCompletedTasksAsResources() {
|
|
357
|
-
const
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
return resources;
|
|
309
|
+
const tasks = getCompletedTasks();
|
|
310
|
+
return tasks.map(task => {
|
|
311
|
+
const statusEmoji = task.status === 'completed' ? '✅' : '❌';
|
|
312
|
+
return {
|
|
313
|
+
uri: `task://${task.id}`,
|
|
314
|
+
name: `${statusEmoji} Task ${task.id} - ${task.task_type}`,
|
|
315
|
+
description: task.status === 'completed'
|
|
316
|
+
? `🎉 Task ${task.id} is READY! Result available for ${task.task_type} task.`
|
|
317
|
+
: `⚠️ Task ${task.id} FAILED: ${task.error?.slice(0, 100)}`,
|
|
318
|
+
mimeType: 'text/markdown',
|
|
319
|
+
};
|
|
320
|
+
});
|
|
372
321
|
}
|
|
373
322
|
/**
|
|
374
323
|
* Get task result content by resource URI
|
|
@@ -379,7 +328,7 @@ export function getTaskResourceContent(uri) {
|
|
|
379
328
|
if (!match)
|
|
380
329
|
return null;
|
|
381
330
|
const taskId = parseInt(match[1], 10);
|
|
382
|
-
const task =
|
|
331
|
+
const task = getTask(taskId);
|
|
383
332
|
if (!task)
|
|
384
333
|
return null;
|
|
385
334
|
if (task.status === 'completed') {
|
|
@@ -414,53 +363,286 @@ ${task.error}`;
|
|
|
414
363
|
*/
|
|
415
364
|
export function executeSubagentAsync(args, onTaskProgress, onTaskComplete) {
|
|
416
365
|
const task = createTask(args.task_type);
|
|
366
|
+
console.error(`[TaskStore] Created task ${task.id} for ${args.task_type}`);
|
|
417
367
|
// Update to running state
|
|
418
368
|
updateTask(task.id, { status: 'running', progress: 0 });
|
|
419
|
-
//
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
369
|
+
// CRITICAL FIX: Spawn detached background process that survives parent exit
|
|
370
|
+
// The process will update the database when it completes
|
|
371
|
+
const config = loadSubagentConfig();
|
|
372
|
+
const settings = config.settings;
|
|
373
|
+
const taskConfig = config.task_types[args.task_type];
|
|
374
|
+
if (!taskConfig) {
|
|
375
|
+
throw new Error(`Invalid task_type: ${args.task_type}. Must be: completion-inspector, helper-friend, manual-tester, or manual`);
|
|
376
|
+
}
|
|
377
|
+
const includeInstructions = args.include_instructions ?? settings.defaults.append_instructions;
|
|
378
|
+
const finalPrompt = buildFinalPrompt(args.task_type, args.prompt, includeInstructions);
|
|
379
|
+
// Build CLI arguments
|
|
380
|
+
const cliArgs = [];
|
|
381
|
+
if (args.approval_mode) {
|
|
382
|
+
cliArgs.push(settings.cli.flags.approval_mode, args.approval_mode);
|
|
383
|
+
}
|
|
384
|
+
else if (settings.defaults.yolo_mode) {
|
|
385
|
+
cliArgs.push(settings.cli.flags.yolo);
|
|
386
|
+
}
|
|
387
|
+
// Use first model from fallback chain if no model specified
|
|
388
|
+
const model = args.model || MODEL_FALLBACK_CHAIN[0];
|
|
389
|
+
cliArgs.push(settings.cli.flags.model, model);
|
|
390
|
+
if (args.sandbox) {
|
|
391
|
+
cliArgs.push(settings.cli.flags.sandbox);
|
|
392
|
+
}
|
|
393
|
+
if (args.include_directories) {
|
|
394
|
+
cliArgs.push(settings.cli.flags.include_directories, args.include_directories);
|
|
395
|
+
}
|
|
396
|
+
cliArgs.push(settings.cli.flags.output_format, 'json');
|
|
397
|
+
cliArgs.push(finalPrompt);
|
|
398
|
+
// Create temp files to capture stdout/stderr (since we need detached process)
|
|
399
|
+
const stdoutPath = join(tmpdir(), `${STDOUT_FILE_PREFIX}${task.id}-stdout.txt`);
|
|
400
|
+
const stderrPath = join(tmpdir(), `${STDOUT_FILE_PREFIX}${task.id}-stderr.txt`);
|
|
401
|
+
// Open files for writing - these file descriptors survive parent exit
|
|
402
|
+
const stdoutFd = openSync(stdoutPath, 'w');
|
|
403
|
+
const stderrFd = openSync(stderrPath, 'w');
|
|
404
|
+
// Spawn DETACHED process that survives parent exit
|
|
405
|
+
// Use file descriptors to capture output even after parent exits
|
|
406
|
+
const child = spawn(settings.cli.command, cliArgs, {
|
|
407
|
+
env: process.env,
|
|
408
|
+
shell: false,
|
|
409
|
+
stdio: ['ignore', stdoutFd, stderrFd], // Redirect to files
|
|
410
|
+
detached: true, // Process survives parent exit
|
|
411
|
+
});
|
|
412
|
+
// Close file descriptors in parent (child has its own copy)
|
|
413
|
+
closeSync(stdoutFd);
|
|
414
|
+
closeSync(stderrFd);
|
|
415
|
+
// Unref so parent can exit
|
|
416
|
+
child.unref();
|
|
417
|
+
const spawnedPid = child.pid;
|
|
418
|
+
// Validate PID before proceeding
|
|
419
|
+
if (!isValidPid(spawnedPid)) {
|
|
439
420
|
updateTask(task.id, {
|
|
440
421
|
status: 'failed',
|
|
441
|
-
error:
|
|
422
|
+
error: 'Failed to spawn process - invalid PID received'
|
|
442
423
|
});
|
|
443
|
-
|
|
444
|
-
|
|
424
|
+
return {
|
|
425
|
+
task_id: task.id,
|
|
426
|
+
status: 'failed',
|
|
427
|
+
message: `Task ${task.id} failed to spawn - invalid PID`,
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
updateTask(task.id, { pid: spawnedPid });
|
|
431
|
+
console.error(`[TaskStore] Task ${task.id} spawned DETACHED process PID ${spawnedPid}`);
|
|
432
|
+
console.error(`[TaskStore] Output will be captured to: ${stdoutPath}`);
|
|
433
|
+
// Start a background monitor that checks if process completed
|
|
434
|
+
// Pass output file paths so monitor can read results
|
|
435
|
+
startBackgroundMonitor(task.id, spawnedPid, stdoutPath, stderrPath, onTaskComplete);
|
|
445
436
|
return {
|
|
446
437
|
task_id: task.id,
|
|
447
438
|
status: 'running',
|
|
448
|
-
message: `Task ${task.id} started. You will receive a notification when ready, or use check_subagent_task tool to poll status.`,
|
|
439
|
+
message: `Task ${task.id} started in DETACHED mode (PID: ${spawnedPid}). You will receive a notification when ready, or use check_subagent_task tool to poll status.`,
|
|
440
|
+
pid: spawnedPid,
|
|
449
441
|
};
|
|
450
442
|
}
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
443
|
+
/**
|
|
444
|
+
* Background monitor that checks if detached process completed
|
|
445
|
+
* Runs independently of MCP server lifecycle
|
|
446
|
+
* Reads output files and stores result in database
|
|
447
|
+
*/
|
|
448
|
+
function startBackgroundMonitor(taskId, pid, stdoutPath, stderrPath, onTaskComplete) {
|
|
449
|
+
if (!pid)
|
|
450
|
+
return;
|
|
451
|
+
// Get absolute path to database (resolve from dist directory to project root)
|
|
452
|
+
const dbAbsolutePath = join(__dirname, '../..', DATA_DIR_NAME, DB_FILE_NAME);
|
|
453
|
+
// CRITICAL FIX: Get absolute path to better-sqlite3 module
|
|
454
|
+
// NODE_PATH doesn't work for native modules, so we must use absolute require path
|
|
455
|
+
const betterSqlite3Path = join(__dirname, '../../node_modules/better-sqlite3');
|
|
456
|
+
// Spawn a detached monitor process that polls the PID and reads output files
|
|
457
|
+
const monitorScript = `
|
|
458
|
+
const Database = require('${betterSqlite3Path.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}');
|
|
459
|
+
const fs = require('fs');
|
|
460
|
+
|
|
461
|
+
const taskId = ${taskId};
|
|
462
|
+
const pid = ${pid};
|
|
463
|
+
const dbPath = '${dbAbsolutePath.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';
|
|
464
|
+
const stdoutPath = '${stdoutPath.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';
|
|
465
|
+
const stderrPath = '${stderrPath.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';
|
|
466
|
+
const POLL_INTERVAL = ${MONITOR_POLL_INTERVAL_MS};
|
|
467
|
+
const TIMEOUT_MS = ${TASK_TIMEOUT_MS};
|
|
468
|
+
const MAX_ERROR_LEN = ${MAX_ERROR_LENGTH};
|
|
469
|
+
const MAX_RESULT_LEN = 100000;
|
|
470
|
+
|
|
471
|
+
// Validate PID is a positive integer
|
|
472
|
+
if (!pid || pid <= 0 || !Number.isInteger(pid)) {
|
|
473
|
+
console.error('[Monitor] Invalid PID: ' + pid + ' - exiting');
|
|
474
|
+
process.exit(1);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
console.error('[Monitor] Starting monitor for task ' + taskId + ' PID ' + pid);
|
|
478
|
+
console.error('[Monitor] Database path: ' + dbPath);
|
|
479
|
+
console.error('[Monitor] Stdout path: ' + stdoutPath);
|
|
480
|
+
|
|
481
|
+
// Poll at configured interval to check if process still exists
|
|
482
|
+
const checkInterval = setInterval(() => {
|
|
483
|
+
try {
|
|
484
|
+
// Check if process exists (throws if not)
|
|
485
|
+
process.kill(pid, 0);
|
|
486
|
+
// Still running - silent poll (reduce log noise)
|
|
487
|
+
} catch (error) {
|
|
488
|
+
// Process no longer exists - it completed or failed
|
|
489
|
+
clearInterval(checkInterval);
|
|
490
|
+
|
|
491
|
+
console.error('[Monitor] Task ' + taskId + ' PID ' + pid + ' exited - reading output');
|
|
492
|
+
|
|
493
|
+
// Read output files
|
|
494
|
+
let stdout = '';
|
|
495
|
+
let stderr = '';
|
|
496
|
+
let result = null;
|
|
497
|
+
let taskStatus = 'completed';
|
|
498
|
+
let taskError = null;
|
|
499
|
+
|
|
500
|
+
try {
|
|
501
|
+
stdout = fs.readFileSync(stdoutPath, 'utf8');
|
|
502
|
+
console.error('[Monitor] Read ' + stdout.length + ' bytes from stdout');
|
|
503
|
+
} catch (e) {
|
|
504
|
+
console.error('[Monitor] Could not read stdout:', e.message);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
try {
|
|
508
|
+
stderr = fs.readFileSync(stderrPath, 'utf8');
|
|
509
|
+
if (stderr) console.error('[Monitor] Stderr: ' + stderr.slice(0, 200));
|
|
510
|
+
} catch (e) {
|
|
511
|
+
// Ignore stderr read errors
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
// Parse JSON output from Gemini CLI with robust error handling
|
|
515
|
+
if (stdout) {
|
|
516
|
+
let parsed = false;
|
|
517
|
+
|
|
518
|
+
// Strategy 1: Try parsing entire stdout as JSON
|
|
519
|
+
try {
|
|
520
|
+
const json = JSON.parse(stdout.trim());
|
|
521
|
+
if (json.response !== undefined) {
|
|
522
|
+
result = json.response || 'Task completed successfully.';
|
|
523
|
+
|
|
524
|
+
// Add stats if available
|
|
525
|
+
if (json.stats && json.stats.models) {
|
|
526
|
+
const modelNames = Object.keys(json.stats.models);
|
|
527
|
+
const totalTokens = modelNames.reduce((sum, m) => {
|
|
528
|
+
return sum + (json.stats.models[m]?.tokens?.total || 0);
|
|
529
|
+
}, 0);
|
|
530
|
+
result += '\\n\\n---\\n**Stats:** ' + totalTokens + ' tokens | Models: ' + modelNames.join(', ');
|
|
531
|
+
}
|
|
532
|
+
parsed = true;
|
|
533
|
+
}
|
|
534
|
+
} catch (e) {
|
|
535
|
+
// Strategy 2: Find last complete JSON object (scan from end)
|
|
536
|
+
const lines = stdout.split('\\n');
|
|
537
|
+
for (let i = lines.length - 1; i >= 0 && !parsed; i--) {
|
|
538
|
+
const line = lines[i].trim();
|
|
539
|
+
if (line.startsWith('{')) {
|
|
540
|
+
try {
|
|
541
|
+
const json = JSON.parse(line);
|
|
542
|
+
if (json.response !== undefined) {
|
|
543
|
+
result = json.response || 'Task completed successfully.';
|
|
544
|
+
if (json.stats && json.stats.models) {
|
|
545
|
+
const modelNames = Object.keys(json.stats.models);
|
|
546
|
+
const totalTokens = modelNames.reduce((sum, m) => {
|
|
547
|
+
return sum + (json.stats.models[m]?.tokens?.total || 0);
|
|
548
|
+
}, 0);
|
|
549
|
+
result += '\\n\\n---\\n**Stats:** ' + totalTokens + ' tokens | Models: ' + modelNames.join(', ');
|
|
550
|
+
}
|
|
551
|
+
parsed = true;
|
|
552
|
+
break;
|
|
553
|
+
}
|
|
554
|
+
} catch (lineErr) {
|
|
555
|
+
// Try next line
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
// Strategy 3: Use raw output if JSON parsing failed
|
|
562
|
+
if (!parsed) {
|
|
563
|
+
result = stdout.trim() || 'Task completed (no JSON output captured).';
|
|
564
|
+
}
|
|
565
|
+
} else {
|
|
566
|
+
result = 'Task completed but no output was captured.';
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
// Limit result length to prevent database bloat
|
|
570
|
+
if (result && result.length > MAX_RESULT_LEN) {
|
|
571
|
+
result = result.slice(0, MAX_RESULT_LEN) + '\\n\\n[Output truncated - exceeded ' + MAX_RESULT_LEN + ' characters]';
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
// Check for errors in stderr
|
|
575
|
+
if (stderr && (stderr.includes('Error') || stderr.includes('error') || stderr.includes('FAILED'))) {
|
|
576
|
+
taskStatus = 'failed';
|
|
577
|
+
taskError = stderr.slice(0, MAX_ERROR_LEN);
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
// Update database with result
|
|
581
|
+
try {
|
|
582
|
+
const db = new Database(dbPath);
|
|
583
|
+
const stmt = db.prepare(\`
|
|
584
|
+
UPDATE tasks
|
|
585
|
+
SET status = ?, progress = ?, result = ?, error = ?, completed_at = ?, updated_at = ?
|
|
586
|
+
WHERE id = ?
|
|
587
|
+
\`);
|
|
588
|
+
stmt.run(taskStatus, 100, result, taskError, new Date().toISOString(), new Date().toISOString(), taskId);
|
|
589
|
+
db.close();
|
|
590
|
+
console.error('[Monitor] Task ' + taskId + ' marked as ' + taskStatus + ' with result (' + (result?.length || 0) + ' chars)');
|
|
591
|
+
} catch (dbError) {
|
|
592
|
+
console.error('[Monitor] Database update failed:', dbError.message);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
// Cleanup temp files
|
|
596
|
+
try { fs.unlinkSync(stdoutPath); } catch (e) {}
|
|
597
|
+
try { fs.unlinkSync(stderrPath); } catch (e) {}
|
|
598
|
+
|
|
599
|
+
process.exit(0);
|
|
600
|
+
}
|
|
601
|
+
}, POLL_INTERVAL);
|
|
602
|
+
|
|
603
|
+
// Timeout after configured duration
|
|
604
|
+
setTimeout(() => {
|
|
605
|
+
clearInterval(checkInterval);
|
|
606
|
+
console.error('[Monitor] Task ' + taskId + ' timeout after ' + (TIMEOUT_MS / 60000) + ' minutes');
|
|
607
|
+
try {
|
|
608
|
+
const db = new Database(dbPath);
|
|
609
|
+
const stmt = db.prepare(\`
|
|
610
|
+
UPDATE tasks
|
|
611
|
+
SET status = ?, error = ?, updated_at = ?
|
|
612
|
+
WHERE id = ?
|
|
613
|
+
\`);
|
|
614
|
+
stmt.run('failed', 'Task timeout after ' + (TIMEOUT_MS / 60000) + ' minutes', new Date().toISOString(), taskId);
|
|
615
|
+
db.close();
|
|
616
|
+
} catch (dbError) {
|
|
617
|
+
console.error('[Monitor] Database update failed:', dbError.message);
|
|
618
|
+
}
|
|
619
|
+
process.exit(0);
|
|
620
|
+
}, TIMEOUT_MS);
|
|
621
|
+
`;
|
|
622
|
+
// Write monitor script to temp file
|
|
623
|
+
const monitorPath = join(tmpdir(), `${MONITOR_FILE_PREFIX}${taskId}.js`);
|
|
624
|
+
writeFileSync(monitorPath, monitorScript);
|
|
625
|
+
// Get node_modules path for the monitor to find better-sqlite3
|
|
626
|
+
const nodeModulesPath = join(__dirname, '../../node_modules');
|
|
627
|
+
// Spawn detached monitor with NODE_PATH set
|
|
628
|
+
const monitor = spawn('node', [monitorPath], {
|
|
629
|
+
detached: true,
|
|
630
|
+
stdio: 'ignore',
|
|
631
|
+
env: {
|
|
632
|
+
...process.env,
|
|
633
|
+
NODE_PATH: nodeModulesPath,
|
|
634
|
+
},
|
|
635
|
+
});
|
|
636
|
+
monitor.unref();
|
|
637
|
+
console.error(`[TaskStore] Started background monitor for task ${taskId} (monitor PID: ${monitor.pid})`);
|
|
638
|
+
}
|
|
639
|
+
// Model fallback chain imported from constants.ts
|
|
458
640
|
/**
|
|
459
641
|
* Execute Gemini CLI with a specific model
|
|
460
642
|
* Uses modern syntax: gemini --yolo --model <model> --output-format json "prompt"
|
|
461
643
|
* Note: --prompt flag is deprecated, use positional argument instead
|
|
462
644
|
*/
|
|
463
|
-
function executeWithModel(model, settings, taskConfig, finalPrompt, options, onProgress) {
|
|
645
|
+
function executeWithModel(model, settings, taskConfig, finalPrompt, options, onProgress, onProcessSpawn) {
|
|
464
646
|
const cliArgs = [];
|
|
465
647
|
// Auto-approve mode (--yolo or --approval-mode)
|
|
466
648
|
if (options.approval_mode) {
|
|
@@ -491,7 +673,13 @@ function executeWithModel(model, settings, taskConfig, finalPrompt, options, onP
|
|
|
491
673
|
env: process.env,
|
|
492
674
|
shell: false,
|
|
493
675
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
676
|
+
detached: false,
|
|
494
677
|
});
|
|
678
|
+
// Report PID immediately after spawn
|
|
679
|
+
if (child.pid) {
|
|
680
|
+
console.error(`[Gemini CLI] Spawned process PID ${child.pid} for model ${model}`);
|
|
681
|
+
onProcessSpawn?.(child.pid);
|
|
682
|
+
}
|
|
495
683
|
child.stdout.on('data', (data) => {
|
|
496
684
|
const chunk = data.toString();
|
|
497
685
|
stdout += chunk;
|
|
@@ -553,7 +741,7 @@ function executeWithModel(model, settings, taskConfig, finalPrompt, options, onP
|
|
|
553
741
|
* Execute Gemini CLI with subagent task (blocking mode)
|
|
554
742
|
* Uses model fallback chain: tries models in sequence until one succeeds
|
|
555
743
|
*/
|
|
556
|
-
export async function executeSubagent(args, onProgress) {
|
|
744
|
+
export async function executeSubagent(args, onProgress, onProcessSpawn) {
|
|
557
745
|
const config = loadSubagentConfig();
|
|
558
746
|
const settings = config.settings;
|
|
559
747
|
const taskConfig = config.task_types[args.task_type];
|
|
@@ -570,14 +758,14 @@ export async function executeSubagent(args, onProgress) {
|
|
|
570
758
|
// If user specified a model, use only that model (no fallback)
|
|
571
759
|
if (args.model) {
|
|
572
760
|
// Error is already well-formatted by executeWithModel, just re-throw
|
|
573
|
-
return await executeWithModel(args.model, settings, taskConfig, finalPrompt, execOptions, onProgress);
|
|
761
|
+
return await executeWithModel(args.model, settings, taskConfig, finalPrompt, execOptions, onProgress, onProcessSpawn);
|
|
574
762
|
}
|
|
575
763
|
// Use fallback chain
|
|
576
764
|
const errors = [];
|
|
577
765
|
for (const model of MODEL_FALLBACK_CHAIN) {
|
|
578
766
|
try {
|
|
579
767
|
onProgress?.(`🔄 Trying model: ${model}...\n`);
|
|
580
|
-
return await executeWithModel(model, settings, taskConfig, finalPrompt, execOptions, onProgress);
|
|
768
|
+
return await executeWithModel(model, settings, taskConfig, finalPrompt, execOptions, onProgress, onProcessSpawn);
|
|
581
769
|
}
|
|
582
770
|
catch (error) {
|
|
583
771
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.tool.js","sourceRoot":"","sources":["../../src/tools/subagent.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subagent.tool.js","sourceRoot":"","sources":["../../src/tools/subagent.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite-based persistent task store
|
|
3
|
+
* Replaces in-memory Map to support async task persistence across MCP sessions
|
|
4
|
+
*/
|
|
5
|
+
import { type TaskType } from './constants.js';
|
|
6
|
+
export type TaskStatus = 'pending' | 'running' | 'completed' | 'failed';
|
|
7
|
+
export interface TaskState {
|
|
8
|
+
id: number;
|
|
9
|
+
status: TaskStatus;
|
|
10
|
+
task_type: TaskType;
|
|
11
|
+
progress: number;
|
|
12
|
+
result?: string;
|
|
13
|
+
error?: string;
|
|
14
|
+
started_at: string;
|
|
15
|
+
completed_at?: string;
|
|
16
|
+
updated_at: string;
|
|
17
|
+
pid?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generate unique 5-digit task ID
|
|
21
|
+
* Wraps around from TASK_ID_MAX back to TASK_ID_MIN
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateTaskId(): number;
|
|
24
|
+
/**
|
|
25
|
+
* Create a new task in pending state
|
|
26
|
+
*/
|
|
27
|
+
export declare function createTask(taskType: TaskType): TaskState;
|
|
28
|
+
/**
|
|
29
|
+
* Update task status
|
|
30
|
+
*/
|
|
31
|
+
export declare function updateTask(id: number, updates: Partial<TaskState>): TaskState | null;
|
|
32
|
+
/**
|
|
33
|
+
* Get task by ID
|
|
34
|
+
*/
|
|
35
|
+
export declare function getTask(id: number): TaskState | null;
|
|
36
|
+
/**
|
|
37
|
+
* Get all completed or failed tasks
|
|
38
|
+
*/
|
|
39
|
+
export declare function getCompletedTasks(): TaskState[];
|
|
40
|
+
/**
|
|
41
|
+
* Delete expired tasks (older than 1 hour)
|
|
42
|
+
* Call this periodically to clean up old tasks
|
|
43
|
+
*/
|
|
44
|
+
export declare function cleanupExpiredTasks(): number;
|
|
45
|
+
/**
|
|
46
|
+
* Close database connection (call on shutdown)
|
|
47
|
+
*/
|
|
48
|
+
export declare function closeDatabase(): void;
|
|
49
|
+
//# sourceMappingURL=task-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["../../src/tools/task-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAOL,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AAMxB,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAqGD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAOvC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAqBxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAmBpF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,EAAE,CAe/C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
|