@thacio/auditaria 0.30.12 → 0.30.13

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 (68) hide show
  1. package/README.md +14 -10
  2. package/bundle/docs/admin/enterprise-controls.md +115 -0
  3. package/bundle/docs/changelogs/index.md +20 -1
  4. package/bundle/docs/changelogs/latest.md +359 -293
  5. package/bundle/docs/changelogs/preview.md +296 -349
  6. package/bundle/docs/cli/checkpointing.md +2 -3
  7. package/bundle/docs/cli/cli-reference.md +4 -5
  8. package/bundle/docs/cli/commands.md +376 -650
  9. package/bundle/docs/cli/custom-commands.md +3 -0
  10. package/bundle/docs/cli/enterprise.md +1 -1
  11. package/bundle/docs/cli/gemini-md.md +20 -12
  12. package/bundle/docs/cli/headless.md +34 -372
  13. package/bundle/docs/cli/keyboard-shortcuts.md +36 -35
  14. package/bundle/docs/cli/plan-mode.md +5 -1
  15. package/bundle/docs/cli/rewind.md +11 -11
  16. package/bundle/docs/cli/session-management.md +61 -44
  17. package/bundle/docs/cli/settings.md +10 -5
  18. package/bundle/docs/cli/skills.md +15 -8
  19. package/bundle/docs/cli/themes.md +85 -51
  20. package/bundle/docs/cli/tutorials/automation.md +187 -0
  21. package/bundle/docs/cli/tutorials/file-management.md +142 -0
  22. package/bundle/docs/cli/tutorials/mcp-setup.md +105 -0
  23. package/bundle/docs/cli/tutorials/memory-management.md +126 -0
  24. package/bundle/docs/cli/tutorials/session-management.md +105 -0
  25. package/bundle/docs/cli/tutorials/shell-commands.md +107 -0
  26. package/bundle/docs/cli/tutorials/skills-getting-started.md +36 -31
  27. package/bundle/docs/cli/tutorials/task-planning.md +93 -0
  28. package/bundle/docs/cli/tutorials/web-tools.md +78 -0
  29. package/bundle/docs/core/policy-engine.md +4 -2
  30. package/bundle/docs/core/subagents.md +38 -38
  31. package/bundle/docs/extensions/best-practices.md +102 -53
  32. package/bundle/docs/extensions/index.md +37 -21
  33. package/bundle/docs/extensions/reference.md +148 -216
  34. package/bundle/docs/extensions/releasing.md +93 -122
  35. package/bundle/docs/extensions/writing-extensions.md +87 -76
  36. package/bundle/docs/get-started/configuration.md +103 -61
  37. package/bundle/docs/get-started/examples.md +39 -119
  38. package/bundle/docs/get-started/index.md +5 -4
  39. package/bundle/docs/get-started/installation.md +110 -77
  40. package/bundle/docs/index.md +156 -108
  41. package/bundle/docs/releases.md +2 -2
  42. package/bundle/docs/sidebar.json +101 -61
  43. package/bundle/docs/tools/activate-skill.md +43 -0
  44. package/bundle/docs/tools/ask-user.md +1 -1
  45. package/bundle/docs/tools/file-system.md +43 -133
  46. package/bundle/docs/tools/index.md +92 -91
  47. package/bundle/docs/tools/internal-docs.md +46 -0
  48. package/bundle/docs/tools/mcp-server.md +2 -2
  49. package/bundle/docs/tools/memory.md +21 -40
  50. package/bundle/docs/tools/shell.md +43 -88
  51. package/bundle/docs/tools/todos.md +22 -44
  52. package/bundle/docs/tools/web-fetch.md +22 -46
  53. package/bundle/docs/tools/web-search.md +19 -29
  54. package/bundle/gemini.js +138221 -136590
  55. package/bundle/mcp-bridge.js +154 -143
  56. package/bundle/node_modules/@browserbasehq/stagehand/dist/index.js +430 -257
  57. package/bundle/node_modules/@thacio/auditaria-search/dist/tsconfig.tsbuildinfo +1 -1
  58. package/bundle/web-client/components/EditorPanel.js +57 -36
  59. package/bundle/web-client/components/FileTreePanel.js +77 -2
  60. package/bundle/web-client/index.html +5 -1
  61. package/bundle/web-client/managers/EditorManager.js +190 -24
  62. package/bundle/web-client/styles/themes.css +376 -0
  63. package/bundle/web-client/utils/theme-manager.js +33 -1
  64. package/package.json +6 -6
  65. package/bundle/docs/architecture.md +0 -80
  66. package/bundle/docs/cli/index.md +0 -67
  67. package/bundle/docs/cli/tutorials.md +0 -87
  68. package/bundle/docs/get-started/configuration-v1.md +0 -882
