claude-scope 0.6.1 → 0.6.2

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.
Files changed (2) hide show
  1. package/dist/claude-scope.cjs +535 -36
  2. package/package.json +2 -2
@@ -285,59 +285,558 @@ function colorize(text, color) {
285
285
  return `${color}${text}${reset}`;
286
286
  }
287
287
 
288
- // src/ui/theme/gray-theme.ts
289
- var GRAY_THEME = {
290
- name: "gray",
291
- description: "Neutral gray theme for minimal color distraction",
292
- colors: {
293
- base: {
294
- text: gray,
295
- muted: gray,
296
- accent: gray,
297
- border: gray
298
- },
299
- semantic: {
300
- success: gray,
301
- warning: gray,
302
- error: gray,
303
- info: gray
304
- },
288
+ // src/ui/theme/helpers.ts
289
+ function rgb(r, g, b) {
290
+ return `\x1B[38;2;${r};${g};${b}m`;
291
+ }
292
+ function createBaseColors(params) {
293
+ return {
294
+ text: params.modelColor,
295
+ muted: params.durationColor,
296
+ accent: params.accentColor,
297
+ border: params.durationColor
298
+ };
299
+ }
300
+ function createSemanticColors(params) {
301
+ return {
302
+ success: params.contextLow,
303
+ warning: params.contextMedium,
304
+ error: params.contextHigh,
305
+ info: params.branchColor
306
+ };
307
+ }
308
+ function createThemeColors(params) {
309
+ const base = createBaseColors({
310
+ modelColor: params.model,
311
+ durationColor: params.duration,
312
+ accentColor: params.accent
313
+ });
314
+ const semantic = createSemanticColors({
315
+ contextLow: params.contextLow,
316
+ contextMedium: params.contextMedium,
317
+ contextHigh: params.contextHigh,
318
+ branchColor: params.branch
319
+ });
320
+ return {
321
+ base,
322
+ semantic,
305
323
  git: {
306
- branch: gray,
307
- changes: gray
324
+ branch: params.branch,
325
+ changes: params.changes
308
326
  },
309
327
  context: {
310
- low: gray,
311
- medium: gray,
312
- high: gray,
313
- bar: gray
328
+ low: params.contextLow,
329
+ medium: params.contextMedium,
330
+ high: params.contextHigh,
331
+ bar: params.contextLow
314
332
  },
315
333
  lines: {
316
- added: gray,
317
- removed: gray
334
+ added: params.linesAdded,
335
+ removed: params.linesRemoved
318
336
  },
319
337
  cost: {
320
- amount: gray,
321
- currency: gray
338
+ amount: params.cost,
339
+ currency: params.cost
322
340
  },
323
341
  duration: {
324
- value: gray,
325
- unit: gray
342
+ value: params.duration,
343
+ unit: params.duration
326
344
  },
327
345
  model: {
328
- name: gray,
329
- version: gray
346
+ name: params.model,
347
+ version: params.model
330
348
  },
331
349
  poker: {
332
- participating: lightGray,
333
- nonParticipating: gray,
334
- result: gray
350
+ participating: params.model,
351
+ nonParticipating: params.duration,
352
+ result: params.accent
335
353
  }
336
- }
354
+ };
355
+ }
356
+
357
+ // src/ui/theme/gray-theme.ts
358
+ var GRAY_THEME = {
359
+ name: "gray",
360
+ description: "Neutral gray theme for minimal color distraction",
361
+ colors: createThemeColors({
362
+ branch: gray,
363
+ changes: gray,
364
+ contextLow: gray,
365
+ contextMedium: gray,
366
+ contextHigh: gray,
367
+ linesAdded: gray,
368
+ linesRemoved: gray,
369
+ cost: gray,
370
+ model: gray,
371
+ duration: gray,
372
+ accent: gray
373
+ })
374
+ };
375
+
376
+ // src/ui/theme/themes/catppuccin-mocha-theme.ts
377
+ var CATPPUCCIN_MOCHA_THEME = {
378
+ name: "catppuccin-mocha",
379
+ description: "Soothing pastel theme",
380
+ colors: createThemeColors({
381
+ branch: rgb(137, 180, 250),
382
+ // Blue
383
+ changes: rgb(166, 227, 161),
384
+ // Green
385
+ contextLow: rgb(166, 227, 161),
386
+ // Green
387
+ contextMedium: rgb(238, 212, 159),
388
+ // Yellow
389
+ contextHigh: rgb(243, 139, 168),
390
+ // Red
391
+ linesAdded: rgb(166, 227, 161),
392
+ // Green
393
+ linesRemoved: rgb(243, 139, 168),
394
+ // Red
395
+ cost: rgb(245, 224, 220),
396
+ // Rosewater
397
+ model: rgb(203, 166, 247),
398
+ // Mauve
399
+ duration: rgb(147, 153, 178),
400
+ // Text gray
401
+ accent: rgb(243, 139, 168)
402
+ // Pink
403
+ })
404
+ };
405
+
406
+ // src/ui/theme/themes/cyberpunk-neon-theme.ts
407
+ var CYBERPUNK_NEON_THEME = {
408
+ name: "cyberpunk-neon",
409
+ description: "High-contrast neon cyberpunk aesthetic",
410
+ colors: createThemeColors({
411
+ branch: rgb(0, 191, 255),
412
+ // Cyan neon
413
+ changes: rgb(255, 0, 122),
414
+ // Magenta neon
415
+ contextLow: rgb(0, 255, 122),
416
+ // Green neon
417
+ contextMedium: rgb(255, 214, 0),
418
+ // Yellow neon
419
+ contextHigh: rgb(255, 0, 122),
420
+ // Magenta neon
421
+ linesAdded: rgb(0, 255, 122),
422
+ // Green neon
423
+ linesRemoved: rgb(255, 0, 122),
424
+ // Magenta neon
425
+ cost: rgb(255, 111, 97),
426
+ // Orange neon
427
+ model: rgb(140, 27, 255),
428
+ // Purple neon
429
+ duration: rgb(0, 191, 255),
430
+ // Cyan neon
431
+ accent: rgb(255, 0, 122)
432
+ // Magenta neon
433
+ })
434
+ };
435
+
436
+ // src/ui/theme/themes/dracula-theme.ts
437
+ var DRACULA_THEME = {
438
+ name: "dracula",
439
+ description: "Purple/pink accent theme",
440
+ colors: createThemeColors({
441
+ branch: rgb(189, 147, 249),
442
+ // Purple
443
+ changes: rgb(139, 233, 253),
444
+ // Cyan
445
+ contextLow: rgb(80, 250, 123),
446
+ // Green
447
+ contextMedium: rgb(241, 250, 140),
448
+ // Yellow
449
+ contextHigh: rgb(255, 85, 85),
450
+ // Red
451
+ linesAdded: rgb(80, 250, 123),
452
+ // Green
453
+ linesRemoved: rgb(255, 85, 85),
454
+ // Red
455
+ cost: rgb(255, 184, 108),
456
+ // Orange
457
+ model: rgb(98, 114, 164),
458
+ // Comment gray
459
+ duration: rgb(68, 71, 90),
460
+ // Selection gray
461
+ accent: rgb(189, 147, 249)
462
+ // Purple
463
+ })
464
+ };
465
+
466
+ // src/ui/theme/themes/dusty-sage-theme.ts
467
+ var DUSTY_SAGE_THEME = {
468
+ name: "dusty-sage",
469
+ description: "Earthy muted greens with peaceful forest fog aesthetic",
470
+ colors: createThemeColors({
471
+ branch: rgb(120, 140, 130),
472
+ // Dusty green
473
+ changes: rgb(135, 145, 140),
474
+ // Sage gray
475
+ contextLow: rgb(135, 145, 140),
476
+ // Subtle sage (low)
477
+ contextMedium: rgb(150, 160, 145),
478
+ // Medium sage
479
+ contextHigh: rgb(165, 175, 160),
480
+ // Light sage (high)
481
+ linesAdded: rgb(135, 145, 140),
482
+ linesRemoved: rgb(135, 145, 140),
483
+ cost: rgb(156, 163, 175),
484
+ model: rgb(148, 163, 184),
485
+ duration: rgb(120, 130, 140),
486
+ accent: rgb(120, 140, 130)
487
+ })
488
+ };
489
+
490
+ // src/ui/theme/themes/github-dark-dimmed-theme.ts
491
+ var GITHUB_DARK_DIMMED_THEME = {
492
+ name: "github-dark-dimmed",
493
+ description: "GitHub's official dark theme (dimmed)",
494
+ colors: createThemeColors({
495
+ branch: rgb(88, 166, 255),
496
+ // GitHub blue
497
+ changes: rgb(156, 220, 254),
498
+ // Light blue
499
+ contextLow: rgb(35, 134, 54),
500
+ // GitHub green
501
+ contextMedium: rgb(210, 153, 34),
502
+ // GitHub orange
503
+ contextHigh: rgb(248, 81, 73),
504
+ // GitHub red
505
+ linesAdded: rgb(35, 134, 54),
506
+ // GitHub green
507
+ linesRemoved: rgb(248, 81, 73),
508
+ // GitHub red
509
+ cost: rgb(163, 113, 247),
510
+ // Purple
511
+ model: rgb(201, 209, 217),
512
+ // Gray
513
+ duration: rgb(110, 118, 129),
514
+ // Dark gray
515
+ accent: rgb(88, 166, 255)
516
+ // GitHub blue
517
+ })
518
+ };
519
+
520
+ // src/ui/theme/themes/monokai-theme.ts
521
+ var MONOKAI_THEME = {
522
+ name: "monokai",
523
+ description: "Vibrant, high-contrast",
524
+ colors: createThemeColors({
525
+ branch: rgb(102, 217, 239),
526
+ // Cyan
527
+ changes: rgb(249, 26, 114),
528
+ // Pink
529
+ contextLow: rgb(166, 226, 46),
530
+ // Green
531
+ contextMedium: rgb(253, 151, 31),
532
+ // Orange
533
+ contextHigh: rgb(249, 26, 114),
534
+ // Pink
535
+ linesAdded: rgb(166, 226, 46),
536
+ // Green
537
+ linesRemoved: rgb(249, 26, 114),
538
+ // Pink
539
+ cost: rgb(254, 128, 25),
540
+ // Bright orange
541
+ model: rgb(174, 129, 255),
542
+ // Purple
543
+ duration: rgb(102, 217, 239),
544
+ // Cyan
545
+ accent: rgb(249, 26, 114)
546
+ // Pink
547
+ })
548
+ };
549
+
550
+ // src/ui/theme/themes/muted-gray-theme.ts
551
+ var MUTED_GRAY_THEME = {
552
+ name: "muted-gray",
553
+ description: "Very subtle grays with almost invisible progress bar",
554
+ colors: createThemeColors({
555
+ branch: rgb(156, 163, 175),
556
+ // Slate gray
557
+ changes: rgb(148, 163, 184),
558
+ // Lighter slate
559
+ contextLow: rgb(148, 163, 184),
560
+ // Subtle gray (low)
561
+ contextMedium: rgb(160, 174, 192),
562
+ // Medium gray
563
+ contextHigh: rgb(175, 188, 201),
564
+ // Light gray (high)
565
+ linesAdded: rgb(148, 163, 184),
566
+ linesRemoved: rgb(148, 163, 184),
567
+ cost: rgb(156, 163, 175),
568
+ model: rgb(148, 163, 184),
569
+ duration: rgb(107, 114, 128),
570
+ accent: rgb(156, 163, 175)
571
+ })
572
+ };
573
+
574
+ // src/ui/theme/themes/nord-theme.ts
575
+ var NORD_THEME = {
576
+ name: "nord",
577
+ description: "Arctic, north-bluish color palette",
578
+ colors: createThemeColors({
579
+ branch: rgb(136, 192, 208),
580
+ // Nordic cyan
581
+ changes: rgb(143, 188, 187),
582
+ // Nordic blue-gray
583
+ contextLow: rgb(163, 190, 140),
584
+ // Nordic green
585
+ contextMedium: rgb(235, 203, 139),
586
+ // Nordic yellow
587
+ contextHigh: rgb(191, 97, 106),
588
+ // Nordic red
589
+ linesAdded: rgb(163, 190, 140),
590
+ // Nordic green
591
+ linesRemoved: rgb(191, 97, 106),
592
+ // Nordic red
593
+ cost: rgb(216, 222, 233),
594
+ // Nordic white
595
+ model: rgb(129, 161, 193),
596
+ // Nordic blue
597
+ duration: rgb(94, 129, 172),
598
+ // Nordic dark blue
599
+ accent: rgb(136, 192, 208)
600
+ // Nordic cyan
601
+ })
602
+ };
603
+
604
+ // src/ui/theme/themes/one-dark-pro-theme.ts
605
+ var ONE_DARK_PRO_THEME = {
606
+ name: "one-dark-pro",
607
+ description: "Atom's iconic theme",
608
+ colors: createThemeColors({
609
+ branch: rgb(97, 175, 239),
610
+ // Blue
611
+ changes: rgb(152, 195, 121),
612
+ // Green
613
+ contextLow: rgb(152, 195, 121),
614
+ // Green
615
+ contextMedium: rgb(229, 192, 123),
616
+ // Yellow
617
+ contextHigh: rgb(224, 108, 117),
618
+ // Red
619
+ linesAdded: rgb(152, 195, 121),
620
+ // Green
621
+ linesRemoved: rgb(224, 108, 117),
622
+ // Red
623
+ cost: rgb(209, 154, 102),
624
+ // Orange
625
+ model: rgb(171, 178, 191),
626
+ // Gray
627
+ duration: rgb(125, 148, 173),
628
+ // Dark gray
629
+ accent: rgb(97, 175, 239)
630
+ // Blue
631
+ })
632
+ };
633
+
634
+ // src/ui/theme/themes/professional-blue-theme.ts
635
+ var PROFESSIONAL_BLUE_THEME = {
636
+ name: "professional-blue",
637
+ description: "Clean, business-oriented blue color scheme",
638
+ colors: createThemeColors({
639
+ branch: rgb(37, 99, 235),
640
+ // Royal blue
641
+ changes: rgb(148, 163, 184),
642
+ // Slate gray
643
+ contextLow: rgb(96, 165, 250),
644
+ // Light blue
645
+ contextMedium: rgb(251, 191, 36),
646
+ // Amber
647
+ contextHigh: rgb(248, 113, 113),
648
+ // Red
649
+ linesAdded: rgb(74, 222, 128),
650
+ // Green
651
+ linesRemoved: rgb(248, 113, 113),
652
+ // Red
653
+ cost: rgb(251, 146, 60),
654
+ // Orange
655
+ model: rgb(167, 139, 250),
656
+ // Purple
657
+ duration: rgb(203, 213, 225),
658
+ // Light gray
659
+ accent: rgb(37, 99, 235)
660
+ // Royal blue
661
+ })
662
+ };
663
+
664
+ // src/ui/theme/themes/rose-pine-theme.ts
665
+ var ROSE_PINE_THEME = {
666
+ name: "rose-pine",
667
+ description: "Rose/violet themed",
668
+ colors: createThemeColors({
669
+ branch: rgb(156, 207, 216),
670
+ // Pine cyan
671
+ changes: rgb(235, 188, 186),
672
+ // Rose
673
+ contextLow: rgb(156, 207, 216),
674
+ // Pine cyan
675
+ contextMedium: rgb(233, 201, 176),
676
+ // Pine beige
677
+ contextHigh: rgb(235, 111, 146),
678
+ // Pine red
679
+ linesAdded: rgb(156, 207, 216),
680
+ // Pine cyan
681
+ linesRemoved: rgb(235, 111, 146),
682
+ // Pine red
683
+ cost: rgb(226, 185, 218),
684
+ // Pine pink
685
+ model: rgb(224, 208, 245),
686
+ // Pine violet
687
+ duration: rgb(148, 137, 176),
688
+ // Pine mute
689
+ accent: rgb(235, 111, 146)
690
+ // Pine red
691
+ })
692
+ };
693
+
694
+ // src/ui/theme/themes/semantic-classic-theme.ts
695
+ var SEMANTIC_CLASSIC_THEME = {
696
+ name: "semantic-classic",
697
+ description: "Industry-standard semantic colors for maximum clarity",
698
+ colors: createThemeColors({
699
+ branch: rgb(59, 130, 246),
700
+ // Blue
701
+ changes: rgb(107, 114, 128),
702
+ // Gray
703
+ contextLow: rgb(34, 197, 94),
704
+ // Green
705
+ contextMedium: rgb(234, 179, 8),
706
+ // Yellow
707
+ contextHigh: rgb(239, 68, 68),
708
+ // Red
709
+ linesAdded: rgb(34, 197, 94),
710
+ // Green
711
+ linesRemoved: rgb(239, 68, 68),
712
+ // Red
713
+ cost: rgb(249, 115, 22),
714
+ // Orange
715
+ model: rgb(99, 102, 241),
716
+ // Indigo
717
+ duration: rgb(107, 114, 128),
718
+ // Gray
719
+ accent: rgb(59, 130, 246)
720
+ // Blue
721
+ })
722
+ };
723
+
724
+ // src/ui/theme/themes/slate-blue-theme.ts
725
+ var SLATE_BLUE_THEME = {
726
+ name: "slate-blue",
727
+ description: "Calm blue-grays with gentle ocean tones",
728
+ colors: createThemeColors({
729
+ branch: rgb(100, 116, 139),
730
+ // Cool slate
731
+ changes: rgb(148, 163, 184),
732
+ // Neutral slate
733
+ contextLow: rgb(148, 163, 184),
734
+ // Subtle slate-blue (low)
735
+ contextMedium: rgb(160, 174, 192),
736
+ // Medium slate
737
+ contextHigh: rgb(175, 188, 201),
738
+ // Light slate (high)
739
+ linesAdded: rgb(148, 163, 184),
740
+ linesRemoved: rgb(148, 163, 184),
741
+ cost: rgb(156, 163, 175),
742
+ model: rgb(148, 163, 184),
743
+ duration: rgb(100, 116, 139),
744
+ accent: rgb(100, 116, 139)
745
+ })
746
+ };
747
+
748
+ // src/ui/theme/themes/solarized-dark-theme.ts
749
+ var SOLARIZED_DARK_THEME = {
750
+ name: "solarized-dark",
751
+ description: "Precise CIELAB lightness",
752
+ colors: createThemeColors({
753
+ branch: rgb(38, 139, 210),
754
+ // Blue
755
+ changes: rgb(133, 153, 0),
756
+ // Olive
757
+ contextLow: rgb(133, 153, 0),
758
+ // Olive
759
+ contextMedium: rgb(181, 137, 0),
760
+ // Yellow
761
+ contextHigh: rgb(220, 50, 47),
762
+ // Red
763
+ linesAdded: rgb(133, 153, 0),
764
+ // Olive
765
+ linesRemoved: rgb(220, 50, 47),
766
+ // Red
767
+ cost: rgb(203, 75, 22),
768
+ // Orange
769
+ model: rgb(131, 148, 150),
770
+ // Base0
771
+ duration: rgb(88, 110, 117),
772
+ // Base01
773
+ accent: rgb(38, 139, 210)
774
+ // Blue
775
+ })
776
+ };
777
+
778
+ // src/ui/theme/themes/tokyo-night-theme.ts
779
+ var TOKYO_NIGHT_THEME = {
780
+ name: "tokyo-night",
781
+ description: "Clean, dark Tokyo-inspired",
782
+ colors: createThemeColors({
783
+ branch: rgb(122, 132, 173),
784
+ // Blue
785
+ changes: rgb(122, 162, 247),
786
+ // Dark blue
787
+ contextLow: rgb(146, 180, 203),
788
+ // Cyan
789
+ contextMedium: rgb(232, 166, 162),
790
+ // Pink-red
791
+ contextHigh: rgb(249, 86, 119),
792
+ // Red
793
+ linesAdded: rgb(146, 180, 203),
794
+ // Cyan
795
+ linesRemoved: rgb(249, 86, 119),
796
+ // Red
797
+ cost: rgb(158, 206, 209),
798
+ // Teal
799
+ model: rgb(169, 177, 214),
800
+ // White-ish
801
+ duration: rgb(113, 119, 161),
802
+ // Dark blue-gray
803
+ accent: rgb(122, 132, 173)
804
+ // Blue
805
+ })
806
+ };
807
+
808
+ // src/ui/theme/themes/vscode-dark-plus-theme.ts
809
+ var VSCODE_DARK_PLUS_THEME = {
810
+ name: "vscode-dark-plus",
811
+ description: "Visual Studio Code's default dark theme (claude-scope default)",
812
+ colors: createThemeColors({
813
+ branch: rgb(0, 122, 204),
814
+ // VSCode blue
815
+ changes: rgb(78, 201, 176),
816
+ // Teal
817
+ contextLow: rgb(78, 201, 176),
818
+ // Teal
819
+ contextMedium: rgb(220, 220, 170),
820
+ // Yellow
821
+ contextHigh: rgb(244, 71, 71),
822
+ // Red
823
+ linesAdded: rgb(78, 201, 176),
824
+ // Teal
825
+ linesRemoved: rgb(244, 71, 71),
826
+ // Red
827
+ cost: rgb(206, 145, 120),
828
+ // Orange
829
+ model: rgb(171, 178, 191),
830
+ // Gray
831
+ duration: rgb(125, 148, 173),
832
+ // Dark gray
833
+ accent: rgb(0, 122, 204)
834
+ // VSCode blue
835
+ })
337
836
  };
338
837
 
339
838
  // src/ui/theme/index.ts
340
- var DEFAULT_THEME = GRAY_THEME.colors;
839
+ var DEFAULT_THEME = VSCODE_DARK_PLUS_THEME.colors;
341
840
 
342
841
  // src/ui/utils/style-utils.ts
343
842
  function withLabel(prefix, value) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-scope",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Claude Code plugin for session status and analytics",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  "build:tsc": "tsc",
20
20
  "build:bundle": "esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/claude-scope.cjs && chmod +x dist/claude-scope.cjs",
21
21
  "prebuild:bundle": "npm run build:tsc",
22
- "test": "tsx --test tests/e2e/stdin-flow.test.ts tests/integration/cli-flow.integration.test.ts tests/integration/five-widgets.integration.test.ts tests/unit/cli.test.ts tests/unit/types.test.ts tests/unit/core/*.test.ts tests/unit/data/*.test.ts tests/unit/utils/*.test.ts tests/unit/widgets/*.test.ts",
22
+ "test": "tsx --test tests/e2e/stdin-flow.test.ts tests/integration/cli-flow.integration.test.ts tests/integration/five-widgets.integration.test.ts tests/unit/cli.test.ts tests/unit/types.test.ts tests/unit/core/*.test.ts tests/unit/data/*.test.ts tests/unit/utils/*.test.ts tests/unit/widgets/*.test.ts tests/unit/ui/theme/*.test.ts",
23
23
  "test:unit": "tsx --test tests/unit/cli.test.ts tests/unit/types.test.ts tests/unit/core/*.test.ts tests/unit/data/*.test.ts tests/unit/utils/*.test.ts tests/unit/widgets/*.test.ts",
24
24
  "test:integration": "tsx --test tests/e2e/stdin-flow.test.ts tests/integration/cli-flow.integration.test.ts tests/integration/five-widgets.integration.test.ts",
25
25
  "test:coverage": "c8 --reporter=text --reporter=html --exclude='tests/**' --exclude='**/*.test.ts' tsx --test tests/e2e/stdin-flow.test.ts tests/integration/cli-flow.integration.test.ts tests/integration/five-widgets.integration.test.ts tests/unit/cli.test.ts tests/unit/types.test.ts tests/unit/core/*.test.ts tests/unit/data/*.test.ts tests/unit/utils/*.test.ts tests/unit/widgets/*.test.ts",