next-ai-editor 0.2.5 → 1.0.0

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 (97) hide show
  1. package/README.md +2 -2
  2. package/dist/index.cjs +2108 -33
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.ts +187 -4
  5. package/dist/index.js +2108 -33
  6. package/dist/index.js.map +1 -1
  7. package/dist/next-ai-editor.css +489 -112
  8. package/package.json +4 -20
  9. package/dist/AIEditorProvider-CLgf1Vwa.cjs +0 -1488
  10. package/dist/AIEditorProvider-CLgf1Vwa.cjs.map +0 -1
  11. package/dist/AIEditorProvider-DWId5Qmv.js +0 -1489
  12. package/dist/AIEditorProvider-DWId5Qmv.js.map +0 -1
  13. package/dist/client/AIEditorProvider.d.ts +0 -21
  14. package/dist/client/AIEditorProvider.d.ts.map +0 -1
  15. package/dist/client/components/ChatPanel.d.ts +0 -18
  16. package/dist/client/components/ChatPanel.d.ts.map +0 -1
  17. package/dist/client/components/ControlPill.d.ts +0 -8
  18. package/dist/client/components/ControlPill.d.ts.map +0 -1
  19. package/dist/client/components/MessageItem.d.ts +0 -7
  20. package/dist/client/components/MessageItem.d.ts.map +0 -1
  21. package/dist/client/components/MessageList.d.ts +0 -7
  22. package/dist/client/components/MessageList.d.ts.map +0 -1
  23. package/dist/client/components/TaskHistoryPanel.d.ts +0 -10
  24. package/dist/client/components/TaskHistoryPanel.d.ts.map +0 -1
  25. package/dist/client/components/index.d.ts +0 -11
  26. package/dist/client/components/index.d.ts.map +0 -1
  27. package/dist/client/fiber-utils.d.ts +0 -35
  28. package/dist/client/fiber-utils.d.ts.map +0 -1
  29. package/dist/client/hooks/index.d.ts +0 -3
  30. package/dist/client/hooks/index.d.ts.map +0 -1
  31. package/dist/client/hooks/useChatStream.d.ts +0 -66
  32. package/dist/client/hooks/useChatStream.d.ts.map +0 -1
  33. package/dist/client/hooks/useHotReload.d.ts +0 -10
  34. package/dist/client/hooks/useHotReload.d.ts.map +0 -1
  35. package/dist/client/index.cjs +0 -1
  36. package/dist/client/index.d.ts +0 -6
  37. package/dist/client/index.d.ts.map +0 -1
  38. package/dist/client/index.js +0 -1
  39. package/dist/client/query-params.d.ts +0 -9
  40. package/dist/client/query-params.d.ts.map +0 -1
  41. package/dist/client.cjs +0 -12
  42. package/dist/client.cjs.map +0 -1
  43. package/dist/client.js +0 -12
  44. package/dist/client.js.map +0 -1
  45. package/dist/comments-2HX-AAwu.cjs +0 -1512
  46. package/dist/comments-2HX-AAwu.cjs.map +0 -1
  47. package/dist/comments-BYFEhf6K.js +0 -1495
  48. package/dist/comments-BYFEhf6K.js.map +0 -1
  49. package/dist/index.d.ts.map +0 -1
  50. package/dist/path-utils-Bai2xKx9.js +0 -36
  51. package/dist/path-utils-Bai2xKx9.js.map +0 -1
  52. package/dist/path-utils-DYzEWUGy.cjs +0 -35
  53. package/dist/path-utils-DYzEWUGy.cjs.map +0 -1
  54. package/dist/server/agent/sdk-client.d.ts +0 -54
  55. package/dist/server/agent/sdk-client.d.ts.map +0 -1
  56. package/dist/server/agent/session-store.d.ts +0 -101
  57. package/dist/server/agent/session-store.d.ts.map +0 -1
  58. package/dist/server/handlers/absolute-path.d.ts +0 -3
  59. package/dist/server/handlers/absolute-path.d.ts.map +0 -1
  60. package/dist/server/handlers/chat.d.ts +0 -6
  61. package/dist/server/handlers/chat.d.ts.map +0 -1
  62. package/dist/server/handlers/comments.d.ts +0 -10
  63. package/dist/server/handlers/comments.d.ts.map +0 -1
  64. package/dist/server/handlers/config.d.ts +0 -7
  65. package/dist/server/handlers/config.d.ts.map +0 -1
  66. package/dist/server/handlers/index.d.ts +0 -18
  67. package/dist/server/handlers/index.d.ts.map +0 -1
  68. package/dist/server/handlers/read.d.ts +0 -3
  69. package/dist/server/handlers/read.d.ts.map +0 -1
  70. package/dist/server/handlers/resolve.d.ts +0 -3
  71. package/dist/server/handlers/resolve.d.ts.map +0 -1
  72. package/dist/server/handlers/undo.d.ts +0 -3
  73. package/dist/server/handlers/undo.d.ts.map +0 -1
  74. package/dist/server/handlers/validate-session.d.ts +0 -3
  75. package/dist/server/handlers/validate-session.d.ts.map +0 -1
  76. package/dist/server/index.cjs +0 -1
  77. package/dist/server/index.d.ts +0 -11
  78. package/dist/server/index.d.ts.map +0 -1
  79. package/dist/server/index.js +0 -1
  80. package/dist/server/utils/ast.d.ts +0 -49
  81. package/dist/server/utils/ast.d.ts.map +0 -1
  82. package/dist/server/utils/file-system.d.ts +0 -24
  83. package/dist/server/utils/file-system.d.ts.map +0 -1
  84. package/dist/server/utils/source-map.d.ts +0 -39
  85. package/dist/server/utils/source-map.d.ts.map +0 -1
  86. package/dist/server.cjs +0 -28
  87. package/dist/server.cjs.map +0 -1
  88. package/dist/server.js +0 -28
  89. package/dist/server.js.map +0 -1
  90. package/dist/shared/comment-types.d.ts +0 -140
  91. package/dist/shared/comment-types.d.ts.map +0 -1
  92. package/dist/shared/path-utils.d.ts +0 -24
  93. package/dist/shared/path-utils.d.ts.map +0 -1
  94. package/dist/shared/storage.d.ts +0 -53
  95. package/dist/shared/storage.d.ts.map +0 -1
  96. package/dist/shared/types.d.ts +0 -74
  97. package/dist/shared/types.d.ts.map +0 -1