@@ -409,3 +409,379 @@
409
409
  --hljs-comment: #8c7b6d;
410
410
  --hljs-title: #1b1410;
411
411
  }
412
+
413
+ /* ============================================================================
414
+ Neon Dark - vibrant, electric
415
+ ============================================================================ */
416
+ [data-theme="neon-dark"] {
417
+ color-scheme: dark;
418
+
419
+ --bg: #0a0a14;
420
+ --bg-elevated: #0e0e1c;
421
+ --surface: #131320;
422
+ --surface-alt: #1a1a2e;
423
+ --surface-hover: #22223a;
424
+ --surface-glass: rgba(19, 19, 32, 0.78);
425
+ --surface-strong: #1e1e36;
426
+
427
+ --panel-bg: #0e0e1a;
428
+ --panel-header-bg: #141428;
429
+ --panel-border: #2a2a4a;
430
+ --panel-item-hover: #302e52;
431
+ --panel-item-selected: #1e1e36;
432
+
433
+ --text: #eae8f5;
434
+ --text-subtle: #b0adc2;
435
+ --text-secondary: #b0adc2;
436
+ --text-muted: #807da0;
437
+ --text-inverse: #ffffff;
438
+
439
+ --primary: #a855f7;
440
+ --primary-hover: #c084fc;
441
+ --primary-10: rgba(168, 85, 247, 0.18);
442
+ --accent: #ec4899;
443
+ --accent-hover: #f472b6;
444
+ --accent-2: #06b6d4;
445
+ --accent-gradient: linear-gradient(135deg, #a855f7, #ec4899);
446
+
447
+ --border: #2a2a4a;
448
+ --border-strong: #3b3b62;
449
+ --border-hover: #3b3b62;
450
+ --border-subtle: rgba(255, 255, 255, 0.06);
451
+ --focus-border: #c084fc;
452
+
453
+ --shadow-sm: 0 1px 2px rgba(5, 5, 12, 0.45);
454
+ --shadow: 0 10px 30px rgba(5, 5, 12, 0.6);
455
+ --shadow-lg: 0 20px 60px rgba(5, 5, 12, 0.7);
456
+
457
+ --success: #22c55e;
458
+ --success-bg: rgba(34, 197, 94, 0.14);
459
+ --warning: #f59e0b;
460
+ --warning-bg: rgba(245, 158, 11, 0.16);
461
+ --error: #ef4444;
462
+ --error-bg: rgba(239, 68, 68, 0.14);
463
+ --tool-executing: #a855f7;
464
+ --tool-executing-bg: rgba(168, 85, 247, 0.16);
465
+
466
+ --code-bg: #0c0c18;
467
+ --code-text: #eae8f5;
468
+ --code-border: #2a2a4a;
469
+ --code-inline-bg: #1a1a2e;
470
+ --code-inline-text: #d8b4fe;
471
+
472
+ --input-bg: #131320;
473
+ --input-border: #322e54;
474
+ --input-text: #eae8f5;
475
+ --input-placeholder: #807da0;
476
+
477
+ --scrollbar-track: transparent;
478
+ --scrollbar-thumb: rgba(176, 173, 194, 0.35);
479
+ --scrollbar-hover: rgba(176, 173, 194, 0.55);
480
+
481
+ --diff-add-bg: rgba(34, 197, 94, 0.18);
482
+ --diff-add-text: #22c55e;
483
+ --diff-remove-bg: rgba(239, 68, 68, 0.18);
484
+ --diff-remove-text: #ef4444;
485
+
486
+ --msg-user-bg: rgba(168, 85, 247, 0.1);
487
+ --msg-user-border: rgba(168, 85, 247, 0.3);
488
+ --msg-ai-bg: rgba(19, 19, 32, 0.7);
489
+ --msg-ai-border: rgba(59, 59, 98, 0.85);
490
+ --msg-system-bg: rgba(236, 72, 153, 0.08);
491
+ --msg-separator: #1a1a2e;
492
+
493
+ --highlight-bg: rgba(236, 72, 153, 0.3);
494
+ --highlight-text: #f9a8d4;
495
+
496
+ --glow-accent: 0 0 26px rgba(168, 85, 247, 0.4);
497
+
498
+ --hljs-keyword: #a855f7;
499
+ --hljs-string: #22c55e;
500
+ --hljs-number: #ec4899;
501
+ --hljs-type: #06b6d4;
502
+ --hljs-built-in: #c084fc;
503
+ --hljs-comment: #6b6890;
504
+ --hljs-title: #d8b4fe;
505
+ }
506
+
507
+ /* ============================================================================
508
+ Neon Light - vibrant, airy
509
+ ============================================================================ */
510
+ [data-theme="neon-light"] {
511
+ color-scheme: light;
512
+
513
+ --bg: #f8f5ff;
514
+ --bg-elevated: #ffffff;
515
+ --surface: #ffffff;
516
+ --surface-alt: #f0ecfa;
517
+ --surface-hover: #e8e2f6;
518
+ --surface-glass: rgba(255, 255, 255, 0.78);
519
+ --surface-strong: #ece6f8;
520
+
521
+ --panel-bg: #f4f0fc;
522
+ --panel-header-bg: #eee8f8;
523
+ --panel-border: #d6cee8;
524
+ --panel-item-hover: #e4dcf2;
525
+ --panel-item-selected: #e8d8ff;
526
+
527
+ --text: #14101e;
528
+ --text-subtle: #4a3f66;
529
+ --text-secondary: #4a3f66;
530
+ --text-muted: #8a80a8;
531
+ --text-inverse: #ffffff;
532
+
533
+ --primary: #7c3aed;
534
+ --primary-hover: #8b5cf6;
535
+ --primary-10: rgba(124, 58, 237, 0.12);
536
+ --accent: #db2777;
537
+ --accent-hover: #ec4899;
538
+ --accent-2: #0d9488;
539
+ --accent-gradient: linear-gradient(135deg, #7c3aed, #db2777);
540
+
541
+ --border: #d6cee8;
542
+ --border-strong: #c2b8d8;
543
+ --border-hover: #c2b8d8;
544
+ --border-subtle: rgba(20, 16, 30, 0.06);
545
+ --focus-border: #7c3aed;
546
+
547
+ --shadow-sm: 0 1px 2px rgba(20, 16, 30, 0.08);
548
+ --shadow: 0 10px 30px rgba(20, 16, 30, 0.12);
549
+ --shadow-lg: 0 20px 60px rgba(20, 16, 30, 0.16);
550
+
551
+ --success: #16a34a;
552
+ --success-bg: rgba(22, 163, 74, 0.12);
553
+ --warning: #d97706;
554
+ --warning-bg: rgba(217, 119, 6, 0.14);
555
+ --error: #dc2626;
556
+ --error-bg: rgba(220, 38, 38, 0.12);
557
+ --tool-executing: #7c3aed;
558
+ --tool-executing-bg: rgba(124, 58, 237, 0.12);
559
+
560
+ --code-bg: #1a1028;
561
+ --code-text: #eae2f8;
562
+ --code-border: #e2daee;
563
+ --code-inline-bg: #ece6f8;
564
+ --code-inline-text: #6d28d9;
565
+
566
+ --input-bg: #ffffff;
567
+ --input-border: #d6cee8;
568
+ --input-text: #14101e;
569
+ --input-placeholder: #8a80a8;
570
+
571
+ --scrollbar-track: transparent;
572
+ --scrollbar-thumb: #ccc4de;
573
+ --scrollbar-hover: #b4aac8;
574
+
575
+ --diff-add-bg: rgba(34, 197, 94, 0.18);
576
+ --diff-add-text: #16a34a;
577
+ --diff-remove-bg: rgba(239, 68, 68, 0.18);
578
+ --diff-remove-text: #dc2626;
579
+
580
+ --msg-user-bg: rgba(124, 58, 237, 0.08);
581
+ --msg-user-border: rgba(124, 58, 237, 0.2);
582
+ --msg-ai-bg: rgba(255, 255, 255, 0.92);
583
+ --msg-ai-border: rgba(214, 206, 232, 0.9);
584
+ --msg-system-bg: rgba(219, 39, 119, 0.06);
585
+ --msg-separator: #e8e2f6;
586
+
587
+ --highlight-bg: #fce7f3;
588
+ --highlight-text: #9d174d;
589
+
590
+ --glow-accent: 0 0 24px rgba(124, 58, 237, 0.25);
591
+
592
+ --hljs-keyword: #7c3aed;
593
+ --hljs-string: #16a34a;
594
+ --hljs-number: #db2777;
595
+ --hljs-type: #0d9488;
596
+ --hljs-built-in: #6d28d9;
597
+ --hljs-comment: #8a80a8;
598
+ --hljs-title: #14101e;
599
+ }
600
+
601
+ /* ============================================================================
602
+ Forest Dark - earthy, natural
603
+ ============================================================================ */
604
+ [data-theme="forest-dark"] {
605
+ color-scheme: dark;
606
+
607
+ --bg: #0b100d;
608
+ --bg-elevated: #0f1610;
609
+ --surface: #141c16;
610
+ --surface-alt: #1b261e;
611
+ --surface-hover: #233026;
612
+ --surface-glass: rgba(20, 28, 22, 0.78);
613
+ --surface-strong: #1f2e22;
614
+
615
+ --panel-bg: #101812;
616
+ --panel-header-bg: #162018;
617
+ --panel-border: #243828;
618
+ --panel-item-hover: #2f4834;
619
+ --panel-item-selected: #1f2e22;
620
+
621
+ --text: #e6f0ea;
622
+ --text-subtle: #a7bfad;
623
+ --text-secondary: #a7bfad;
624
+ --text-muted: #7a9682;
625
+ --text-inverse: #ffffff;
626
+
627
+ --primary: #10b981;
628
+ --primary-hover: #34d399;
629
+ --primary-10: rgba(16, 185, 129, 0.18);
630
+ --accent: #84cc16;
631
+ --accent-hover: #a3e635;
632
+ --accent-2: #38bdf8;
633
+ --accent-gradient: linear-gradient(135deg, #10b981, #84cc16);
634
+
635
+ --border: #243828;
636
+ --border-strong: #335a3a;
637
+ --border-hover: #335a3a;
638
+ --border-subtle: rgba(255, 255, 255, 0.06);
639
+ --focus-border: #34d399;
640
+
641
+ --shadow-sm: 0 1px 2px rgba(5, 10, 6, 0.45);
642
+ --shadow: 0 10px 30px rgba(5, 10, 6, 0.6);
643
+ --shadow-lg: 0 20px 60px rgba(5, 10, 6, 0.7);
644
+
645
+ --success: #22c55e;
646
+ --success-bg: rgba(34, 197, 94, 0.14);
647
+ --warning: #f59e0b;
648
+ --warning-bg: rgba(245, 158, 11, 0.16);
649
+ --error: #ef4444;
650
+ --error-bg: rgba(239, 68, 68, 0.14);
651
+ --tool-executing: #10b981;
652
+ --tool-executing-bg: rgba(16, 185, 129, 0.16);
653
+
654
+ --code-bg: #0c120e;
655
+ --code-text: #e6f0ea;
656
+ --code-border: #243828;
657
+ --code-inline-bg: #1b261e;
658
+ --code-inline-text: #6ee7b7;
659
+
660
+ --input-bg: #141c16;
661
+ --input-border: #2c4630;
662
+ --input-text: #e6f0ea;
663
+ --input-placeholder: #7a9682;
664
+
665
+ --scrollbar-track: transparent;
666
+ --scrollbar-thumb: rgba(167, 191, 173, 0.35);
667
+ --scrollbar-hover: rgba(167, 191, 173, 0.55);
668
+
669
+ --diff-add-bg: rgba(34, 197, 94, 0.18);
670
+ --diff-add-text: #22c55e;
671
+ --diff-remove-bg: rgba(239, 68, 68, 0.18);
672
+ --diff-remove-text: #ef4444;
673
+
674
+ --msg-user-bg: rgba(16, 185, 129, 0.1);
675
+ --msg-user-border: rgba(16, 185, 129, 0.3);
676
+ --msg-ai-bg: rgba(20, 28, 22, 0.7);
677
+ --msg-ai-border: rgba(51, 90, 58, 0.85);
678
+ --msg-system-bg: rgba(132, 204, 22, 0.08);
679
+ --msg-separator: #1b261e;
680
+
681
+ --highlight-bg: rgba(132, 204, 22, 0.3);
682
+ --highlight-text: #bef264;
683
+
684
+ --glow-accent: 0 0 26px rgba(16, 185, 129, 0.4);
685
+
686
+ --hljs-keyword: #10b981;
687
+ --hljs-string: #84cc16;
688
+ --hljs-number: #f59e0b;
689
+ --hljs-type: #38bdf8;
690
+ --hljs-built-in: #34d399;
691
+ --hljs-comment: #6b8a72;
692
+ --hljs-title: #6ee7b7;
693
+ }
694
+
695
+ /* ============================================================================
696
+ Forest Light - fresh, natural
697
+ ============================================================================ */
698
+ [data-theme="forest-light"] {
699
+ color-scheme: light;
700
+
701
+ --bg: #f3f8f4;
702
+ --bg-elevated: #ffffff;
703
+ --surface: #ffffff;
704
+ --surface-alt: #e8f2ea;
705
+ --surface-hover: #dceade;
706
+ --surface-glass: rgba(255, 255, 255, 0.78);
707
+ --surface-strong: #e2efe4;
708
+
709
+ --panel-bg: #eef5ef;
710
+ --panel-header-bg: #e6f0e8;
711
+ --panel-border: #c4d8c8;
712
+ --panel-item-hover: #d4e6d7;
713
+ --panel-item-selected: #c6ecd0;
714
+
715
+ --text: #0f1a12;
716
+ --text-subtle: #3a5542;
717
+ --text-secondary: #3a5542;
718
+ --text-muted: #7a9682;
719
+ --text-inverse: #ffffff;
720
+
721
+ --primary: #059669;
722
+ --primary-hover: #10b981;
723
+ --primary-10: rgba(5, 150, 105, 0.12);
724
+ --accent: #65a30d;
725
+ --accent-hover: #84cc16;
726
+ --accent-2: #0ea5e9;
727
+ --accent-gradient: linear-gradient(135deg, #059669, #65a30d);
728
+
729
+ --border: #c4d8c8;
730
+ --border-strong: #a8c4ae;
731
+ --border-hover: #a8c4ae;
732
+ --border-subtle: rgba(15, 26, 18, 0.06);
733
+ --focus-border: #059669;
734
+
735
+ --shadow-sm: 0 1px 2px rgba(15, 26, 18, 0.08);
736
+ --shadow: 0 10px 30px rgba(15, 26, 18, 0.12);
737
+ --shadow-lg: 0 20px 60px rgba(15, 26, 18, 0.16);
738
+
739
+ --success: #16a34a;
740
+ --success-bg: rgba(22, 163, 74, 0.12);
741
+ --warning: #d97706;
742
+ --warning-bg: rgba(217, 119, 6, 0.14);
743
+ --error: #dc2626;
744
+ --error-bg: rgba(220, 38, 38, 0.12);
745
+ --tool-executing: #059669;
746
+ --tool-executing-bg: rgba(5, 150, 105, 0.12);
747
+
748
+ --code-bg: #0e1a12;
749
+ --code-text: #e6f0ea;
750
+ --code-border: #d0e0d4;
751
+ --code-inline-bg: #e2efe4;
752
+ --code-inline-text: #047857;
753
+
754
+ --input-bg: #ffffff;
755
+ --input-border: #c4d8c8;
756
+ --input-text: #0f1a12;
757
+ --input-placeholder: #7a9682;
758
+
759
+ --scrollbar-track: transparent;
760
+ --scrollbar-thumb: #b8d0bc;
761
+ --scrollbar-hover: #9cbca2;
762
+
763
+ --diff-add-bg: rgba(34, 197, 94, 0.18);
764
+ --diff-add-text: #16a34a;
765
+ --diff-remove-bg: rgba(239, 68, 68, 0.18);
766
+ --diff-remove-text: #dc2626;
767
+
768
+ --msg-user-bg: rgba(5, 150, 105, 0.08);
769
+ --msg-user-border: rgba(5, 150, 105, 0.2);
770
+ --msg-ai-bg: rgba(255, 255, 255, 0.92);
771
+ --msg-ai-border: rgba(196, 216, 200, 0.9);
772
+ --msg-system-bg: rgba(101, 163, 13, 0.06);
773
+ --msg-separator: #dceade;
774
+
775
+ --highlight-bg: #ecfccb;
776
+ --highlight-text: #3f6212;
777
+
778
+ --glow-accent: 0 0 24px rgba(5, 150, 105, 0.25);
779
+
780
+ --hljs-keyword: #059669;
781
+ --hljs-string: #16a34a;
782
+ --hljs-number: #d97706;
783
+ --hljs-type: #0ea5e9;
784
+ --hljs-built-in: #047857;
785
+ --hljs-comment: #7a9682;
786
+ --hljs-title: #0f1a12;
787
+ }
@@ -40,6 +40,38 @@ const THEMES = [
40
40
  swatch: ['#fbf7f1', '#ea580c'],
41
41
  monaco: 'auditaria-studio-light',
42
42
  },
43
+ {
44
+ id: 'neon-dark',
45
+ label: 'Neon Dark',
46
+ kind: 'dark',
47
+ description: 'Vibrant, electric',
48
+ swatch: ['#0a0a14', '#a855f7'],
49
+ monaco: 'auditaria-neon-dark',
50
+ },
51
+ {
52
+ id: 'neon-light',
53
+ label: 'Neon Light',
54
+ kind: 'light',
55
+ description: 'Vibrant, airy',
56
+ swatch: ['#f8f5ff', '#7c3aed'],
57
+ monaco: 'auditaria-neon-light',
58
+ },
59
+ {
60
+ id: 'forest-dark',
61
+ label: 'Forest Dark',
62
+ kind: 'dark',
63
+ description: 'Earthy, natural',
64
+ swatch: ['#0b100d', '#10b981'],
65
+ monaco: 'auditaria-forest-dark',
66
+ },
67
+ {
68
+ id: 'forest-light',
69
+ label: 'Forest Light',
70
+ kind: 'light',
71
+ description: 'Fresh, natural',
72
+ swatch: ['#f3f8f4', '#059669'],
73
+ monaco: 'auditaria-forest-light',
74
+ },
43
75
  ];
44
76
 
45
77
  class ThemeManager {
@@ -94,7 +126,7 @@ class ThemeManager {
94
126
  toggle() {
95
127
  const current = this.themeMeta;
96
128
  const nextKind = current.kind === 'dark' ? 'light' : 'dark';
97
- const family = current.id.includes('studio') ? 'studio' : 'calm';
129
+ const family = current.id.replace(/-(?:dark|light)$/, '');
98
130
  const nextId = `${family}-${nextKind}`;
99
131
  this.set(nextId);
100
132
  return nextId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thacio/auditaria",
3
- "version": "0.30.12",
3
+ "version": "0.30.13",
4
4
  "engines": {
5
5
  "node": ">=20.0.0"
6
6
  },
@@ -37,7 +37,7 @@
37
37
  "build:all": "npm run build && npm run build:sandbox && npm run build:vscode",
38
38
  "build:packages": "npm run build --workspaces",
39
39
  "build:sandbox": "node scripts/build_sandbox.js",
40
- "bundle": "npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js",
40
+ "bundle": "npm run generate && node -e \"try{require('child_process').execSync('npm run build --workspace=@google/gemini-cli-devtools',{stdio:'inherit'})}catch(e){}\" && node esbuild.config.js && node scripts/copy_bundle_assets.js",
41
41
  "test": "npm run test --workspaces --if-present",
42
42
  "test:ci": "npm run test:ci --workspaces --if-present && npm run test:scripts",
43
43
  "test:scripts": "vitest run --config ./scripts/tests/vitest.config.ts",
@@ -64,7 +64,7 @@
64
64
  "postinstall": "node scripts/postinstall.js"
65
65
  },
66
66
  "overrides": {
67
- "ink": "npm:@jrichman/ink@6.4.10",
67
+ "ink": "npm:@jrichman/ink@6.4.11",
68
68
  "wrap-ansi": "9.0.2",
69
69
  "cliui": {
70
70
  "wrap-ansi": "7.0.0"
@@ -114,7 +114,6 @@
114
114
  "globals": "^16.0.0",
115
115
  "google-artifactregistry-auth": "^3.4.0",
116
116
  "husky": "^9.1.7",
117
- "ink-testing-library": "^4.0.0",
118
117
  "json": "^11.0.0",
119
118
  "lint-staged": "^16.1.6",
120
119
  "memfs": "^4.42.0",
@@ -126,6 +125,7 @@
126
125
  "patch-package": "^8.0.1",
127
126
  "prettier": "^3.5.3",
128
127
  "react-devtools-core": "^6.1.2",
128
+ "react-dom": "^19.2.0",
129
129
  "semver": "^7.7.2",
130
130
  "strip-ansi": "^7.1.2",
131
131
  "ts-prune": "^0.10.3",
@@ -142,13 +142,14 @@
142
142
  "ansi-to-html": "^0.7.2",
143
143
  "fast-glob": "^3.3.2",
144
144
  "ignore": "^6.0.2",
145
- "ink": "npm:@jrichman/ink@6.4.10",
145
+ "ink": "npm:@jrichman/ink@6.4.11",
146
146
  "latest-version": "^9.0.0",
147
147
  "libsql": "^0.5.0",
148
148
  "markitdown-ts": "^0.0.8",
149
149
  "officeparser": "^5.2.2",
150
150
  "pdf-parse": "^1.1.1",
151
151
  "proper-lockfile": "^4.1.2",
152
+ "punycode": "^2.3.1",
152
153
  "simple-git": "^3.28.0",
153
154
  "strip-ansi": "^7.1.0",
154
155
  "vscode-material-icons": "^0.1.1",
@@ -162,7 +163,6 @@
162
163
  "@lydell/node-pty-win32-arm64": "1.1.0",
163
164
  "@lydell/node-pty-win32-x64": "1.1.0",
164
165
  "chokidar": "^4.0.3",
165
- "gemini-cli-devtools": "^0.2.1",
166
166
  "keytar": "^7.9.0",
167
167
  "node-pty": "^1.0.0",
168
168
  "playwright": "^1.52.0",
@@ -1,80 +0,0 @@
1
- # Gemini CLI Architecture Overview
2
-
3
- This document provides a high-level overview of the Gemini CLI's architecture.
4
-
5
- ## Core components
6
-
7
- The Gemini CLI is primarily composed of two main packages, along with a suite of
8
- tools that can be used by the system in the course of handling command-line
9
- input:
10
-
11
- 1. **CLI package (`packages/cli`):**
12
- - **Purpose:** This contains the user-facing portion of the Gemini CLI, such
13
- as handling the initial user input, presenting the final output, and
14
- managing the overall user experience.
15
- - **Key functions contained in the package:**
16
- - [Input processing](/docs/cli/commands)
17
- - History management
18
- - Display rendering
19
- - [Theme and UI customization](/docs/cli/themes)
20
- - [CLI configuration settings](/docs/get-started/configuration)
21
-
22
- 2. **Core package (`packages/core`):**
23
- - **Purpose:** This acts as the backend for the Gemini CLI. It receives
24
- requests sent from `packages/cli`, orchestrates interactions with the
25
- Gemini API, and manages the execution of available tools.
26
- - **Key functions contained in the package:**
27
- - API client for communicating with the Google Gemini API
28
- - Prompt construction and management
29
- - Tool registration and execution logic
30
- - State management for conversations or sessions
31
- - Server-side configuration
32
-
33
- 3. **Tools (`packages/core/src/tools/`):**
34
- - **Purpose:** These are individual modules that extend the capabilities of
35
- the Gemini model, allowing it to interact with the local environment
36
- (e.g., file system, shell commands, web fetching).
37
- - **Interaction:** `packages/core` invokes these tools based on requests
38
- from the Gemini model.
39
-
40
- ## Interaction flow
41
-
42
- A typical interaction with the Gemini CLI follows this flow:
43
-
44
- 1. **User input:** The user types a prompt or command into the terminal, which
45
- is managed by `packages/cli`.
46
- 2. **Request to core:** `packages/cli` sends the user's input to
47
- `packages/core`.
48
- 3. **Request processed:** The core package:
49
- - Constructs an appropriate prompt for the Gemini API, possibly including
50
- conversation history and available tool definitions.
51
- - Sends the prompt to the Gemini API.
52
- 4. **Gemini API response:** The Gemini API processes the prompt and returns a
53
- response. This response might be a direct answer or a request to use one of
54
- the available tools.
55
- 5. **Tool execution (if applicable):**
56
- - When the Gemini API requests a tool, the core package prepares to execute
57
- it.
58
- - If the requested tool can modify the file system or execute shell
59
- commands, the user is first given details of the tool and its arguments,
60
- and the user must approve the execution.
61
- - Read-only operations, such as reading files, might not require explicit
62
- user confirmation to proceed.
63
- - Once confirmed, or if confirmation is not required, the core package
64
- executes the relevant action within the relevant tool, and the result is
65
- sent back to the Gemini API by the core package.
66
- - The Gemini API processes the tool result and generates a final response.
67
- 6. **Response to CLI:** The core package sends the final response back to the
68
- CLI package.
69
- 7. **Display to user:** The CLI package formats and displays the response to
70
- the user in the terminal.
71
-
72
- ## Key design principles
73
-
74
- - **Modularity:** Separating the CLI (frontend) from the Core (backend) allows
75
- for independent development and potential future extensions (e.g., different
76
- frontends for the same backend).
77
- - **Extensibility:** The tool system is designed to be extensible, allowing new
78
- capabilities to be added.
79
- - **User experience:** The CLI focuses on providing a rich and interactive
80
- terminal experience.
@@ -1,67 +0,0 @@
1
- # Gemini CLI
2
-
3
- Within Gemini CLI, `packages/cli` is the frontend for users to send and receive
4
- prompts with the Gemini AI model and its associated tools. For a general
5
- overview of Gemini CLI, see the [main documentation page](../index.md).
6
-
7
- ## Basic features
8
-
9
- - **[Commands](./commands.md):** A reference for all built-in slash commands
10
- - **[Custom commands](./custom-commands.md):** Create your own commands and
11
- shortcuts for frequently used prompts.
12
- - **[Headless mode](./headless.md):** Use Gemini CLI programmatically for
13
- scripting and automation.
14
- - **[Model selection](./model.md):** Configure the Gemini AI model used by the
15
- CLI.
16
- - **[Settings](./settings.md):** Configure various aspects of the CLI's behavior
17
- and appearance.
18
- - **[Themes](./themes.md):** Customizing the CLI's appearance with different
19
- themes.
20
- - **[Keyboard shortcuts](./keyboard-shortcuts.md):** A reference for all
21
- keyboard shortcuts to improve your workflow.
22
- - **[Tutorials](./tutorials.md):** Step-by-step guides for common tasks.
23
-
24
- ## Advanced features
25
-
26
- - **[Plan mode (experimental)](./plan-mode.md):** Use a safe, read-only mode for
27
- planning complex changes.
28
- - **[Checkpointing](./checkpointing.md):** Automatically save and restore
29
- snapshots of your session and files.
30
- - **[Enterprise configuration](./enterprise.md):** Deploy and manage Gemini CLI
31
- in an enterprise environment.
32
- - **[Sandboxing](./sandbox.md):** Isolate tool execution in a secure,
33
- containerized environment.
34
- - **[Agent Skills](./skills.md):** Extend the CLI with specialized expertise and
35
- procedural workflows.
36
- - **[Telemetry](./telemetry.md):** Configure observability to monitor usage and
37
- performance.
38
- - **[Token caching](./token-caching.md):** Optimize API costs by caching tokens.
39
- - **[Trusted folders](./trusted-folders.md):** A security feature to control
40
- which projects can use the full capabilities of the CLI.
41
- - **[Ignoring files (.geminiignore)](./gemini-ignore.md):** Exclude specific
42
- files and directories from being accessed by tools.
43
- - **[Context files (GEMINI.md)](./gemini-md.md):** Provide persistent,
44
- hierarchical context to the model.
45
- - **[System prompt override](./system-prompt.md):** Replace the built‑in system
46
- instructions using `GEMINI_SYSTEM_MD`.
47
-
48
- ## Non-interactive mode
49
-
50
- Gemini CLI can be run in a non-interactive mode, which is useful for scripting
51
- and automation. In this mode, you pipe input to the CLI, it executes the
52
- command, and then it exits.
53
-
54
- The following example pipes a command to Gemini CLI from your terminal:
55
-
56
- ```bash
57
- echo "What is fine tuning?" | gemini
58
- ```
59
-
60
- You can also use the `--prompt` or `-p` flag:
61
-
62
- ```bash
63
- gemini -p "What is fine tuning?"
64
- ```
65
-
66
- For comprehensive documentation on headless usage, scripting, automation, and
67
- advanced examples, see the **[Headless mode](./headless.md)** guide.