wormclaude 1.0.105 → 1.0.107

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
  }, []);
@@ -466,7 +474,6 @@ function App() {
466
474
  const [ctxTokens, setCtxTokens] = useState(0);
467
475
  const [started, setStarted] = useState(false);
468
476
  const [trustSel, setTrustSel] = useState(0); // 0=Evet, 1=Hayir
469
- const [wsInput, setWsInput] = useState(''); // açılışta yazılan çalışma klasörü (boş=mevcut cwd)
470
477
  const [lang, setLangState] = useState(() => loadLang()); // null → dil sor
471
478
  const [langSel, setLangSel] = useState(0); // 0=tr 1=en
472
479
  const chooseLang = (l) => { setLang(l); saveLang(l); setLangState(l); };
@@ -498,37 +505,22 @@ function App() {
498
505
  else if (key.escape)
499
506
  exit();
500
507
  });
501
- // Klasör güven sorusu + çalışma klasörü yazma (Enter=onayla, farklı yol yazılabilir)
508
+ // Klasör güven sorusu (Claude Code tarzı: bu klasöre güven? Evet/Hayır)
502
509
  useInput((inp, key) => {
503
510
  if (lang === null || started)
504
511
  return;
505
- if (key.upArrow)
512
+ if (key.upArrow || inp === '1')
506
513
  setTrustSel(0);
507
- else if (key.downArrow)
514
+ else if (key.downArrow || inp === '2')
508
515
  setTrustSel(1);
509
- else if (key.escape)
510
- exit();
511
516
  else if (key.return) {
512
- if (trustSel === 1) {
517
+ if (trustSel === 0)
518
+ setStarted(true);
519
+ else
513
520
  exit();
514
- return;
515
- }
516
- const tgt = wsInput.trim().replace(/^["']|["']$/g, '');
517
- if (tgt) {
518
- try {
519
- const abs = path.isAbsolute(tgt) ? tgt : path.resolve(process.cwd(), tgt);
520
- fs.mkdirSync(abs, { recursive: true });
521
- process.chdir(abs);
522
- setBashCwd(abs);
523
- }
524
- catch { /* geçersiz yol → mevcut cwd ile devam */ }
525
- }
526
- setStarted(true);
527
521
  }
528
- else if (key.backspace || key.delete)
529
- setWsInput((s) => s.slice(0, -1));
530
- else if (inp && inp.length === 1 && inp >= ' ' && !key.ctrl && !key.meta)
531
- setWsInput((s) => s + inp);
522
+ else if (key.escape)
523
+ exit();
532
524
  });
533
525
  // Soru dialogu (AskUserQuestion / plan onayı)
534
526
  useInput((inp, key) => {
@@ -758,10 +750,9 @@ function App() {
758
750
  setStreaming('');
759
751
  // Sızan özel-token / tool-call markup'ını bir kez temizle (hem geçmiş hem gösterim için).
760
752
  assistantText = cleanModelText(assistantText);
761
- // Model araç çağrısını metne gömdüyse (inline kurtarma) o JSON bloğunu gösterim+geçmişten çıkar.
762
- if (toolCalls.some((t) => t.id?.startsWith('inline_'))) {
763
- assistantText = stripInlineToolCalls(assistantText);
764
- }
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);
765
756
  // Reactive compact: bağlam taştıysa bir kez özetle ve turu tekrar dene
766
757
  if (gotCtxError && !reactiveRetried) {
767
758
  reactiveRetried = true;
@@ -1083,8 +1074,7 @@ function App() {
1083
1074
  React.createElement(Box, { flexDirection: "column", marginTop: 1, paddingX: 1 },
1084
1075
  React.createElement(Text, { color: theme.redBright, bold: true }, t('trust.accessing')),
1085
1076
  React.createElement(Text, null, " "),
1086
- React.createElement(Text, { color: theme.grey }, getLang() === 'en' ? 'Working folder (Enter = use it, or type another path):' : 'Çalışma klasörü (Enter = bu klasör, ya da farklı yol yaz):'),
1087
- React.createElement(Text, { color: theme.white }, '❯ ' + (wsInput || process.cwd())),
1077
+ React.createElement(Text, { color: theme.white }, process.cwd()),
1088
1078
  React.createElement(Text, null, " "),
1089
1079
  t('trust.check').split('\n').map((line, i) => React.createElement(Text, { key: i, color: theme.grey }, line)),
1090
1080
  React.createElement(Text, null, " "),
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.105';
19
+ export const VERSION = '1.0.107';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wormclaude",
3
- "version": "1.0.105",
3
+ "version": "1.0.107",
4
4
  "description": "WormClaude CLI - uncensored security+code assistant (ink TUI, Claude-style)",
5
5
  "type": "module",
6
6
  "bin": {