@hanzo/dev 2.1.0 → 2.1.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.
- package/dist/cli/dev.js +13 -6
- package/package.json +1 -1
- package/src/lib/swarm-runner.ts +16 -6
package/dist/cli/dev.js
CHANGED
|
@@ -23713,6 +23713,7 @@ var SwarmRunner = class extends import_events5.EventEmitter {
|
|
|
23713
23713
|
async run() {
|
|
23714
23714
|
const spinner = ora(`Initializing swarm with ${this.options.count} agents...`).start();
|
|
23715
23715
|
try {
|
|
23716
|
+
spinner.text = `Searching for files in ${this.options.cwd || process.cwd()}...`;
|
|
23716
23717
|
this.fileQueue = await this.findFiles();
|
|
23717
23718
|
spinner.succeed(`Found ${this.fileQueue.length} files to process`);
|
|
23718
23719
|
if (this.fileQueue.length === 0) {
|
|
@@ -23754,14 +23755,23 @@ var SwarmRunner = class extends import_events5.EventEmitter {
|
|
|
23754
23755
|
"**/*.map"
|
|
23755
23756
|
]
|
|
23756
23757
|
};
|
|
23757
|
-
|
|
23758
|
+
const timeout = setTimeout(() => {
|
|
23759
|
+
reject(new Error("File search timed out"));
|
|
23760
|
+
}, 3e4);
|
|
23761
|
+
const pattern = this.options.pattern || "**/*";
|
|
23762
|
+
console.log(source_default.gray(`Searching with pattern: ${pattern} in ${options.cwd || process.cwd()}`));
|
|
23763
|
+
glob(pattern, options, (err, files) => {
|
|
23764
|
+
clearTimeout(timeout);
|
|
23758
23765
|
if (err) {
|
|
23766
|
+
console.error(source_default.red("Glob error:"), err);
|
|
23759
23767
|
reject(err);
|
|
23760
23768
|
} else {
|
|
23769
|
+
console.log(source_default.gray(`Found ${files.length} total files`));
|
|
23761
23770
|
const editableFiles = files.filter((file) => {
|
|
23762
23771
|
const ext2 = path8.extname(file);
|
|
23763
23772
|
return [".js", ".ts", ".jsx", ".tsx", ".py", ".java", ".cpp", ".c", ".h", ".go", ".rs", ".rb", ".php", ".swift", ".kt", ".scala", ".r", ".m", ".mm", ".md", ".txt", ".json", ".xml", ".yaml", ".yml", ".toml", ".ini", ".conf", ".sh", ".bash", ".zsh", ".fish", ".ps1", ".bat", ".cmd"].includes(ext2);
|
|
23764
23773
|
});
|
|
23774
|
+
console.log(source_default.gray(`Filtered to ${editableFiles.length} editable files`));
|
|
23765
23775
|
resolve2(editableFiles);
|
|
23766
23776
|
}
|
|
23767
23777
|
});
|
|
@@ -23809,8 +23819,7 @@ var SwarmRunner = class extends import_events5.EventEmitter {
|
|
|
23809
23819
|
GROK_API_KEY: process.env.GROK_API_KEY,
|
|
23810
23820
|
// Auto-accept edits for non-interactive mode
|
|
23811
23821
|
CLAUDE_CODE_PERMISSION_MODE: "acceptEdits"
|
|
23812
|
-
}
|
|
23813
|
-
shell: true
|
|
23822
|
+
}
|
|
23814
23823
|
});
|
|
23815
23824
|
agent.process = child;
|
|
23816
23825
|
let output = "";
|
|
@@ -23939,8 +23948,7 @@ File: ${file}`;
|
|
|
23939
23948
|
const testResult = await new Promise((resolve2) => {
|
|
23940
23949
|
var _a2;
|
|
23941
23950
|
const child = (0, import_child_process4.spawn)("claude", ["-p", "test", "--max-turns", "1"], {
|
|
23942
|
-
env: process.env
|
|
23943
|
-
shell: true
|
|
23951
|
+
env: process.env
|
|
23944
23952
|
});
|
|
23945
23953
|
let hasError = false;
|
|
23946
23954
|
let resolved = false;
|
|
@@ -23977,7 +23985,6 @@ File: ${file}`;
|
|
|
23977
23985
|
...process.env,
|
|
23978
23986
|
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY
|
|
23979
23987
|
},
|
|
23980
|
-
shell: true,
|
|
23981
23988
|
stdio: "inherit"
|
|
23982
23989
|
});
|
|
23983
23990
|
child.on("close", (code) => {
|
package/package.json
CHANGED
package/src/lib/swarm-runner.ts
CHANGED
|
@@ -45,6 +45,7 @@ export class SwarmRunner extends EventEmitter {
|
|
|
45
45
|
|
|
46
46
|
try {
|
|
47
47
|
// Find files to process
|
|
48
|
+
spinner.text = `Searching for files in ${this.options.cwd || process.cwd()}...`;
|
|
48
49
|
this.fileQueue = await this.findFiles();
|
|
49
50
|
spinner.succeed(`Found ${this.fileQueue.length} files to process`);
|
|
50
51
|
|
|
@@ -101,15 +102,27 @@ export class SwarmRunner extends EventEmitter {
|
|
|
101
102
|
]
|
|
102
103
|
};
|
|
103
104
|
|
|
104
|
-
|
|
105
|
+
// Add timeout to prevent hanging
|
|
106
|
+
const timeout = setTimeout(() => {
|
|
107
|
+
reject(new Error('File search timed out'));
|
|
108
|
+
}, 30000);
|
|
109
|
+
|
|
110
|
+
const pattern = this.options.pattern || '**/*';
|
|
111
|
+
console.log(chalk.gray(`Searching with pattern: ${pattern} in ${options.cwd || process.cwd()}`));
|
|
112
|
+
|
|
113
|
+
glob(pattern, options, (err, files) => {
|
|
114
|
+
clearTimeout(timeout);
|
|
105
115
|
if (err) {
|
|
116
|
+
console.error(chalk.red('Glob error:'), err);
|
|
106
117
|
reject(err);
|
|
107
118
|
} else {
|
|
119
|
+
console.log(chalk.gray(`Found ${files.length} total files`));
|
|
108
120
|
// Filter to only editable files
|
|
109
121
|
const editableFiles = files.filter(file => {
|
|
110
122
|
const ext = path.extname(file);
|
|
111
123
|
return ['.js', '.ts', '.jsx', '.tsx', '.py', '.java', '.cpp', '.c', '.h', '.go', '.rs', '.rb', '.php', '.swift', '.kt', '.scala', '.r', '.m', '.mm', '.md', '.txt', '.json', '.xml', '.yaml', '.yml', '.toml', '.ini', '.conf', '.sh', '.bash', '.zsh', '.fish', '.ps1', '.bat', '.cmd'].includes(ext);
|
|
112
124
|
});
|
|
125
|
+
console.log(chalk.gray(`Filtered to ${editableFiles.length} editable files`));
|
|
113
126
|
resolve(editableFiles);
|
|
114
127
|
}
|
|
115
128
|
});
|
|
@@ -168,8 +181,7 @@ export class SwarmRunner extends EventEmitter {
|
|
|
168
181
|
GROK_API_KEY: process.env.GROK_API_KEY,
|
|
169
182
|
// Auto-accept edits for non-interactive mode
|
|
170
183
|
CLAUDE_CODE_PERMISSION_MODE: 'acceptEdits'
|
|
171
|
-
}
|
|
172
|
-
shell: true
|
|
184
|
+
}
|
|
173
185
|
});
|
|
174
186
|
|
|
175
187
|
agent.process = child;
|
|
@@ -308,8 +320,7 @@ export class SwarmRunner extends EventEmitter {
|
|
|
308
320
|
try {
|
|
309
321
|
const testResult = await new Promise<boolean>((resolve) => {
|
|
310
322
|
const child = spawn('claude', ['-p', 'test', '--max-turns', '1'], {
|
|
311
|
-
env: process.env
|
|
312
|
-
shell: true
|
|
323
|
+
env: process.env
|
|
313
324
|
});
|
|
314
325
|
|
|
315
326
|
let hasError = false;
|
|
@@ -356,7 +367,6 @@ export class SwarmRunner extends EventEmitter {
|
|
|
356
367
|
...process.env,
|
|
357
368
|
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY
|
|
358
369
|
},
|
|
359
|
-
shell: true,
|
|
360
370
|
stdio: 'inherit'
|
|
361
371
|
});
|
|
362
372
|
|