@sylix/coworker 1.2.6 → 1.3.1

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 (82) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +181 -106
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/slash/advanced.d.ts +3 -0
  5. package/dist/commands/slash/advanced.d.ts.map +1 -0
  6. package/dist/commands/slash/advanced.js +225 -0
  7. package/dist/commands/slash/advanced.js.map +1 -0
  8. package/dist/commands/slash/config.d.ts +3 -0
  9. package/dist/commands/slash/config.d.ts.map +1 -0
  10. package/dist/commands/slash/config.js +161 -0
  11. package/dist/commands/slash/config.js.map +1 -0
  12. package/dist/commands/slash/context.d.ts +3 -0
  13. package/dist/commands/slash/context.d.ts.map +1 -0
  14. package/dist/commands/slash/context.js +127 -0
  15. package/dist/commands/slash/context.js.map +1 -0
  16. package/dist/commands/slash/core.d.ts +3 -0
  17. package/dist/commands/slash/core.d.ts.map +1 -0
  18. package/dist/commands/slash/core.js +112 -0
  19. package/dist/commands/slash/core.js.map +1 -0
  20. package/dist/commands/slash/developer.d.ts +3 -0
  21. package/dist/commands/slash/developer.d.ts.map +1 -0
  22. package/dist/commands/slash/developer.js +174 -0
  23. package/dist/commands/slash/developer.js.map +1 -0
  24. package/dist/commands/slash/files.d.ts +3 -0
  25. package/dist/commands/slash/files.d.ts.map +1 -0
  26. package/dist/commands/slash/files.js +216 -0
  27. package/dist/commands/slash/files.js.map +1 -0
  28. package/dist/commands/slash/registry.d.ts +36 -0
  29. package/dist/commands/slash/registry.d.ts.map +1 -0
  30. package/dist/commands/slash/registry.js +69 -0
  31. package/dist/commands/slash/registry.js.map +1 -0
  32. package/dist/commands/slash/session.d.ts +3 -0
  33. package/dist/commands/slash/session.d.ts.map +1 -0
  34. package/dist/commands/slash/session.js +144 -0
  35. package/dist/commands/slash/session.js.map +1 -0
  36. package/dist/core/CoWorkerAgent.d.ts +8 -2
  37. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  38. package/dist/core/CoWorkerAgent.js +179 -36
  39. package/dist/core/CoWorkerAgent.js.map +1 -1
  40. package/dist/review/CodeReviewEngine.d.ts +78 -0
  41. package/dist/review/CodeReviewEngine.d.ts.map +1 -0
  42. package/dist/review/CodeReviewEngine.js +449 -0
  43. package/dist/review/CodeReviewEngine.js.map +1 -0
  44. package/dist/session/SessionManager.js +10 -5
  45. package/dist/session/SessionManager.js.map +1 -1
  46. package/dist/skills/HookAndSkillManager.d.ts +29 -5
  47. package/dist/skills/HookAndSkillManager.d.ts.map +1 -1
  48. package/dist/skills/HookAndSkillManager.js +167 -12
  49. package/dist/skills/HookAndSkillManager.js.map +1 -1
  50. package/dist/todos/TodoManager.d.ts +19 -0
  51. package/dist/todos/TodoManager.d.ts.map +1 -0
  52. package/dist/todos/TodoManager.js +102 -0
  53. package/dist/todos/TodoManager.js.map +1 -0
  54. package/dist/tools/NativeTools.d.ts +98 -0
  55. package/dist/tools/NativeTools.d.ts.map +1 -1
  56. package/dist/tools/NativeTools.js +571 -0
  57. package/dist/tools/NativeTools.js.map +1 -1
  58. package/dist/tools/Schemas.d.ts +1199 -102
  59. package/dist/tools/Schemas.d.ts.map +1 -1
  60. package/dist/tools/Schemas.js +358 -40
  61. package/dist/tools/Schemas.js.map +1 -1
  62. package/dist/utils/conversations.d.ts +14 -0
  63. package/dist/utils/conversations.d.ts.map +1 -0
  64. package/dist/utils/conversations.js +100 -0
  65. package/dist/utils/conversations.js.map +1 -0
  66. package/dist/utils/inputbar.d.ts +87 -0
  67. package/dist/utils/inputbar.d.ts.map +1 -0
  68. package/dist/utils/inputbar.js +263 -0
  69. package/dist/utils/inputbar.js.map +1 -0
  70. package/dist/utils/output.d.ts +73 -48
  71. package/dist/utils/output.d.ts.map +1 -1
  72. package/dist/utils/output.js +349 -158
  73. package/dist/utils/output.js.map +1 -1
  74. package/dist/utils/palette.d.ts +25 -0
  75. package/dist/utils/palette.d.ts.map +1 -0
  76. package/dist/utils/palette.js +92 -0
  77. package/dist/utils/palette.js.map +1 -0
  78. package/dist/utils/welcome.d.ts +2 -0
  79. package/dist/utils/welcome.d.ts.map +1 -0
  80. package/dist/utils/welcome.js +130 -0
  81. package/dist/utils/welcome.js.map +1 -0
  82. package/package.json +1 -1
