wormclaude 1.0.106 → 1.0.108

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
@@ -162,7 +162,15 @@ function useDimensions() {
162
162
  rows: process.stdout.rows || 24,
163
163
  });
164
164
  useEffect(() => {
165
- const onResize = () => setD({ cols: process.stdout.columns || 80, rows: process.stdout.rows || 24 });
165
+ const onResize = () => {
166
+ // Alt-screen resize'da eski boyutun artıklarını bırakıp yazıyı "kaybediyor".
167
+ // Ekranı temizleyip imleci başa al → Ink yeni boyutta tam repaint eder.
168
+ try {
169
+ process.stdout.write('\x1b[2J\x1b[H');
170
+ }
171
+ catch { /* yok say */ }
172
+ setD({ cols: process.stdout.columns || 80, rows: process.stdout.rows || 24 });
173
+ };
166
174
  process.stdout.on('resize', onResize);
167
175
  return () => { process.stdout.off('resize', onResize); };
168
176
  }, []);
@@ -742,10 +750,9 @@ function App() {
742
750
  setStreaming('');
743
751
  // Sızan özel-token / tool-call markup'ını bir kez temizle (hem geçmiş hem gösterim için).
744
752
  assistantText = cleanModelText(assistantText);
745
- // Model araç çağrısını metne gömdüyse (inline kurtarma) o JSON bloğunu gösterim+geçmişten çıkar.
746
- if (toolCalls.some((t) => t.id?.startsWith('inline_'))) {
747
- assistantText = stripInlineToolCalls(assistantText);
748
- }
753
+ // Model araç çağrısını metne gömdüyse (gömülü JSON / AskUserQuestion prose) gösterim+
754
+ // geçmişten temizle. HER ZAMAN çalıştır: recovery kaçsa bile ham JSON ekrana sızmasın.
755
+ assistantText = stripInlineToolCalls(assistantText);
749
756
  // Reactive compact: bağlam taştıysa bir kez özetle ve turu tekrar dene
750
757
  if (gotCtxError && !reactiveRetried) {
751
758
  reactiveRetried = true;
@@ -822,10 +829,23 @@ function App() {
822
829
  setAsk({ question: q.question, options: q.options.length ? q.options : [{ label: 'OK' }], resolve });
823
830
  }),
824
831
  });
832
+ // Tool çıktısını context'e eklerken KIS: komut çıktıları (curl/scan vb.) çok gürültülü
833
+ // (SSL handshake, tüm header'lar) ve 32k pencereyi hızla doldurur → baş+son tut, ortayı at.
834
+ // Az token = uzun tarama. Read/dosya araçları model içeriği görsün diye geniş kalır.
835
+ const _capOut = (name, out) => {
836
+ const s = out || '';
837
+ const isCmd = name === 'Bash' || name === 'PowerShell';
838
+ const CAP = isCmd ? 2200 : 8000;
839
+ if (s.length <= CAP)
840
+ return s;
841
+ if (isCmd)
842
+ return s.slice(0, 1400) + `\n… [${s.length - 2000} karakter kısaltıldı] …\n` + s.slice(-600);
843
+ return s.slice(0, CAP) + `\n… [${s.length - CAP} karakter kısaltıldı]`;
844
+ };
825
845
  // Sonuçları orijinal sırada geçmişe ekle (OpenAI tool sırası şart)
826
846
  for (let i = 0; i < toolCalls.length; i++) {
827
847
  historyRef.current = [...historyRef.current, {
828
- role: 'tool', tool_call_id: toolCalls[i].id, content: results[i].output.slice(0, 8000),
848
+ role: 'tool', tool_call_id: toolCalls[i].id, content: _capOut(toolCalls[i].name, results[i].output),
829
849
  }];
830
850
  }
831
851
  // Araç-grubu özeti (2+ araçta tek satır etiket)
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.106';
19
+ export const VERSION = '1.0.108';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wormclaude",
3
- "version": "1.0.106",
3
+ "version": "1.0.108",
4
4
  "description": "WormClaude CLI - uncensored security+code assistant (ink TUI, Claude-style)",
5
5
  "type": "module",
6
6
  "bin": {