wormclaude 1.0.36 → 1.0.38

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/auth.js CHANGED
@@ -98,8 +98,11 @@ export async function checkForUpdate(current) {
98
98
  export function runUpdate() {
99
99
  return new Promise((resolve) => {
100
100
  process.stdout.write('WormClaude güncelleniyor...\n');
101
- const npm = process.platform === 'win32' ? 'npm.cmd' : 'npm';
102
- const child = spawn(npm, ['install', '-g', 'wormclaude@latest'], { stdio: 'inherit' });
101
+ // Windows + Node ≥20: `.cmd`/`.bat` spawn'ı shell:true gerektirir (yoksa EINVAL).
102
+ const win = process.platform === 'win32';
103
+ const cmd = win ? 'npm install -g wormclaude@latest' : 'npm';
104
+ const args = win ? [] : ['install', '-g', 'wormclaude@latest'];
105
+ const child = spawn(cmd, args, { stdio: 'inherit', shell: true });
103
106
  child.on('error', (e) => { process.stderr.write('Güncellenemedi: ' + (e?.message || e) + '\n'); resolve(); });
104
107
  child.on('exit', () => resolve());
105
108
  });
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.36';
19
+ export const VERSION = '1.0.38';
package/dist/tui.js CHANGED
@@ -43,7 +43,7 @@ export async function runTui() {
43
43
  const displayItems = [{ kind: 'banner' }];
44
44
  let inputBuf = '', busy = false, streamChars = 0, spin = 0;
45
45
  const SPIN = ['·', '✢', '✳', '✶', '✻', '✽', '✶', '✳', '✢'];
46
- const FOOTER_H = 2; // giriş satırı + ipucu satırı
46
+ const FOOTER_H = 4; // kutu (üst çizgi + giriş + alt çizgi) + ipucu satırı
47
47
  // ── Claude tarzı başlık (model/plan/mail/cwd) — responsive ──
48
48
  function headerLines(W) {
49
49
  const a = paint(' WormClaude ', theme.greyDim) + paint('v' + VERSION, theme.red, true)
@@ -65,12 +65,14 @@ export async function runTui() {
65
65
  const avail = W - 3;
66
66
  if (vis(shown) > avail)
67
67
  shown = '…' + shown.slice(-(avail - 1));
68
- const inputLine = paint('❯ ', theme.redBright, true) + shown + paint('▌', theme.greyDim);
68
+ // İki uzun KIRMIZI çizgi arasında giriş (köşesiz resize'da bozulmaz). Altında ipucu.
69
+ const line = paint('─'.repeat(W), theme.red);
70
+ const inputLine = paint('❯ ', theme.redBright, true) + paint(shown, theme.white) + paint('▌', theme.greyDim);
69
71
  const hint = busy
70
72
  ? paint(`${SPIN[spin % SPIN.length]} yanıt geliyor… ${streamChars} karakter`, theme.grey)
71
73
  : paint(' /kopyala panoya · /help komutlar · Ctrl+C çıkış', theme.greyDim);
72
74
  let out = '\x1b7'; // imleci kaydet
73
- [fit(inputLine, W), fit(hint, W)].forEach((l, i) => { out += `\x1b[${start + i};1H\x1b[2K` + l; });
75
+ [fit(line, W), fit(inputLine, W), fit(line, W), fit(hint, W)].forEach((l, i) => { out += `\x1b[${start + i};1H\x1b[2K` + l; });
74
76
  out += '\x1b8'; // imleci geri yükle (içerik alanı)
75
77
  process.stdout.write(out);
76
78
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wormclaude",
3
- "version": "1.0.36",
3
+ "version": "1.0.38",
4
4
  "description": "WormClaude CLI - uncensored security+code assistant (ink TUI, Claude-style)",
5
5
  "type": "module",
6
6
  "bin": {