@@ -358,20 +358,54 @@
358
358
  align-items: center;
359
359
  justify-content: space-between;
360
360
  padding: 8px 4px;
361
- cursor: pointer;
362
361
  user-select: none;
363
362
  flex-shrink: 0;
363
+ gap: 8px;
364
+ }
365
+
366
+ .chat-panel-messages-header-left {
367
+ display: flex;
368
+ align-items: center;
369
+ justify-content: space-between;
370
+ flex: 1;
371
+ cursor: pointer;
364
372
  border-radius: 8px;
373
+ padding: 0 4px;
365
374
  }
366
375
 
367
- .chat-panel-messages-header:hover {
376
+ .chat-panel-messages-header-left:hover {
368
377
  background: rgba(0, 0, 0, 0.1);
369
378
  }
370
379
 
371
- .chat-panel.light .chat-panel-messages-header:hover {
380
+ .chat-panel.light .chat-panel-messages-header-left:hover {
372
381
  background: rgba(0, 0, 0, 0.05);
373
382
  }
374
383
 
384
+ .chat-panel-clear-button {
385
+ display: flex;
386
+ align-items: center;
387
+ justify-content: center;
388
+ width: 24px;
389
+ height: 24px;
390
+ border: none;
391
+ background: transparent;
392
+ border-radius: 6px;
393
+ color: #71717a;
394
+ cursor: pointer;
395
+ transition: all 0.15s;
396
+ flex-shrink: 0;
397
+ }
398
+
399
+ .chat-panel-clear-button:hover {
400
+ background: rgba(239, 68, 68, 0.15);
401
+ color: #ef4444;
402
+ }
403
+
404
+ .chat-panel.light .chat-panel-clear-button:hover {
405
+ background: rgba(239, 68, 68, 0.1);
406
+ color: #ef4444;
407
+ }
408
+
375
409
  .chat-panel-messages-title {
376
410
  font-size: 12px;
377
411
  font-weight: 600;
@@ -500,58 +534,6 @@
500
534
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
501
535
  }
502
536
 
503
- /* Context indicator (inline preview above input) */
504
- .context-indicator {
505
- display: flex;
506
- align-items: center;
507
- justify-content: space-between;
508
- gap: 8px;
509
- padding: 8px 12px;
510
- margin-bottom: 8px;
511
- background: rgba(99, 102, 241, 0.1);
512
- border: 1px solid rgba(99, 102, 241, 0.3);
513
- border-radius: 8px;
514
- font-size: 12px;
515
- color: #a5b4fc;
516
- animation: contextAppear 0.2s ease-out;
517
- }
518
-
519
- @keyframes contextAppear {
520
- from {
521
- opacity: 0;
522
- transform: translateY(-4px);
523
- }
524
- to {
525
- opacity: 1;
526
- transform: translateY(0);
527
- }
528
- }
529
-
530
- .context-text {
531
- flex: 1;
532
- white-space: nowrap;
533
- overflow: hidden;
534
- text-overflow: ellipsis;
535
- }
536
-
537
- .context-clear {
538
- display: flex;
539
- align-items: center;
540
- justify-content: center;
541
- background: none;
542
- border: none;
543
- color: #a5b4fc;
544
- cursor: pointer;
545
- padding: 2px;
546
- border-radius: 4px;
547
- transition: all 0.15s;
548
- }
549
-
550
- .context-clear:hover {
551
- background: rgba(99, 102, 241, 0.2);
552
- color: #ffffff;
553
- }
554
-
555
537
  /* Input row */
556
538
  .input-row {
557
539
  display: flex;
@@ -559,11 +541,6 @@
559
541
  align-items: flex-end;
560
542
  }
561
543
 
562
- .input-wrapper {
563
- position: relative;
564
- flex: 1;
565
- }
566
-
567
544
  .context-pills-container {
568
545
  display: flex;
569
546
  flex-wrap: wrap;
@@ -683,11 +660,13 @@
683
660
  background: linear-gradient(135deg, #71717a, #52525b);
684
661
  }
685
662
 
686
- .input-hint {
687
- margin-top: 8px;
688
- font-size: 11px;
689
- color: #71717a;
690
- text-align: center;
663
+ /* Empty chat panel state */
664
+ .chat-panel-empty-content {
665
+ flex: 1;
666
+ display: flex;
667
+ align-items: center;
668
+ justify-content: center;
669
+ min-height: 0;
691
670
  }
692
671
 
693
672
  /* Message List Empty State */
@@ -695,13 +674,13 @@
695
674
  display: flex;
696
675
  align-items: center;
697
676
  justify-content: center;
698
- height: 100%;
699
- min-height: 200px;
677
+ width: 100%;
700
678
  }
701
679
 
702
680
  .empty-state {
703
681
  text-align: center;
704
682
  color: #71717a;
683
+ padding: 20px;
705
684
  }
706
685
 
707
686
  .empty-icon {
@@ -745,100 +724,498 @@
745
724
  }
746
725
 
747
726
  .message-content {
748
- background: #3f3f46;
749
727
  padding: 10px 14px;
750
728
  border-radius: 12px;
751
729
  font-size: 14px;
752
730
  line-height: 1.5;
753
- color: #ffffff;
754
731
  max-width: 85%;
755
732
  white-space: pre-wrap;
756
733
  word-wrap: break-word;
757
734
  }
758
735
 
759
- .chat-panel.light .message-content {
760
- background: #3f3f46;
736
+ .message-user .message-content {
737
+ background: #6366f1;
761
738
  color: #ffffff;
762
739
  }
763
740
 
764
- .message-user .message-content {
765
- background: linear-gradient(135deg, #6366f1, #8b5cf6);
741
+ .chat-panel.light .message-user .message-content {
742
+ background: #818cf8;
766
743
  color: #ffffff;
767
744
  }
768
745
 
769
746
  .message-assistant .message-content {
770
- background: #3f3f46;
771
- color: #ffffff;
747
+ background: #27272a;
748
+ color: #e4e4e7;
772
749
  }
773
750
 
774
751
  .chat-panel.light .message-assistant .message-content {
775
- background: #3f3f46;
776
- color: #ffffff;
752
+ background: #f4f4f5;
753
+ color: #27272a;
777
754
  }
778
755
 
779
- /* Tool messages */
780
- .message-tool {
756
+ /* Task block - user message as header + agent steps */
757
+ .task-block {
781
758
  display: flex;
782
- align-items: center;
759
+ flex-direction: column;
783
760
  gap: 8px;
784
- padding: 8px 12px;
785
- background: rgba(168, 85, 247, 0.1);
786
- border-radius: 8px;
787
- font-size: 12px;
788
- color: #c4b5fd;
761
+ padding: 12px;
762
+ background: rgba(30, 30, 46, 0.6);
763
+ border: 1px solid rgba(255, 255, 255, 0.1);
764
+ border-radius: 12px;
765
+ margin-bottom: 12px;
789
766
  }
790
767
 
791
- .tool-icon {
792
- font-size: 14px;
768
+ .chat-panel.light .task-block {
769
+ background: rgba(255, 255, 255, 0.8);
770
+ border-color: rgba(0, 0, 0, 0.1);
771
+ }
772
+
773
+ .task-block-header {
774
+ display: flex;
775
+ align-items: flex-start;
776
+ justify-content: space-between;
777
+ gap: 12px;
778
+ padding-bottom: 8px;
779
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
793
780
  }
794
781
 
795
- .tool-name {
782
+ .chat-panel.light .task-block-header {
783
+ border-bottom-color: rgba(0, 0, 0, 0.1);
784
+ }
785
+
786
+ .task-block-title {
787
+ flex: 1;
788
+ font-size: 14px;
796
789
  font-weight: 500;
797
790
  color: #e4e4e7;
791
+ line-height: 1.5;
792
+ }
793
+
794
+ .chat-panel.light .task-block-title {
795
+ color: #18181b;
796
+ }
797
+
798
+ .task-block-title p {
799
+ margin: 0;
800
+ }
801
+
802
+ .task-block-undo {
803
+ display: flex;
804
+ align-items: center;
805
+ justify-content: center;
806
+ width: 28px;
807
+ height: 28px;
808
+ border: none;
809
+ background: rgba(255, 255, 255, 0.08);
810
+ border-radius: 6px;
811
+ color: #a1a1aa;
812
+ cursor: pointer;
813
+ transition: all 0.15s;
814
+ font-size: 16px;
815
+ flex-shrink: 0;
816
+ }
817
+
818
+ .task-block-undo:hover {
819
+ background: rgba(239, 68, 68, 0.2);
820
+ color: #ef4444;
798
821
  }
799
822
 
800
- .tool-description {
823
+ .chat-panel.light .task-block-undo {
824
+ background: rgba(0, 0, 0, 0.05);
801
825
  color: #71717a;
802
- font-size: 11px;
803
826
  }
804
827
 
805
- /* Streaming indicator */
806
- .message-streaming {
807
- opacity: 0.7;
828
+ .chat-panel.light .task-block-undo:hover {
829
+ background: rgba(239, 68, 68, 0.15);
830
+ color: #ef4444;
808
831
  }
809
832
 
810
- .streaming-indicator {
833
+ .task-block-steps {
811
834
  display: flex;
812
- gap: 4px;
813
- padding: 4px 0;
835
+ flex-direction: column;
836
+ gap: 2px;
814
837
  }
815
838
 
816
- .streaming-indicator .dot {
817
- width: 6px;
818
- height: 6px;
819
- background: #6366f1;
839
+ /* Task group - groups consecutive tool/status messages */
840
+ .task-group {
841
+ display: flex;
842
+ flex-direction: column;
843
+ gap: 2px;
844
+ padding: 8px 0;
845
+ }
846
+
847
+ .task-step {
848
+ display: flex;
849
+ align-items: center;
850
+ gap: 10px;
851
+ padding: 6px 12px;
852
+ font-size: 13px;
853
+ color: #a1a1aa;
854
+ transition: opacity 0.2s;
855
+ }
856
+
857
+ /* Main status messages - section headers */
858
+ .task-step.status {
859
+ font-size: 14px;
860
+ font-weight: 600;
861
+ color: #e4e4e7;
862
+ padding: 12px 12px 8px 12px;
863
+ margin-top: 8px;
864
+ }
865
+
866
+ .task-step.status:first-child {
867
+ margin-top: 0;
868
+ }
869
+
870
+ .task-step.status .task-step-indicator {
871
+ width: 16px;
872
+ height: 16px;
873
+ }
874
+
875
+ .task-step.status .task-checkmark {
876
+ font-size: 13px;
877
+ color: #10b981;
878
+ }
879
+
880
+ .task-step.status .task-spinner {
881
+ width: 12px;
882
+ height: 12px;
883
+ border-width: 2px;
884
+ border-color: #6366f1 transparent transparent transparent;
885
+ }
886
+
887
+ /* Subtasks (tool calls) - compact and inline */
888
+ .task-step.tool {
889
+ padding: 3px 12px 3px 38px;
890
+ font-size: 12px;
891
+ color: #71717a;
892
+ opacity: 0.9;
893
+ }
894
+
895
+ .task-step.tool .task-step-indicator {
896
+ width: 12px;
897
+ height: 12px;
898
+ }
899
+
900
+ .task-step.tool .task-checkmark {
901
+ font-size: 10px;
902
+ color: #6b7280;
903
+ }
904
+
905
+ .task-step.tool .task-spinner {
906
+ width: 10px;
907
+ height: 10px;
908
+ border-width: 1.5px;
909
+ border-color: #71717a transparent transparent transparent;
910
+ }
911
+
912
+ .task-step-target {
913
+ font-family: ui-monospace, monospace;
914
+ color: #e4e4e7;
915
+ font-weight: 500;
916
+ }
917
+
918
+ .chat-panel.light .task-step-target {
919
+ color: #18181b;
920
+ }
921
+
922
+ /* Completion messages - prominent */
923
+ .task-step.completion {
924
+ margin-top: 4px;
925
+ padding: 10px 12px;
926
+ font-size: 14px;
927
+ font-weight: 500;
928
+ color: #e4e4e7;
929
+ background: rgba(34, 197, 94, 0.1);
930
+ border-radius: 6px;
931
+ }
932
+
933
+ .task-step.complete {
934
+ opacity: 0.8;
935
+ }
936
+
937
+ .task-step.queued {
938
+ opacity: 0.5;
939
+ }
940
+
941
+ .task-step.current {
942
+ opacity: 1;
943
+ }
944
+
945
+ .task-step-indicator {
946
+ display: flex;
947
+ align-items: center;
948
+ justify-content: center;
949
+ width: 16px;
950
+ height: 16px;
951
+ flex-shrink: 0;
952
+ }
953
+
954
+ .task-spinner {
955
+ width: 12px;
956
+ height: 12px;
957
+ border: 2px solid rgba(99, 102, 241, 0.3);
958
+ border-top-color: #6366f1;
820
959
  border-radius: 50%;
821
- animation: streamingPulse 1.4s infinite;
960
+ animation: taskSpin 0.8s linear infinite;
961
+ }
962
+
963
+ @keyframes taskSpin {
964
+ to {
965
+ transform: rotate(360deg);
966
+ }
822
967
  }
823
968
 
824
- .streaming-indicator .dot:nth-child(2) {
825
- animation-delay: 0.2s;
969
+ .task-checkmark {
970
+ color: #22c55e;
971
+ font-size: 13px;
972
+ font-weight: 600;
826
973
  }
827
974
 
828
- .streaming-indicator .dot:nth-child(3) {
829
- animation-delay: 0.4s;
975
+ .task-queued {
976
+ color: #52525b;
977
+ font-size: 14px;
978
+ font-weight: 400;
830
979
  }
831
980
 
832
- @keyframes streamingPulse {
833
- 0%, 60%, 100% {
834
- opacity: 0.3;
835
- transform: scale(0.8);
981
+ .task-step-text {
982
+ flex: 1;
983
+ color: #e4e4e7;
984
+ }
985
+
986
+ .task-step.complete .task-step-text {
987
+ color: #a1a1aa;
988
+ }
989
+
990
+ .chat-panel.light .task-step.status {
991
+ color: #18181b;
992
+ }
993
+
994
+ .chat-panel.light .task-step.tool {
995
+ color: #71717a;
996
+ }
997
+
998
+ .chat-panel.light .task-step.completion {
999
+ color: #18181b;
1000
+ background: rgba(34, 197, 94, 0.15);
1001
+ }
1002
+
1003
+ .chat-panel.light .task-step-text {
1004
+ color: #27272a;
1005
+ }
1006
+
1007
+ .chat-panel.light .task-step.complete .task-step-text {
1008
+ color: #71717a;
1009
+ }
1010
+
1011
+ @keyframes spin {
1012
+ from {
1013
+ transform: rotate(0deg);
836
1014
  }
837
- 30% {
838
- opacity: 1;
839
- transform: scale(1);
1015
+ to {
1016
+ transform: rotate(360deg);
840
1017
  }
841
1018
  }
1019
+
1020
+ /* Todo List */
1021
+ .todo-list {
1022
+ margin-bottom: 16px;
1023
+ padding: 12px;
1024
+ background: rgba(99, 102, 241, 0.1);
1025
+ border: 1px solid rgba(99, 102, 241, 0.3);
1026
+ border-radius: 12px;
1027
+ }
1028
+
1029
+ .chat-panel.light .todo-list {
1030
+ background: rgba(99, 102, 241, 0.05);
1031
+ border-color: rgba(99, 102, 241, 0.2);
1032
+ }
1033
+
1034
+ .todo-list-header {
1035
+ font-size: 12px;
1036
+ font-weight: 600;
1037
+ color: #a5b4fc;
1038
+ text-transform: uppercase;
1039
+ letter-spacing: 0.5px;
1040
+ margin-bottom: 8px;
1041
+ }
1042
+
1043
+ .chat-panel.light .todo-list-header {
1044
+ color: #7c3aed;
1045
+ }
1046
+
1047
+ .todo-item {
1048
+ display: flex;
1049
+ align-items: center;
1050
+ gap: 10px;
1051
+ padding: 6px 8px;
1052
+ font-size: 13px;
1053
+ color: #e4e4e7;
1054
+ transition: opacity 0.2s;
1055
+ }
1056
+
1057
+ .chat-panel.light .todo-item {
1058
+ color: #27272a;
1059
+ }
1060
+
1061
+ .todo-item.todo-completed {
1062
+ opacity: 0.7;
1063
+ }
1064
+
1065
+ .todo-indicator {
1066
+ display: flex;
1067
+ align-items: center;
1068
+ justify-content: center;
1069
+ width: 16px;
1070
+ height: 16px;
1071
+ flex-shrink: 0;
1072
+ }
1073
+
1074
+ .todo-checkmark {
1075
+ color: #22c55e;
1076
+ font-size: 13px;
1077
+ font-weight: 600;
1078
+ }
1079
+
1080
+ .todo-spinner {
1081
+ width: 12px;
1082
+ height: 12px;
1083
+ border: 2px solid rgba(99, 102, 241, 0.3);
1084
+ border-top-color: #6366f1;
1085
+ border-radius: 50%;
1086
+ animation: taskSpin 0.8s linear infinite;
1087
+ }
1088
+
1089
+ .todo-pending {
1090
+ color: #71717a;
1091
+ font-size: 14px;
1092
+ font-weight: 400;
1093
+ }
1094
+
1095
+ .todo-text {
1096
+ flex: 1;
1097
+ color: #e4e4e7;
1098
+ }
1099
+
1100
+ .chat-panel.light .todo-text {
1101
+ color: #27272a;
1102
+ }
1103
+
1104
+ .todo-item.todo-completed .todo-text {
1105
+ color: #a1a1aa;
1106
+ }
1107
+
1108
+ .chat-panel.light .todo-item.todo-completed .todo-text {
1109
+ color: #71717a;
1110
+ }
1111
+
1112
+ /* Phase grouping (status + its tool calls) */
1113
+ .phase-item {
1114
+ display: flex;
1115
+ flex-direction: column;
1116
+ gap: 4px;
1117
+ }
1118
+
1119
+ /* Status message with dropdown */
1120
+ .task-step.has-dropdown {
1121
+ cursor: pointer;
1122
+ user-select: none;
1123
+ transition: background 0.15s;
1124
+ border-radius: 6px;
1125
+ margin: 0 -4px;
1126
+ padding-left: 16px;
1127
+ padding-right: 16px;
1128
+ }
1129
+
1130
+ .task-step.has-dropdown:hover {
1131
+ background: rgba(255, 255, 255, 0.05);
1132
+ }
1133
+
1134
+ .chat-panel.light .task-step.has-dropdown:hover {
1135
+ background: rgba(0, 0, 0, 0.03);
1136
+ }
1137
+
1138
+ .task-step-elapsed {
1139
+ font-size: 11px;
1140
+ color: #71717a;
1141
+ opacity: 0.6;
1142
+ font-weight: 400;
1143
+ margin-left: 6px;
1144
+ }
1145
+
1146
+ .task-step-dropdown-icon {
1147
+ margin-left: auto;
1148
+ font-size: 10px;
1149
+ color: #71717a;
1150
+ opacity: 0.7;
1151
+ transition: opacity 0.15s;
1152
+ }
1153
+
1154
+ .task-step.has-dropdown:hover .task-step-dropdown-icon {
1155
+ opacity: 1;
1156
+ }
1157
+
1158
+ /* Expanded tool details */
1159
+ .task-step-details {
1160
+ display: flex;
1161
+ flex-direction: column;
1162
+ gap: 2px;
1163
+ margin-left: 26px;
1164
+ margin-top: 4px;
1165
+ padding-left: 12px;
1166
+ border-left: 2px solid rgba(255, 255, 255, 0.1);
1167
+ }
1168
+
1169
+ .chat-panel.light .task-step-details {
1170
+ border-left-color: rgba(0, 0, 0, 0.1);
1171
+ }
1172
+
1173
+ .task-step-detail {
1174
+ display: flex;
1175
+ align-items: center;
1176
+ gap: 10px;
1177
+ padding: 3px 8px;
1178
+ font-size: 12px;
1179
+ color: #71717a;
1180
+ transition: opacity 0.2s;
1181
+ }
1182
+
1183
+ .task-step-detail .task-step-indicator {
1184
+ width: 12px;
1185
+ height: 12px;
1186
+ }
1187
+
1188
+ .task-step-detail .task-checkmark {
1189
+ font-size: 10px;
1190
+ color: #6b7280;
1191
+ }
1192
+
1193
+ .task-step-detail .task-spinner {
1194
+ width: 10px;
1195
+ height: 10px;
1196
+ border-width: 1.5px;
1197
+ border-color: #71717a transparent transparent transparent;
1198
+ }
1199
+
1200
+ .task-step-detail.complete {
1201
+ opacity: 0.7;
1202
+ }
1203
+
1204
+ .task-step-detail.executing {
1205
+ opacity: 1;
1206
+ }
1207
+
1208
+ .task-step-detail.executing .task-step-text {
1209
+ color: #a1a1aa;
1210
+ }
1211
+
1212
+ .chat-panel.light .task-step-detail.executing .task-step-text {
1213
+ color: #52525b;
1214
+ }
1215
+
1216
+ .task-step-detail.queued {
1217
+ opacity: 0.5;
1218
+ }
842
1219
  /* Control Pill - Bottom chat toggle */
843
1220
  .control-pill {
844
1221
  color-scheme: light;