gemini-helper-friend 2.0.0 → 2.0.2
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/config/templates/manual.mdx +499 -0
- package/dist/config/yaml/subagents.yaml +737 -33
- package/dist/index.js +83 -7
- 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 +295 -110
- 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/templates/manual.mdx +499 -0
- package/src/config/yaml/subagents.yaml +737 -33
|
@@ -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
|
}
|
|
@@ -341,7 +293,7 @@ function buildFinalPrompt(taskType, userPrompt, includeInstructions) {
|
|
|
341
293
|
const config = loadSubagentConfig();
|
|
342
294
|
const taskConfig = config.task_types[taskType];
|
|
343
295
|
if (!taskConfig) {
|
|
344
|
-
throw new Error(`Unknown task type: ${taskType}. Must be: completion-inspector, helper-friend, or manual
|
|
296
|
+
throw new Error(`Unknown task type: ${taskType}. Must be: completion-inspector, helper-friend, manual-tester, or manual`);
|
|
345
297
|
}
|
|
346
298
|
if (!includeInstructions) {
|
|
347
299
|
return userPrompt;
|
|
@@ -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,283 @@ ${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
|
+
// Spawn a detached monitor process that polls the PID and reads output files
|
|
454
|
+
const monitorScript = `
|
|
455
|
+
const Database = require('better-sqlite3');
|
|
456
|
+
const fs = require('fs');
|
|
457
|
+
|
|
458
|
+
const taskId = ${taskId};
|
|
459
|
+
const pid = ${pid};
|
|
460
|
+
const dbPath = '${dbAbsolutePath.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';
|
|
461
|
+
const stdoutPath = '${stdoutPath.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';
|
|
462
|
+
const stderrPath = '${stderrPath.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}';
|
|
463
|
+
const POLL_INTERVAL = ${MONITOR_POLL_INTERVAL_MS};
|
|
464
|
+
const TIMEOUT_MS = ${TASK_TIMEOUT_MS};
|
|
465
|
+
const MAX_ERROR_LEN = ${MAX_ERROR_LENGTH};
|
|
466
|
+
const MAX_RESULT_LEN = 100000;
|
|
467
|
+
|
|
468
|
+
// Validate PID is a positive integer
|
|
469
|
+
if (!pid || pid <= 0 || !Number.isInteger(pid)) {
|
|
470
|
+
console.error('[Monitor] Invalid PID: ' + pid + ' - exiting');
|
|
471
|
+
process.exit(1);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
console.error('[Monitor] Starting monitor for task ' + taskId + ' PID ' + pid);
|
|
475
|
+
console.error('[Monitor] Database path: ' + dbPath);
|
|
476
|
+
console.error('[Monitor] Stdout path: ' + stdoutPath);
|
|
477
|
+
|
|
478
|
+
// Poll at configured interval to check if process still exists
|
|
479
|
+
const checkInterval = setInterval(() => {
|
|
480
|
+
try {
|
|
481
|
+
// Check if process exists (throws if not)
|
|
482
|
+
process.kill(pid, 0);
|
|
483
|
+
// Still running - silent poll (reduce log noise)
|
|
484
|
+
} catch (error) {
|
|
485
|
+
// Process no longer exists - it completed or failed
|
|
486
|
+
clearInterval(checkInterval);
|
|
487
|
+
|
|
488
|
+
console.error('[Monitor] Task ' + taskId + ' PID ' + pid + ' exited - reading output');
|
|
489
|
+
|
|
490
|
+
// Read output files
|
|
491
|
+
let stdout = '';
|
|
492
|
+
let stderr = '';
|
|
493
|
+
let result = null;
|
|
494
|
+
let taskStatus = 'completed';
|
|
495
|
+
let taskError = null;
|
|
496
|
+
|
|
497
|
+
try {
|
|
498
|
+
stdout = fs.readFileSync(stdoutPath, 'utf8');
|
|
499
|
+
console.error('[Monitor] Read ' + stdout.length + ' bytes from stdout');
|
|
500
|
+
} catch (e) {
|
|
501
|
+
console.error('[Monitor] Could not read stdout:', e.message);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
try {
|
|
505
|
+
stderr = fs.readFileSync(stderrPath, 'utf8');
|
|
506
|
+
if (stderr) console.error('[Monitor] Stderr: ' + stderr.slice(0, 200));
|
|
507
|
+
} catch (e) {
|
|
508
|
+
// Ignore stderr read errors
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
// Parse JSON output from Gemini CLI with robust error handling
|
|
512
|
+
if (stdout) {
|
|
513
|
+
let parsed = false;
|
|
514
|
+
|
|
515
|
+
// Strategy 1: Try parsing entire stdout as JSON
|
|
516
|
+
try {
|
|
517
|
+
const json = JSON.parse(stdout.trim());
|
|
518
|
+
if (json.response !== undefined) {
|
|
519
|
+
result = json.response || 'Task completed successfully.';
|
|
520
|
+
|
|
521
|
+
// Add stats if available
|
|
522
|
+
if (json.stats && json.stats.models) {
|
|
523
|
+
const modelNames = Object.keys(json.stats.models);
|
|
524
|
+
const totalTokens = modelNames.reduce((sum, m) => {
|
|
525
|
+
return sum + (json.stats.models[m]?.tokens?.total || 0);
|
|
526
|
+
}, 0);
|
|
527
|
+
result += '\\n\\n---\\n**Stats:** ' + totalTokens + ' tokens | Models: ' + modelNames.join(', ');
|
|
528
|
+
}
|
|
529
|
+
parsed = true;
|
|
530
|
+
}
|
|
531
|
+
} catch (e) {
|
|
532
|
+
// Strategy 2: Find last complete JSON object (scan from end)
|
|
533
|
+
const lines = stdout.split('\\n');
|
|
534
|
+
for (let i = lines.length - 1; i >= 0 && !parsed; i--) {
|
|
535
|
+
const line = lines[i].trim();
|
|
536
|
+
if (line.startsWith('{')) {
|
|
537
|
+
try {
|
|
538
|
+
const json = JSON.parse(line);
|
|
539
|
+
if (json.response !== undefined) {
|
|
540
|
+
result = json.response || 'Task completed successfully.';
|
|
541
|
+
if (json.stats && json.stats.models) {
|
|
542
|
+
const modelNames = Object.keys(json.stats.models);
|
|
543
|
+
const totalTokens = modelNames.reduce((sum, m) => {
|
|
544
|
+
return sum + (json.stats.models[m]?.tokens?.total || 0);
|
|
545
|
+
}, 0);
|
|
546
|
+
result += '\\n\\n---\\n**Stats:** ' + totalTokens + ' tokens | Models: ' + modelNames.join(', ');
|
|
547
|
+
}
|
|
548
|
+
parsed = true;
|
|
549
|
+
break;
|
|
550
|
+
}
|
|
551
|
+
} catch (lineErr) {
|
|
552
|
+
// Try next line
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
// Strategy 3: Use raw output if JSON parsing failed
|
|
559
|
+
if (!parsed) {
|
|
560
|
+
result = stdout.trim() || 'Task completed (no JSON output captured).';
|
|
561
|
+
}
|
|
562
|
+
} else {
|
|
563
|
+
result = 'Task completed but no output was captured.';
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
// Limit result length to prevent database bloat
|
|
567
|
+
if (result && result.length > MAX_RESULT_LEN) {
|
|
568
|
+
result = result.slice(0, MAX_RESULT_LEN) + '\\n\\n[Output truncated - exceeded ' + MAX_RESULT_LEN + ' characters]';
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
// Check for errors in stderr
|
|
572
|
+
if (stderr && (stderr.includes('Error') || stderr.includes('error') || stderr.includes('FAILED'))) {
|
|
573
|
+
taskStatus = 'failed';
|
|
574
|
+
taskError = stderr.slice(0, MAX_ERROR_LEN);
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
// Update database with result
|
|
578
|
+
try {
|
|
579
|
+
const db = new Database(dbPath);
|
|
580
|
+
const stmt = db.prepare(\`
|
|
581
|
+
UPDATE tasks
|
|
582
|
+
SET status = ?, progress = ?, result = ?, error = ?, completed_at = ?, updated_at = ?
|
|
583
|
+
WHERE id = ?
|
|
584
|
+
\`);
|
|
585
|
+
stmt.run(taskStatus, 100, result, taskError, new Date().toISOString(), new Date().toISOString(), taskId);
|
|
586
|
+
db.close();
|
|
587
|
+
console.error('[Monitor] Task ' + taskId + ' marked as ' + taskStatus + ' with result (' + (result?.length || 0) + ' chars)');
|
|
588
|
+
} catch (dbError) {
|
|
589
|
+
console.error('[Monitor] Database update failed:', dbError.message);
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
// Cleanup temp files
|
|
593
|
+
try { fs.unlinkSync(stdoutPath); } catch (e) {}
|
|
594
|
+
try { fs.unlinkSync(stderrPath); } catch (e) {}
|
|
595
|
+
|
|
596
|
+
process.exit(0);
|
|
597
|
+
}
|
|
598
|
+
}, POLL_INTERVAL);
|
|
599
|
+
|
|
600
|
+
// Timeout after configured duration
|
|
601
|
+
setTimeout(() => {
|
|
602
|
+
clearInterval(checkInterval);
|
|
603
|
+
console.error('[Monitor] Task ' + taskId + ' timeout after ' + (TIMEOUT_MS / 60000) + ' minutes');
|
|
604
|
+
try {
|
|
605
|
+
const db = new Database(dbPath);
|
|
606
|
+
const stmt = db.prepare(\`
|
|
607
|
+
UPDATE tasks
|
|
608
|
+
SET status = ?, error = ?, updated_at = ?
|
|
609
|
+
WHERE id = ?
|
|
610
|
+
\`);
|
|
611
|
+
stmt.run('failed', 'Task timeout after ' + (TIMEOUT_MS / 60000) + ' minutes', new Date().toISOString(), taskId);
|
|
612
|
+
db.close();
|
|
613
|
+
} catch (dbError) {
|
|
614
|
+
console.error('[Monitor] Database update failed:', dbError.message);
|
|
615
|
+
}
|
|
616
|
+
process.exit(0);
|
|
617
|
+
}, TIMEOUT_MS);
|
|
618
|
+
`;
|
|
619
|
+
// Write monitor script to temp file
|
|
620
|
+
const monitorPath = join(tmpdir(), `${MONITOR_FILE_PREFIX}${taskId}.js`);
|
|
621
|
+
writeFileSync(monitorPath, monitorScript);
|
|
622
|
+
// Get node_modules path for the monitor to find better-sqlite3
|
|
623
|
+
const nodeModulesPath = join(__dirname, '../../node_modules');
|
|
624
|
+
// Spawn detached monitor with NODE_PATH set
|
|
625
|
+
const monitor = spawn('node', [monitorPath], {
|
|
626
|
+
detached: true,
|
|
627
|
+
stdio: 'ignore',
|
|
628
|
+
env: {
|
|
629
|
+
...process.env,
|
|
630
|
+
NODE_PATH: nodeModulesPath,
|
|
631
|
+
},
|
|
632
|
+
});
|
|
633
|
+
monitor.unref();
|
|
634
|
+
console.error(`[TaskStore] Started background monitor for task ${taskId} (monitor PID: ${monitor.pid})`);
|
|
635
|
+
}
|
|
636
|
+
// Model fallback chain imported from constants.ts
|
|
458
637
|
/**
|
|
459
638
|
* Execute Gemini CLI with a specific model
|
|
460
639
|
* Uses modern syntax: gemini --yolo --model <model> --output-format json "prompt"
|
|
461
640
|
* Note: --prompt flag is deprecated, use positional argument instead
|
|
462
641
|
*/
|
|
463
|
-
function executeWithModel(model, settings, taskConfig, finalPrompt, options, onProgress) {
|
|
642
|
+
function executeWithModel(model, settings, taskConfig, finalPrompt, options, onProgress, onProcessSpawn) {
|
|
464
643
|
const cliArgs = [];
|
|
465
644
|
// Auto-approve mode (--yolo or --approval-mode)
|
|
466
645
|
if (options.approval_mode) {
|
|
@@ -491,7 +670,13 @@ function executeWithModel(model, settings, taskConfig, finalPrompt, options, onP
|
|
|
491
670
|
env: process.env,
|
|
492
671
|
shell: false,
|
|
493
672
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
673
|
+
detached: false,
|
|
494
674
|
});
|
|
675
|
+
// Report PID immediately after spawn
|
|
676
|
+
if (child.pid) {
|
|
677
|
+
console.error(`[Gemini CLI] Spawned process PID ${child.pid} for model ${model}`);
|
|
678
|
+
onProcessSpawn?.(child.pid);
|
|
679
|
+
}
|
|
495
680
|
child.stdout.on('data', (data) => {
|
|
496
681
|
const chunk = data.toString();
|
|
497
682
|
stdout += chunk;
|
|
@@ -553,12 +738,12 @@ function executeWithModel(model, settings, taskConfig, finalPrompt, options, onP
|
|
|
553
738
|
* Execute Gemini CLI with subagent task (blocking mode)
|
|
554
739
|
* Uses model fallback chain: tries models in sequence until one succeeds
|
|
555
740
|
*/
|
|
556
|
-
export async function executeSubagent(args, onProgress) {
|
|
741
|
+
export async function executeSubagent(args, onProgress, onProcessSpawn) {
|
|
557
742
|
const config = loadSubagentConfig();
|
|
558
743
|
const settings = config.settings;
|
|
559
744
|
const taskConfig = config.task_types[args.task_type];
|
|
560
745
|
if (!taskConfig) {
|
|
561
|
-
throw new Error(`Invalid task_type: ${args.task_type}. Must be: completion-inspector, helper-friend, or manual
|
|
746
|
+
throw new Error(`Invalid task_type: ${args.task_type}. Must be: completion-inspector, helper-friend, manual-tester, or manual`);
|
|
562
747
|
}
|
|
563
748
|
const includeInstructions = args.include_instructions ?? settings.defaults.append_instructions;
|
|
564
749
|
const finalPrompt = buildFinalPrompt(args.task_type, args.prompt, includeInstructions);
|
|
@@ -570,14 +755,14 @@ export async function executeSubagent(args, onProgress) {
|
|
|
570
755
|
// If user specified a model, use only that model (no fallback)
|
|
571
756
|
if (args.model) {
|
|
572
757
|
// Error is already well-formatted by executeWithModel, just re-throw
|
|
573
|
-
return await executeWithModel(args.model, settings, taskConfig, finalPrompt, execOptions, onProgress);
|
|
758
|
+
return await executeWithModel(args.model, settings, taskConfig, finalPrompt, execOptions, onProgress, onProcessSpawn);
|
|
574
759
|
}
|
|
575
760
|
// Use fallback chain
|
|
576
761
|
const errors = [];
|
|
577
762
|
for (const model of MODEL_FALLBACK_CHAIN) {
|
|
578
763
|
try {
|
|
579
764
|
onProgress?.(`🔄 Trying model: ${model}...\n`);
|
|
580
|
-
return await executeWithModel(model, settings, taskConfig, finalPrompt, execOptions, onProgress);
|
|
765
|
+
return await executeWithModel(model, settings, taskConfig, finalPrompt, execOptions, onProgress, onProcessSpawn);
|
|
581
766
|
}
|
|
582
767
|
catch (error) {
|
|
583
768
|
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"}
|