wormclaude 1.0.113 → 1.0.114

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
@@ -439,7 +439,11 @@ const VERBS = [
439
439
  'Decrypting', 'Injecting', 'Probing', 'Assembling', 'Architecting',
440
440
  'Generating', 'Tinkering', 'Sharpening', 'Churning', 'Pwning',
441
441
  ];
442
- function WormSpinner({ label, tokens }) {
442
+ function fmtDur(sec) {
443
+ const s = Math.max(0, Math.floor(sec));
444
+ return s >= 60 ? `${Math.floor(s / 60)}m ${s % 60}s` : `${s}s`;
445
+ }
446
+ function WormSpinner({ label, tokens, seconds }) {
443
447
  const [f, setF] = useState(0);
444
448
  useEffect(() => {
445
449
  const t = setInterval(() => setF((x) => x + 1), 120);
@@ -452,6 +456,9 @@ function WormSpinner({ label, tokens }) {
452
456
  React.createElement(Text, { color: theme.grey },
453
457
  label,
454
458
  "\u2026"),
459
+ seconds ? React.createElement(Text, { color: theme.greyDim },
460
+ " \u00B7 ",
461
+ fmtDur(seconds)) : null,
455
462
  tokens ? React.createElement(Text, { color: theme.greyDim },
456
463
  " \u00B7 ",
457
464
  tokens,
@@ -500,6 +507,7 @@ function App() {
500
507
  const [verb, setVerb] = useState('Worming');
501
508
  const [tokens, setTokens] = useState(0);
502
509
  const [thinking, setThinking] = useState(true);
510
+ const [elapsedSec, setElapsedSec] = useState(0); // çalışırken geçen süre (spinner'da gösterilir)
503
511
  const [ctxTokens, setCtxTokens] = useState(0);
504
512
  const [started, setStarted] = useState(false);
505
513
  const [trustSel, setTrustSel] = useState(0); // 0=Evet, 1=Hayir
@@ -673,6 +681,17 @@ function App() {
673
681
  }
674
682
  // eslint-disable-next-line react-hooks/exhaustive-deps
675
683
  }, [started]);
684
+ // Çalışırken geçen süreyi say → spinner'da "Xm Ys" göster (Claude tarzı süre+token).
685
+ useEffect(() => {
686
+ if (!busy) {
687
+ setElapsedSec(0);
688
+ return;
689
+ }
690
+ const start = Date.now();
691
+ setElapsedSec(0);
692
+ const id = setInterval(() => setElapsedSec(Math.floor((Date.now() - start) / 1000)), 1000);
693
+ return () => clearInterval(id);
694
+ }, [busy]);
676
695
  const push = (it) => setItems((prev) => [...prev, it]);
677
696
  // Arka plan görevlerini izle → footer pill
678
697
  useEffect(() => {
@@ -1238,8 +1257,8 @@ function App() {
1238
1257
  ask.options.length,
1239
1258
  " se\u00E7 \u00B7 Enter onayla"))) : null,
1240
1259
  busy && !perm && !ask ? (thinking
1241
- ? React.createElement(WormSpinner, { label: verb, tokens: tokens })
1242
- : React.createElement(WormSpinner, { label: phase })) : null,
1260
+ ? React.createElement(WormSpinner, { label: verb, tokens: tokens, seconds: elapsedSec })
1261
+ : React.createElement(WormSpinner, { label: phase, seconds: elapsedSec })) : null,
1243
1262
  taskPill ? (React.createElement(Box, { paddingX: 1 },
1244
1263
  React.createElement(Text, { color: theme.greyDim }, taskPill))) : null,
1245
1264
  (React.createElement(Box, { flexDirection: "column" },
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.113';
19
+ export const VERSION = '1.0.114';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wormclaude",
3
- "version": "1.0.113",
3
+ "version": "1.0.114",
4
4
  "description": "WormClaude CLI - uncensored security+code assistant (ink TUI, Claude-style)",
5
5
  "type": "module",
6
6
  "bin": {