wormclaude 1.0.177 → 1.0.179

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
@@ -786,6 +786,7 @@ function App() {
786
786
  let sameToolCount = 0;
787
787
  let consecFailTurns = 0; // üst üste TÜM araçların başarısız olduğu tur sayısı (devre-kesici)
788
788
  let totalFails = 0; // görev boyunca toplam başarısız komut (karışık başarı/başarısızlık döngüsü)
789
+ let alreadyScannedHits = 0; // [ALREADY-SCANNED] kaç kez döndü → tarama-döngüsü sert kesici
789
790
  let taskIn = 0, taskOut = 0, taskCache = 0; // bu görevin GERÇEK token toplamı (tüm turlar; API usage'dan)
790
791
  while (iter < MAX_TURNS) {
791
792
  if (ac.signal.aborted) {
@@ -956,6 +957,17 @@ function App() {
956
957
  if (sum)
957
958
  push({ kind: 'note', text: `⎿ ${sum}` });
958
959
  }
960
+ // SERT TARAMA DÖNGÜ-KESİCİ: [ALREADY-SCANNED] = model bitmiş taramayı tekrar deniyor. Model
961
+ // "dur" demesine RAĞMEN dönmeye devam ediyor (agentic tavanı) → 2. kez görülünce DÖNGÜYÜ
962
+ // ZORLA bitir (modele güvenme; yoksa context taşana dek döner, "AskUserQuestion↔SecurityScan" loop).
963
+ alreadyScannedHits += results.filter((r) => /\[ALREADY-SCANNED\]/i.test(r.output || '')).length;
964
+ if (alreadyScannedHits >= 2) {
965
+ push({ kind: 'note', text: getLang() === 'en'
966
+ ? '✓ Scan complete — stopped (loop prevented). Findings are in the report above.'
967
+ : '✓ Tarama tamamlandı — durduruldu (döngü önlendi). Bulgular yukarıdaki raporda.' });
968
+ done = true;
969
+ break;
970
+ }
959
971
  // Devre-kesici: bu turda TÜM araçlar başarısız olduysa say. Üst üste 2 tur olursa
960
972
  // modele "DUR ve özetle" dedir — yoksa model olmayan araç/Unix sözdizimini (grep, hydra)
961
973
  // deneyip döngüye girip token yakıyor ve hiç bitirmiyor.
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.177';
19
+ export const VERSION = '1.0.179';
package/dist/tools.js CHANGED
@@ -743,7 +743,7 @@ async function execOne(call, hooks) {
743
743
  const _fk = 'full|' + target.toLowerCase();
744
744
  const _fc = _scanCache.get(_fk);
745
745
  if (_fc && Date.now() - _fc.t < 120000) {
746
- return { ok: false, args, output: `[ALREADY-SCANNED] tam tarama "${target}" zaten koşuldubulgular yukarıda. TEKRAR SecurityScan çağırma; sonuçları METİN olarak özetle.` };
746
+ return { ok: false, args, output: `[ALREADY-SCANNED] full scan "${target}" already ranfindings are above. Do NOT call SecurityScan again; summarize the results in text.` };
747
747
  }
748
748
  try {
749
749
  const { runPentest } = await import('./pentest.js');
@@ -773,7 +773,7 @@ async function execOne(call, hooks) {
773
773
  rpt += `\n\nToplam ${all.length} bulgu.`;
774
774
  if (all.length)
775
775
  rpt += '\n' + all.slice(0, 60).map((x) => ' ' + JSON.stringify(x)).join('\n');
776
- rpt += `\n[full-done] recon+xss+sqli koşuldu. SecurityScan'i TEKRAR çağırma bulguları kullanıcıya METİN olarak raporla (özet + öncelikli düzeltmeler).`;
776
+ rpt += `\n[full-done] recon+xss+sqli all ran. Do NOT call SecurityScan againreport the findings to the user in text (summary + prioritized fixes), in their language.`;
777
777
  const _now = Date.now();
778
778
  _scanCache.set(_fk, { out: rpt, t: _now });
779
779
  // Alt tarama tiplerini de cache'le → full sonrası model tek tek recon/xss/sqli çağıramaz (gereksiz tekrar).
@@ -810,7 +810,7 @@ async function execOne(call, hooks) {
810
810
  txt += `${rep.found_count} bulgu:\n` + f.slice(0, 50).map((x) => ' ' + JSON.stringify(x)).join('\n');
811
811
  // Tek-tip tarama bitti. Kapsamlı isteniyorsa model TEK çağrıyla SecurityScan(tool:"full") koşmalı
812
812
  // (kod deterministik recon+xss+sqli yapar) — kendi recon/xss/sqli zincirlemesin (döngüye girer).
813
- txt += `\n\n[done] Bu tek tarama (${tool}) bittisonucu kullanıcıya METİN olarak özetle. SecurityScan'i bu hedefte TEKRAR çağırma.`;
813
+ txt += `\n\n[done] This single ${tool} scan is finished summarize the result to the user in text. Do NOT call SecurityScan again on this target.`;
814
814
  _scanCache.set(_ck, { out: txt, t: Date.now() }); // döngü-kırıcı için sakla
815
815
  return { ok: true, output: txt, args };
816
816
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wormclaude",
3
- "version": "1.0.177",
3
+ "version": "1.0.179",
4
4
  "description": "WormClaude CLI - uncensored security+code assistant (ink TUI, Claude-style)",
5
5
  "type": "module",
6
6
  "bin": {