@@ -41,6 +41,8 @@ const http = __importStar(require("http"));
41
41
  const duck_duck_scrape_1 = require("duck-duck-scrape");
42
42
  const readline = __importStar(require("readline"));
43
43
  const child_process_1 = require("child_process");
44
+ const TodoManager_1 = require("../todos/TodoManager");
45
+ const crypto_1 = require("crypto");
44
46
  /**
45
47
  * Phase 1: Native filesystem tooling avoiding brittle OS-dependent bash shells (dir/findstr).
46
48
  * Fully implemented functions with zero external dependencies.
@@ -252,6 +254,575 @@ class NativeTools {
252
254
  });
253
255
  });
254
256
  }
257
+ /**
258
+ * Edits an existing file by replacing specific strings.
259
+ * Similar to the Edit tool in Claude Code.
260
+ */
261
+ static async executeEdit(filePath, oldString, newString, replaceAll = false) {
262
+ const absolutePath = path.resolve(process.cwd(), filePath);
263
+ try {
264
+ let content = await fs.readFile(absolutePath, 'utf8');
265
+ if (replaceAll) {
266
+ // Replace all occurrences
267
+ const regex = new RegExp(oldString.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g');
268
+ content = content.replace(regex, newString);
269
+ }
270
+ else {
271
+ // Replace only first occurrence
272
+ const index = content.indexOf(oldString);
273
+ if (index === -1) {
274
+ return `Error: String not found in file: ${oldString}`;
275
+ }
276
+ content = content.slice(0, index) + newString + content.slice(index + oldString.length);
277
+ }
278
+ await fs.writeFile(absolutePath, content, 'utf8');
279
+ return `Successfully edited ${absolutePath}`;
280
+ }
281
+ catch (e) {
282
+ return `Error editing file: ${e.message}`;
283
+ }
284
+ }
285
+ /**
286
+ * Performs multiple edits on a single file.
287
+ * Similar to the MultiEdit tool in Claude Code.
288
+ */
289
+ static async executeMultiEdit(filePath, edits) {
290
+ const absolutePath = path.resolve(process.cwd(), filePath);
291
+ try {
292
+ let content = await fs.readFile(absolutePath, 'utf8');
293
+ // Apply edits in sequence
294
+ for (const edit of edits) {
295
+ const { oldString, newString, replaceAll = false } = edit;
296
+ if (replaceAll) {
297
+ // Replace all occurrences
298
+ const regex = new RegExp(oldString.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g');
299
+ content = content.replace(regex, newString);
300
+ }
301
+ else {
302
+ // Replace only first occurrence
303
+ const index = content.indexOf(oldString);
304
+ if (index === -1) {
305
+ return `Error: String not found in file: ${oldString}`;
306
+ }
307
+ content = content.slice(0, index) + newString + content.slice(index + oldString.length);
308
+ }
309
+ }
310
+ await fs.writeFile(absolutePath, content, 'utf8');
311
+ return `Successfully applied ${edits.length} edits to ${absolutePath}`;
312
+ }
313
+ catch (e) {
314
+ return `Error performing multi-edit on file: ${e.message}`;
315
+ }
316
+ }
317
+ /**
318
+ * Lists files and directories in the specified path.
319
+ * Similar to the LS tool in Claude Code.
320
+ */
321
+ static async executeLS(dirPath = '.', recursive = false) {
322
+ const absolutePath = path.resolve(process.cwd(), dirPath);
323
+ if (!recursive) {
324
+ // Non-recursive listing (similar to executeListDir but simpler format)
325
+ try {
326
+ const entries = await fs.readdir(absolutePath, { withFileTypes: true });
327
+ const results = [];
328
+ for (const entry of entries) {
329
+ const fullPath = path.join(absolutePath, entry.name);
330
+ if (entry.isDirectory()) {
331
+ results.push(`${entry.name}/`);
332
+ }
333
+ else {
334
+ results.push(entry.name);
335
+ }
336
+ }
337
+ return results.length > 0 ? results.join('\n') : '(empty)';
338
+ }
339
+ catch (e) {
340
+ return `Error listing directory: ${e.message}`;
341
+ }
342
+ }
343
+ else {
344
+ // Recursive listing
345
+ try {
346
+ const results = [];
347
+ async function walk(currentDir, indent = '') {
348
+ const entries = await fs.readdir(currentDir, { withFileTypes: true });
349
+ for (const entry of entries) {
350
+ const fullPath = path.join(currentDir, entry.name);
351
+ const relativePath = path.relative(absolutePath, fullPath);
352
+ if (entry.isDirectory()) {
353
+ results.push(`${indent}${entry.name}/`);
354
+ await walk(fullPath, indent + ' ');
355
+ }
356
+ else {
357
+ results.push(`${indent}${entry.name}`);
358
+ }
359
+ }
360
+ }
361
+ await walk(absolutePath);
362
+ return results.length > 0 ? results.join('\n') : '(empty)';
363
+ }
364
+ catch (e) {
365
+ return `Error walking directory: ${e.message}`;
366
+ }
367
+ }
368
+ }
369
+ /**
370
+ * Reads the current todo list for the session.
371
+ * Similar to the TodoRead tool in Claude Code.
372
+ */
373
+ static async executeTodoRead() {
374
+ try {
375
+ const todoManager = new TodoManager_1.TodoManager();
376
+ const todos = await todoManager.getTodos();
377
+ if (todos.length === 0) {
378
+ return 'No todos found.';
379
+ }
380
+ return todos.map(todo => {
381
+ const statusSymbols = {
382
+ pending: '[ ]',
383
+ in_progress: '[>]',
384
+ completed: '[x]'
385
+ };
386
+ const prioritySymbols = {
387
+ high: '! ',
388
+ medium: '',
389
+ low: '↓ '
390
+ };
391
+ return `${statusSymbols[todo.status]} ${prioritySymbols[todo.priority]}${todo.content}`;
392
+ }).join('\n');
393
+ }
394
+ catch (e) {
395
+ return `Error reading todos: ${e.message}`;
396
+ }
397
+ }
398
+ /**
399
+ * Creates and manages a structured todo list for tracking progress.
400
+ * Similar to the TodoWrite tool in Claude Code.
401
+ */
402
+ static async executeTodoWrite(todos) {
403
+ try {
404
+ const todoManager = new TodoManager_1.TodoManager();
405
+ // Clear existing todos by removing all, then add new ones
406
+ for (const todo of await todoManager.getTodos()) {
407
+ await todoManager.deleteTodo(todo.id);
408
+ }
409
+ // Add new todos
410
+ for (const todoData of todos) {
411
+ await todoManager.addTodo(todoData.content, todoData.priority);
412
+ // Note: We lose the specific ID mapping here, but for Claude Code parity
413
+ // this is acceptable as the API focuses on content rather than preserving IDs
414
+ }
415
+ return `Successfully wrote ${todos.length} todos`;
416
+ }
417
+ catch (e) {
418
+ return `Error writing todos: ${e.message}`;
419
+ }
420
+ }
421
+ /**
422
+ * Reads a Jupyter notebook (.ipynb file) and returns all cells with their outputs.
423
+ * Similar to the NotebookRead tool in Claude Code.
424
+ */
425
+ static async executeNotebookRead(notebookPath) {
426
+ const absolutePath = path.resolve(process.cwd(), notebookPath);
427
+ try {
428
+ // Check if file exists
429
+ await fs.access(absolutePath);
430
+ // Read the notebook file
431
+ const content = await fs.readFile(absolutePath, 'utf8');
432
+ // Try to parse as JSON
433
+ let notebook;
434
+ try {
435
+ notebook = JSON.parse(content);
436
+ }
437
+ catch (e) {
438
+ return `Error: File ${absolutePath} is not a valid JSON file.`;
439
+ }
440
+ // Check if it's a valid notebook
441
+ if (!notebook.cells || !Array.isArray(notebook.cells)) {
442
+ return `Error: File ${absolutePath} is not a valid Jupyter notebook.`;
443
+ }
444
+ // Format the notebook cells for display
445
+ const results = [`Notebook: ${absolutePath}\n`];
446
+ notebook.cells.forEach((cell, index) => {
447
+ const cellType = cell.cell_type || 'unknown';
448
+ const source = Array.isArray(cell.source) ? cell.source.join('') : cell.source;
449
+ const outputs = Array.isArray(cell.outputs) ? cell.outputs : [];
450
+ results.push(`Cell ${index}: ${cellType}`);
451
+ results.push('─'.repeat(40));
452
+ if (source.trim()) {
453
+ results.push('Source:');
454
+ results.push(source);
455
+ results.push('');
456
+ }
457
+ if (outputs.length > 0) {
458
+ results.push('Outputs:');
459
+ outputs.forEach((output, outputIndex) => {
460
+ const outputType = output.output_type || 'unknown';
461
+ results.push(` Output ${outputIndex} (${outputType}):`);
462
+ if (outputType === 'stream') {
463
+ const text = Array.isArray(output.text) ? output.text.join('') : output.text;
464
+ results.push(` ${text}`);
465
+ }
466
+ else if (outputType === 'execute_result' || outputType === 'display_data') {
467
+ if (output.data && output.data['text/plain']) {
468
+ const text = Array.isArray(output.data['text/plain']) ?
469
+ output.data['text/plain'].join('') : output.data['text/plain'];
470
+ results.push(` ${text}`);
471
+ }
472
+ }
473
+ else if (outputType === 'error') {
474
+ const ename = output.ename || 'Error';
475
+ const evalue = output.evalue || '';
476
+ const traceback = Array.isArray(output.traceback) ?
477
+ output.traceback.join('\n') : output.traceback;
478
+ results.push(` ${ename}: ${evalue}`);
479
+ if (traceback) {
480
+ results.push(` Traceback:\n${traceback}`);
481
+ }
482
+ }
483
+ });
484
+ results.push('');
485
+ }
486
+ results.push('');
487
+ });
488
+ return results.join('\n');
489
+ }
490
+ catch (e) {
491
+ if (e.code === 'ENOENT') {
492
+ return `Error: Notebook file not found: ${absolutePath}`;
493
+ }
494
+ return `Error reading notebook: ${e.message}`;
495
+ }
496
+ }
497
+ /**
498
+ * Replaces, inserts, or deletes cells in a Jupyter notebook.
499
+ * Similar to the NotebookEdit tool in Claude Code.
500
+ */
501
+ static async executeNotebookEdit(notebookPath, newSource, cellId, cellType = 'code') {
502
+ const absolutePath = path.resolve(process.cwd(), notebookPath);
503
+ try {
504
+ // Check if file exists
505
+ await fs.access(absolutePath);
506
+ // Read the notebook file
507
+ const content = await fs.readFile(absolutePath, 'utf8');
508
+ // Parse the notebook
509
+ let notebook;
510
+ try {
511
+ notebook = JSON.parse(content);
512
+ }
513
+ catch (e) {
514
+ return `Error: File ${absolutePath} is not a valid JSON file.`;
515
+ }
516
+ // Check if it's a valid notebook
517
+ if (!notebook.cells || !Array.isArray(notebook.cells)) {
518
+ return `Error: File ${absolutePath} is not a valid Jupyter notebook.`;
519
+ }
520
+ // If cellId is provided, find the cell index
521
+ let cellIndex;
522
+ if (cellId !== undefined) {
523
+ cellIndex = notebook.cells.findIndex((cell) => cell.id === cellId);
524
+ if (cellIndex === -1) {
525
+ return `Error: Cell with id '${cellId}' not found in notebook.`;
526
+ }
527
+ }
528
+ // Create new cell
529
+ const newCell = {
530
+ cell_type: cellType,
531
+ id: (0, crypto_1.randomUUID)(),
532
+ source: [newSource],
533
+ outputs: [],
534
+ execution_count: null
535
+ };
536
+ // Modify notebook based on operation
537
+ if (cellIndex !== undefined) {
538
+ // Replace existing cell
539
+ notebook.cells[cellIndex] = newCell;
540
+ }
541
+ else {
542
+ // Append new cell (default behavior when no cellId specified)
543
+ notebook.cells.push(newCell);
544
+ }
545
+ // Write back to file
546
+ await fs.writeFile(absolutePath, JSON.stringify(notebook, null, 2), 'utf8');
547
+ return `Successfully ${cellId ? 'updated' : 'added'} cell in ${absolutePath}`;
548
+ }
549
+ catch (e) {
550
+ if (e.code === 'ENOENT') {
551
+ return `Error: Notebook file not found: ${absolutePath}`;
552
+ }
553
+ return `Error editing notebook: ${e.message}`;
554
+ }
555
+ }
556
+ /**
557
+ * Launches a sub-agent to handle complex, multi-step operations autonomously.
558
+ * Similar to the Agent tool in Claude Code.
559
+ */
560
+ static async executeAgent(description, subagentType) {
561
+ try {
562
+ const { CoWorkerAgent } = await Promise.resolve().then(() => __importStar(require('../core/CoWorkerAgent')));
563
+ const model = 'helix-1.2';
564
+ const agent = new CoWorkerAgent({
565
+ model,
566
+ role: subagentType && ['CodeReviewer', 'PlanAgent', 'BashWorker'].includes(subagentType)
567
+ ? subagentType
568
+ : 'General'
569
+ });
570
+ await agent.boot();
571
+ let result = '';
572
+ for await (const chunk of agent.chat(description)) {
573
+ result += chunk;
574
+ }
575
+ return `[SUBAGENT OUTPUT] ${result}`;
576
+ }
577
+ catch (e) {
578
+ return `Error launching sub-agent: ${e.message}`;
579
+ }
580
+ }
581
+ // ═══════════════════════════════════════════════════════════════════
582
+ // MEMORY — COWORKER.md persistent project memory (Claude Code parity)
583
+ // ═══════════════════════════════════════════════════════════════════
584
+ /**
585
+ * Reads the COWORKER.md memory file from the project root.
586
+ * Equivalent to Claude Code's MemoryRead (CLAUDE.md).
587
+ */
588
+ static async executeMemoryRead() {
589
+ const memoryPath = path.resolve(process.cwd(), 'COWORKER.md');
590
+ try {
591
+ const content = await fs.readFile(memoryPath, 'utf8');
592
+ return `COWORKER.md (${content.length} chars):\n${content}`;
593
+ }
594
+ catch (e) {
595
+ if (e.code === 'ENOENT') {
596
+ return 'No COWORKER.md file found in the project root. Use memoryWrite to create one.';
597
+ }
598
+ return `Error reading COWORKER.md: ${e.message}`;
599
+ }
600
+ }
601
+ /**
602
+ * Writes or appends to the COWORKER.md memory file.
603
+ * Equivalent to Claude Code's MemoryWrite (CLAUDE.md).
604
+ */
605
+ static async executeMemoryWrite(content, mode = 'append') {
606
+ const memoryPath = path.resolve(process.cwd(), 'COWORKER.md');
607
+ try {
608
+ if (mode === 'append') {
609
+ let existing = '';
610
+ try {
611
+ existing = await fs.readFile(memoryPath, 'utf8');
612
+ }
613
+ catch { /* file doesn't exist yet */ }
614
+ const newContent = existing ? `${existing}\n${content}` : content;
615
+ await fs.writeFile(memoryPath, newContent, 'utf8');
616
+ return `Appended ${content.length} chars to COWORKER.md`;
617
+ }
618
+ else {
619
+ await fs.writeFile(memoryPath, content, 'utf8');
620
+ return `Overwrote COWORKER.md with ${content.length} chars`;
621
+ }
622
+ }
623
+ catch (e) {
624
+ return `Error writing COWORKER.md: ${e.message}`;
625
+ }
626
+ }
627
+ // ═══════════════════════════════════════════════════════════════════
628
+ // GIT — Structured git operations (Claude Code parity)
629
+ // ═══════════════════════════════════════════════════════════════════
630
+ /**
631
+ * Returns structured git status output.
632
+ * Equivalent to Claude Code's GitStatus tool.
633
+ */
634
+ static async executeGitStatus(cwd) {
635
+ const dir = cwd || process.cwd();
636
+ try {
637
+ const branch = (0, child_process_1.execSync)('git branch --show-current', { cwd: dir, encoding: 'utf8' }).trim();
638
+ const status = (0, child_process_1.execSync)('git status --short', { cwd: dir, encoding: 'utf8' }).trim();
639
+ const ahead = (0, child_process_1.execSync)('git rev-list --count @{u}..HEAD 2>/dev/null || echo 0', { cwd: dir, encoding: 'utf8', shell: 'cmd.exe' }).trim();
640
+ let result = `Branch: ${branch}\n`;
641
+ if (status) {
642
+ result += `\nChanged files:\n${status}`;
643
+ }
644
+ else {
645
+ result += '\nWorking tree clean.';
646
+ }
647
+ return result;
648
+ }
649
+ catch (e) {
650
+ return `Git status error: ${e.message}`;
651
+ }
652
+ }
653
+ /**
654
+ * Returns git diff output for working directory or specific file.
655
+ * Equivalent to Claude Code's GitDiff tool.
656
+ */
657
+ static async executeGitDiff(filePath, staged = false, cwd) {
658
+ const dir = cwd || process.cwd();
659
+ try {
660
+ let cmd = 'git diff';
661
+ if (staged)
662
+ cmd += ' --cached';
663
+ if (filePath)
664
+ cmd += ` -- "${filePath}"`;
665
+ const diff = (0, child_process_1.execSync)(cmd, { cwd: dir, encoding: 'utf8', maxBuffer: 1024 * 1024 * 5 }).trim();
666
+ return diff || 'No differences found.';
667
+ }
668
+ catch (e) {
669
+ return `Git diff error: ${e.message}`;
670
+ }
671
+ }
672
+ /**
673
+ * Stages files and creates a git commit.
674
+ * Equivalent to Claude Code's GitCommit tool.
675
+ */
676
+ static async executeGitCommit(message, files, cwd) {
677
+ const dir = cwd || process.cwd();
678
+ try {
679
+ // Stage files
680
+ if (files && files.length > 0) {
681
+ for (const file of files) {
682
+ (0, child_process_1.execSync)(`git add "${file}"`, { cwd: dir, encoding: 'utf8' });
683
+ }
684
+ }
685
+ else {
686
+ (0, child_process_1.execSync)('git add -A', { cwd: dir, encoding: 'utf8' });
687
+ }
688
+ // Commit
689
+ const result = (0, child_process_1.execSync)(`git commit -m "${message.replace(/"/g, '\\"')}"`, { cwd: dir, encoding: 'utf8' }).trim();
690
+ return result;
691
+ }
692
+ catch (e) {
693
+ const stderr = e.stderr?.toString() || e.message;
694
+ return `Git commit error: ${stderr}`;
695
+ }
696
+ }
697
+ // ═══════════════════════════════════════════════════════════════════
698
+ // PROCESS — Background process management (Claude Code parity)
699
+ // ═══════════════════════════════════════════════════════════════════
700
+ /**
701
+ * Reads output from a background process.
702
+ * Equivalent to Claude Code's BashOutput tool.
703
+ */
704
+ static async executeBashOutput(pid) {
705
+ try {
706
+ // Check if process is still running
707
+ const isRunning = (0, child_process_1.execSync)(process.platform === 'win32'
708
+ ? `tasklist /FI "PID eq ${pid}" /NH`
709
+ : `ps -p ${pid} -o comm=`, { encoding: 'utf8' }).trim();
710
+ if (!isRunning || isRunning.includes('No tasks')) {
711
+ return `Process ${pid} is no longer running.`;
712
+ }
713
+ return `Process ${pid} is still running: ${isRunning}`;
714
+ }
715
+ catch (e) {
716
+ return `Process ${pid} not found or already exited.`;
717
+ }
718
+ }
719
+ /**
720
+ * Kills a running process by PID.
721
+ * Equivalent to Claude Code's KillShell tool.
722
+ */
723
+ static async executeKillShell(pid) {
724
+ try {
725
+ if (process.platform === 'win32') {
726
+ (0, child_process_1.execSync)(`taskkill /PID ${pid} /F`, { encoding: 'utf8' });
727
+ }
728
+ else {
729
+ (0, child_process_1.execSync)(`kill -9 ${pid}`, { encoding: 'utf8' });
730
+ }
731
+ return `Successfully killed process ${pid}.`;
732
+ }
733
+ catch (e) {
734
+ return `Failed to kill process ${pid}: ${e.message}`;
735
+ }
736
+ }
737
+ /**
738
+ * Returns a sub-agent's result back to the parent agent.
739
+ * Equivalent to Claude Code's ReturnSubagentResult tool.
740
+ */
741
+ static async executeReturnSubagentResult(result) {
742
+ return `[SUBAGENT_RESULT] ${result}`;
743
+ }
744
+ /**
745
+ * Runs diagnostics/linting on a file to detect errors.
746
+ * Supports: TypeScript (tsc), JavaScript (node --check), Python (py_compile), JSON, CSS
747
+ */
748
+ static async executeDiagnostics(filePath) {
749
+ const absolutePath = path.resolve(process.cwd(), filePath);
750
+ const ext = path.extname(filePath).toLowerCase();
751
+ const dir = path.dirname(absolutePath);
752
+ try {
753
+ await fs.access(absolutePath);
754
+ }
755
+ catch {
756
+ return `Error: File not found: ${absolutePath}`;
757
+ }
758
+ try {
759
+ switch (ext) {
760
+ case '.ts': {
761
+ const result = (0, child_process_1.execSync)(`npx tsc --noEmit --skipLibCheck "${absolutePath}"`, {
762
+ cwd: dir,
763
+ encoding: 'utf8',
764
+ timeout: 30000
765
+ });
766
+ return result || '✅ No TypeScript errors found.';
767
+ }
768
+ case '.js': {
769
+ (0, child_process_1.execSync)(`node --check "${absolutePath}"`, { encoding: 'utf8', timeout: 10000 });
770
+ return '✅ No JavaScript errors found.';
771
+ }
772
+ case '.py': {
773
+ (0, child_process_1.execSync)(`python -m py_compile "${absolutePath}"`, { encoding: 'utf8', timeout: 10000 });
774
+ return '✅ No Python syntax errors found.';
775
+ }
776
+ case '.json': {
777
+ const content = await fs.readFile(absolutePath, 'utf8');
778
+ JSON.parse(content);
779
+ return '✅ No JSON syntax errors found.';
780
+ }
781
+ case '.css': {
782
+ try {
783
+ (0, child_process_1.execSync)(`npx stylelint "${absolutePath}"`, { encoding: 'utf8', timeout: 10000 });
784
+ return '✅ No CSS errors found.';
785
+ }
786
+ catch {
787
+ return '⚠️ Stylelint not installed. Install with: npm install -D stylelint';
788
+ }
789
+ }
790
+ default:
791
+ return `No diagnostics available for ${ext} files. Supported: .ts, .js, .py, .json, .css`;
792
+ }
793
+ }
794
+ catch (e) {
795
+ const errorOutput = e.stdout || e.stderr || e.message;
796
+ if (errorOutput.includes('error') || errorOutput.includes('Error')) {
797
+ return `❌ Diagnostics failed:\n${errorOutput}`;
798
+ }
799
+ return `✅ No errors found (or no diagnostics available for this file type).`;
800
+ }
801
+ }
802
+ /**
803
+ * Runs a full code review on the current git branch changes.
804
+ */
805
+ static async executeCodeReview(baseBranch = 'main') {
806
+ const cwd = process.cwd();
807
+ try {
808
+ const status = (0, child_process_1.execSync)('git status --porcelain', { cwd, encoding: 'utf8' });
809
+ if (!status.trim()) {
810
+ return 'No changes to review.';
811
+ }
812
+ const diff = (0, child_process_1.execSync)(`git diff ${baseBranch}...HEAD --stat`, { cwd, encoding: 'utf8' });
813
+ const changedFiles = (0, child_process_1.execSync)(`git diff ${baseBranch}...HEAD --name-only`, { cwd, encoding: 'utf8' }).trim().split('\n');
814
+ let report = `## Code Review Report\n`;
815
+ report += `Base: ${baseBranch}\n`;
816
+ report += `Changed: ${changedFiles.length} files\n\n`;
817
+ report += `### Files Changed:\n`;
818
+ changedFiles.forEach(f => report += `- ${f}\n`);
819
+ report += `\n### Diff Stats:\n${diff}`;
820
+ return report;
821
+ }
822
+ catch (e) {
823
+ return `Error running code review: ${e.message}`;
824
+ }
825
+ }
255
826
  }
256
827
  exports.NativeTools = NativeTools;
257
828
  //# sourceMappingURL=NativeTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeTools.js","sourceRoot":"","sources":["../../src/tools/NativeTools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAC7B,6CAA+B;AAC/B,2CAA6B;AAC7B,uDAA0C;AAC1C,mDAAqC;AACrC,iDAAyC;AAEzC;;;GAGG;AACH,MAAa,WAAW;IAEtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAgB;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxE,OAAO,SAAS,YAAY,KAAK,KAAK,CAAC,MAAM,YAAY,QAAQ,EAAE,CAAC;QACtE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAkB,GAAG;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,MAAM,OAAO,GAAa,CAAC,cAAc,YAAY,IAAI,CAAC,CAAC;YAE3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACrC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,MAAM,MAAM,CAAC,CAAC;oBACpD,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,4BAA4B,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,GAAY;QACpD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE;gBAC/B,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;gBACzB,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM;gBAClC,QAAQ,EAAE,MAAwB;aACnC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC;QACrD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,8DAA8D;YAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC1C,OAAO,cAAc,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAW;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,wDAAa,MAAM,GAAC,CAAC,CAAC,OAAO,CAAC;YAC5C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,mCAAmC,GAAG,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,2BAA2B,CAAC,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,OAAe;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,sBAAsB,OAAO,CAAC,MAAM,aAAa,YAAY,EAAE,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;QACnE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAE7E,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAEnG,KAAK,UAAU,IAAI,CAAC,UAAkB;YACpC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,gCAAgC;oBAChC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,aAAuB;QAClE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAE1C,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,2CAA2C;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAc;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAExD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC5F,kBAAkB;oBAClB,OAAO,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACvC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,yCAAyC;oBACzC,MAAM,IAAI,GAAG,IAAI;yBACd,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;yBAC9C,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;yBAChD,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;yBACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;yBACpB,IAAI,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB;gBACxD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrB,MAAM,CAAC,mBAAmB,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAa;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAM,EAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,mBAAmB,CAAC;YAEjF,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC3C,UAAU,GAAG,CAAC,KAAK,WAAW,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,WAAW,EAAE,CACtE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,UAAU,CAAC,CAAC;YAChE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;gBACxC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA1ND,kCA0NC"}
1
+ {"version":3,"file":"NativeTools.js","sourceRoot":"","sources":["../../src/tools/NativeTools.ts"],"names":[],"mappings":"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"}