wormclaude 1.0.159 → 1.0.160

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.js CHANGED
@@ -948,9 +948,13 @@ function App() {
948
948
  // başarısızlıklar birikir) toplam eşiği aşınca dur+özetle.
949
949
  const _failed = results.filter((r) => !r.ok).length;
950
950
  totalFails += _failed;
951
+ // Kurulum turu: model eksik aracı kuruyor (winget/choco/pip/apt/brew/npm -g…). Bu normal
952
+ // KURTARMA, "başarısızlık döngüsü" değil → ardışık-fail sayacını SIFIRLA ki uzun install
953
+ // (ya da install öncesi 'komut yok' hatası) devre-kesiciyi erken tetikleyip taramayı kesmesin.
954
+ const _installTurn = results.some((r) => /\b(?:winget|choco|scoop|apt(?:-get)?|dnf|yum|zypper|pacman|brew|pip3?|pipx|gem|cargo|go)\b[^|&;]*\b(?:install|-S|in)\b/i.test(String(r?.args?.command || '')));
951
955
  const _allFailed = results.length > 0 && _failed === results.length;
952
- consecFailTurns = _allFailed ? consecFailTurns + 1 : 0;
953
- if (consecFailTurns >= 2 || totalFails >= 4) {
956
+ consecFailTurns = (_allFailed && !_installTurn) ? consecFailTurns + 1 : 0;
957
+ if (consecFailTurns >= 2 || totalFails >= 5) {
954
958
  historyRef.current = [...historyRef.current, {
955
959
  role: 'user',
956
960
  content: getLang() === 'en'
package/dist/theme.js CHANGED
@@ -16,4 +16,4 @@ export const theme = {
16
16
  synType: '#a78bfa', // tip/sınıf adları, sabitler
17
17
  synProp: '#e0e0e0', // özellik/anahtar adları
18
18
  };
19
- export const VERSION = '1.0.159';
19
+ export const VERSION = '1.0.160';
package/dist/tools.js CHANGED
@@ -32,6 +32,16 @@ const DEFAULT_BASH_TIMEOUT_MS = 120000;
32
32
  // Bunları run_in_background istenmese bile OTOMATİK arka plana alıyoruz → CLI asla donmaz.
33
33
  const _DEV_SERVER_RE = /\b(?:npm|pnpm|yarn)\s+(?:run\s+)?(?:dev|start|serve|preview)\b|\b(?:next|nuxt|vite|gatsby)\s+(?:dev|develop|start)\b|\bng\s+serve\b|\breact-scripts\s+start\b|\bnodemon\b|\bhttp-server\b|(?:^|\s)serve(?:\s|$)|\bpython3?\s+-m\s+http\.server\b|\bflask\s+run\b|\buvicorn\b|\bgunicorn\b|\bphp\s+-S\b|\brails\s+s(?:erver)?\b|\bwebpack(?:-dev-server)?\s+serve\b/i;
34
34
  const MAX_BASH_TIMEOUT_MS = 600000;
35
+ // Paket KURULUM komutları (winget/choco/pip/apt/brew/npm -g …) yavaştır (indirme+derleme):
36
+ // 2 dk default timeout'u aşıp ÖLDÜRÜLÜYORLARDI → "install yarım kaldı" + devre-kesici tetikleniyordu.
37
+ // Bunlara otomatik MAX timeout (10 dk) verilir; model ayrıca süre belirtirse o kullanılır.
38
+ const _LONG_INSTALL_RE = /\b(?:winget\s+install|choco\s+install|scoop\s+install|apt(?:-get)?\s+install|dnf\s+install|yum\s+install|zypper\s+(?:in|install)|pacman\s+-S|brew\s+install|pip3?\s+install|pipx\s+install|gem\s+install|cargo\s+install|go\s+install|npm\s+(?:i|install)\b[^|&;]*-g)\b/i;
39
+ function _cmdTimeout(cmd, explicit) {
40
+ let t = Number(explicit) || (_LONG_INSTALL_RE.test(cmd) ? MAX_BASH_TIMEOUT_MS : DEFAULT_BASH_TIMEOUT_MS);
41
+ if (t > MAX_BASH_TIMEOUT_MS)
42
+ t = MAX_BASH_TIMEOUT_MS;
43
+ return t;
44
+ }
35
45
  // Bash çalışma dizini — oturum boyunca kalıcı. execSync her çağrıda taze shell açtığı için
36
46
  // `cd` normalde kaybolur; burada cwd'yi takip edip her komuta geçiriyoruz.
37
47
  let bashCwd;
@@ -1033,9 +1043,7 @@ export async function executeTool(name, args) {
1033
1043
  : '';
1034
1044
  return { ok: true, output: `Background task started: ${task.id}.${_note} Read output later with TaskOutput("${task.id}").` };
1035
1045
  }
1036
- let timeout = Number(args.timeout) || DEFAULT_BASH_TIMEOUT_MS;
1037
- if (timeout > MAX_BASH_TIMEOUT_MS)
1038
- timeout = MAX_BASH_TIMEOUT_MS;
1046
+ const timeout = _cmdTimeout(_cmd, args.timeout);
1039
1047
  const out = await runBashCapturingCwd(String(args.command), timeout);
1040
1048
  return { ok: true, output: (out || '(no output)').slice(0, 20000) };
1041
1049
  }
@@ -1389,9 +1397,7 @@ export async function executeTool(name, args) {
1389
1397
  return { ok: true, output: txt || '(boş)' };
1390
1398
  }
1391
1399
  if (name === 'PowerShell') {
1392
- let timeout = Number(args.timeout) || DEFAULT_BASH_TIMEOUT_MS;
1393
- if (timeout > MAX_BASH_TIMEOUT_MS)
1394
- timeout = MAX_BASH_TIMEOUT_MS;
1400
+ const timeout = _cmdTimeout(String(args.command), args.timeout);
1395
1401
  const cmd = String(args.command).replace(/"/g, '\\"');
1396
1402
  // ASYNC — event-loop'u bloklamaz (eski execSync donmaya sebep oluyordu).
1397
1403
  const { out, code, killed } = await _spawnAsync(`powershell -NoProfile -NonInteractive -Command "${cmd}"`, timeout, { shell: true, windowsHide: true, cwd: getBashCwd() });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wormclaude",
3
- "version": "1.0.159",
3
+ "version": "1.0.160",
4
4
  "description": "WormClaude CLI - uncensored security+code assistant (ink TUI, Claude-style)",
5
5
  "type": "module",
6
6
  "bin": {