@tutti-os/agent-gui 0.0.48 → 0.0.50

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 (60) hide show
  1. package/dist/agent-conversation/index.d.ts +5 -3
  2. package/dist/agent-conversation/index.js +6 -6
  3. package/dist/agent-message-center/index.d.ts +1 -1
  4. package/dist/agent-message-center/index.js +8 -8
  5. package/dist/{agentConversationVM-DSXrFL9v.d.ts → agentConversationVM-Qbz9GBwR.d.ts} +25 -0
  6. package/dist/{agentGuiNodeTypes-Bp1G8pOj.d.ts → agentGuiNodeTypes-wzOITHRW.d.ts} +1 -1
  7. package/dist/app/renderer/agentactivity.css +466 -85
  8. package/dist/{chunk-2RYZ4EBF.js → chunk-5Y3PC7HP.js} +9 -4
  9. package/dist/chunk-5Y3PC7HP.js.map +1 -0
  10. package/dist/{chunk-U6JWW45G.js → chunk-66EQ6EQO.js} +1 -1
  11. package/dist/chunk-66EQ6EQO.js.map +1 -0
  12. package/dist/{chunk-7W3VWU5R.js → chunk-ARCM7YB2.js} +2 -2
  13. package/dist/{chunk-RNIY43TA.js → chunk-BQVYICR7.js} +5 -5
  14. package/dist/{chunk-ZVKRNEOF.js → chunk-DPG2J7N5.js} +2 -2
  15. package/dist/{chunk-VGDPBC6W.js → chunk-FS26J46N.js} +5 -5
  16. package/dist/{chunk-OB43QOMC.js → chunk-FYVVHRLZ.js} +2 -2
  17. package/dist/{chunk-EUOGIKT7.js → chunk-HDBKB5RA.js} +2 -2
  18. package/dist/{chunk-R6GOICRO.js → chunk-OBFDA7RG.js} +69 -10
  19. package/dist/chunk-OBFDA7RG.js.map +1 -0
  20. package/dist/{chunk-LWMC2YA3.js → chunk-RPXRNKU5.js} +1793 -599
  21. package/dist/chunk-RPXRNKU5.js.map +1 -0
  22. package/dist/{chunk-SD56WDSC.js → chunk-TG3ZXLPM.js} +42 -1
  23. package/dist/chunk-TG3ZXLPM.js.map +1 -0
  24. package/dist/{chunk-OYQZRLJQ.js → chunk-UUY5VEK4.js} +2 -2
  25. package/dist/{chunk-6YN7HQL5.js → chunk-VKP5ZW5O.js} +5 -3
  26. package/dist/{chunk-6YN7HQL5.js.map → chunk-VKP5ZW5O.js.map} +1 -1
  27. package/dist/{chunk-N6HRVMIS.js → chunk-Y7ZVTWMZ.js} +2 -2
  28. package/dist/{chunk-NETHPCSA.js → chunk-ZTSS2NU2.js} +23 -1
  29. package/dist/chunk-ZTSS2NU2.js.map +1 -0
  30. package/dist/context-mention-palette/index.js +7 -7
  31. package/dist/i18n/index.d.ts +22 -0
  32. package/dist/i18n/index.js +2 -2
  33. package/dist/index.d.ts +50 -3
  34. package/dist/index.js +911 -818
  35. package/dist/index.js.map +1 -1
  36. package/dist/plan-decision-ops.d.ts +1 -1
  37. package/dist/queued-prompt-runtime.d.ts +3 -2
  38. package/dist/queued-prompt-runtime.js +1 -1
  39. package/dist/workbench/contribution.d.ts +5 -1
  40. package/dist/workbench/contribution.js +4 -2
  41. package/dist/workbench/index.js +5 -5
  42. package/dist/workbench/launch.d.ts +26 -1
  43. package/dist/workbench/launch.js +13 -3
  44. package/dist/workbench/sessionTitle.js +3 -3
  45. package/dist/workspace-agent-generated-files.js +3 -3
  46. package/package.json +12 -12
  47. package/dist/chunk-2RYZ4EBF.js.map +0 -1
  48. package/dist/chunk-LWMC2YA3.js.map +0 -1
  49. package/dist/chunk-NETHPCSA.js.map +0 -1
  50. package/dist/chunk-R6GOICRO.js.map +0 -1
  51. package/dist/chunk-SD56WDSC.js.map +0 -1
  52. package/dist/chunk-U6JWW45G.js.map +0 -1
  53. /package/dist/{chunk-7W3VWU5R.js.map → chunk-ARCM7YB2.js.map} +0 -0
  54. /package/dist/{chunk-RNIY43TA.js.map → chunk-BQVYICR7.js.map} +0 -0
  55. /package/dist/{chunk-ZVKRNEOF.js.map → chunk-DPG2J7N5.js.map} +0 -0
  56. /package/dist/{chunk-VGDPBC6W.js.map → chunk-FS26J46N.js.map} +0 -0
  57. /package/dist/{chunk-OB43QOMC.js.map → chunk-FYVVHRLZ.js.map} +0 -0
  58. /package/dist/{chunk-EUOGIKT7.js.map → chunk-HDBKB5RA.js.map} +0 -0
  59. /package/dist/{chunk-OYQZRLJQ.js.map → chunk-UUY5VEK4.js.map} +0 -0
  60. /package/dist/{chunk-N6HRVMIS.js.map → chunk-Y7ZVTWMZ.js.map} +0 -0
@@ -793,7 +793,7 @@ aside.workspace-agents-status-panel
793
793
  display: flex;
794
794
  flex: 1 1 auto;
795
795
  flex-direction: column;
796
- gap: 12px;
796
+ gap: 8px;
797
797
  min-height: 0;
798
798
  }
799
799
 
@@ -1015,7 +1015,7 @@ aside.workspace-agents-status-panel
1015
1015
 
1016
1016
  .workspace-agents-status-panel__skeleton-line--title {
1017
1017
  width: 82%;
1018
- height: 16px;
1018
+ height: 18px;
1019
1019
  }
1020
1020
 
1021
1021
  .workspace-agents-status-panel__skeleton-line--summary {
@@ -1991,6 +1991,122 @@ aside.workspace-agents-status-panel
1991
1991
  color: var(--text-tertiary);
1992
1992
  }
1993
1993
 
1994
+ .workspace-agents-status-panel__detail-subagents {
1995
+ display: flex;
1996
+ flex-direction: column;
1997
+ gap: 8px;
1998
+ width: 100%;
1999
+ min-width: 0;
2000
+ }
2001
+
2002
+ .workspace-agents-status-panel__detail-subagent-card {
2003
+ min-width: 0;
2004
+ border: 1px solid color-mix(in srgb, var(--text-tertiary) 24%, transparent);
2005
+ border-radius: 6px;
2006
+ background: color-mix(in srgb, var(--text-tertiary) 5%, transparent);
2007
+ overflow: hidden;
2008
+ }
2009
+
2010
+ .workspace-agents-status-panel__detail-subagent-header {
2011
+ display: grid;
2012
+ grid-template-columns: 12px 8px minmax(0, 1fr) auto;
2013
+ align-items: center;
2014
+ gap: 7px;
2015
+ min-width: 0;
2016
+ padding: 8px 9px;
2017
+ cursor: pointer;
2018
+ list-style: none;
2019
+ font-size: 11px;
2020
+ line-height: 1.45;
2021
+ }
2022
+
2023
+ .workspace-agents-status-panel__detail-subagent-header::-webkit-details-marker {
2024
+ display: none;
2025
+ }
2026
+
2027
+ .workspace-agents-status-panel__detail-subagent-chevron {
2028
+ width: 6px;
2029
+ height: 6px;
2030
+ border-right: 1.5px solid var(--text-tertiary);
2031
+ border-bottom: 1.5px solid var(--text-tertiary);
2032
+ transform: rotate(-45deg);
2033
+ transition: transform 120ms ease;
2034
+ }
2035
+
2036
+ .workspace-agents-status-panel__detail-subagent-card[open]
2037
+ .workspace-agents-status-panel__detail-subagent-chevron {
2038
+ transform: rotate(45deg);
2039
+ }
2040
+
2041
+ .workspace-agents-status-panel__detail-subagent-status {
2042
+ flex: none;
2043
+ align-self: center;
2044
+ width: 7px;
2045
+ height: 7px;
2046
+ border-radius: 50%;
2047
+ background: var(--text-tertiary);
2048
+ }
2049
+
2050
+ .workspace-agents-status-panel__detail-subagent-status--running {
2051
+ background: var(--state-success, #22c55e);
2052
+ animation: workspace-agents-subagent-pulse 1.6s ease-in-out infinite;
2053
+ }
2054
+
2055
+ .workspace-agents-status-panel__detail-subagent-status--completed {
2056
+ background: var(--state-success, #22c55e);
2057
+ }
2058
+
2059
+ .workspace-agents-status-panel__detail-subagent-status--failed {
2060
+ background: var(--state-danger);
2061
+ }
2062
+
2063
+ .workspace-agents-status-panel__detail-subagent-status--canceled {
2064
+ background: var(--text-tertiary);
2065
+ }
2066
+
2067
+ .workspace-agents-status-panel__detail-subagent-title {
2068
+ min-width: 0;
2069
+ overflow: hidden;
2070
+ color: var(--text-primary);
2071
+ font-weight: 650;
2072
+ white-space: nowrap;
2073
+ text-overflow: ellipsis;
2074
+ }
2075
+
2076
+ .workspace-agents-status-panel__detail-subagent-meta {
2077
+ flex: none;
2078
+ color: var(--text-tertiary);
2079
+ font-weight: 600;
2080
+ white-space: nowrap;
2081
+ }
2082
+
2083
+ .workspace-agents-status-panel__detail-subagent-body {
2084
+ display: flex;
2085
+ flex-direction: column;
2086
+ gap: 7px;
2087
+ min-width: 0;
2088
+ padding: 0 9px 9px 27px;
2089
+ }
2090
+
2091
+ .workspace-agents-status-panel__detail-subagent-activity {
2092
+ min-width: 0;
2093
+ color: var(--text-tertiary);
2094
+ font-size: 11px;
2095
+ line-height: 1.45;
2096
+ overflow-wrap: anywhere;
2097
+ }
2098
+
2099
+ @keyframes workspace-agents-subagent-pulse {
2100
+ 0%,
2101
+ 100% {
2102
+ opacity: 1;
2103
+ }
2104
+
2105
+ 50% {
2106
+ opacity: 0.35;
2107
+ }
2108
+ }
2109
+
1994
2110
  .workspace-agents-status-panel__detail-tool-bullets {
1995
2111
  display: flex;
1996
2112
  flex-direction: column;
@@ -2462,8 +2578,8 @@ aside.workspace-agents-status-panel
2462
2578
  .agent-gui-node__empty-hero-body
2463
2579
  > .agent-gui-chrome__session-chrome
2464
2580
  > .agent-gui-chrome__card {
2465
- margin-right: 24px;
2466
- margin-left: 24px;
2581
+ margin-right: 12px;
2582
+ margin-left: 12px;
2467
2583
  }
2468
2584
 
2469
2585
  .agent-gui-node__empty-hero-body
@@ -2526,7 +2642,7 @@ aside.workspace-agents-status-panel
2526
2642
  gap: 8px;
2527
2643
  border: 1px solid var(--agent-gui-border-subtle, var(--line-2));
2528
2644
  border-radius: 12px;
2529
- padding: 16px;
2645
+ padding: 12px;
2530
2646
  background: var(--agent-gui-surface-strong, var(--background-panel));
2531
2647
  }
2532
2648
 
@@ -2539,24 +2655,19 @@ aside.workspace-agents-status-panel
2539
2655
  animation: agent-gui-chrome-card-enter 260ms
2540
2656
  var(--agent-gui-chrome-card-spring);
2541
2657
  box-sizing: border-box;
2542
- height: var(--agent-gui-chrome-card-collapsed-height, 36px);
2658
+ height: auto;
2659
+ min-height: 36px;
2543
2660
  overflow: hidden;
2544
2661
  transform: translateY(0) scaleY(1);
2545
2662
  transform-origin: bottom center;
2546
2663
  transition:
2547
- height 300ms var(--agent-gui-chrome-card-spring),
2548
- padding-top 260ms var(--agent-gui-chrome-card-spring),
2549
- padding-bottom 260ms var(--agent-gui-chrome-card-spring),
2550
2664
  border-radius 220ms cubic-bezier(0.16, 1, 0.3, 1),
2551
2665
  transform 280ms var(--agent-gui-chrome-card-spring);
2552
- will-change: height, transform;
2666
+ will-change: transform;
2553
2667
  }
2554
2668
 
2555
2669
  @keyframes agent-gui-chrome-card-enter {
2556
2670
  from {
2557
- height: 0;
2558
- padding-top: 0;
2559
- padding-bottom: 0;
2560
2671
  opacity: 0;
2561
2672
  transform: translateY(6px) scaleY(0.96);
2562
2673
  }
@@ -2579,30 +2690,15 @@ aside.workspace-agents-status-panel
2579
2690
  grid-template-columns: minmax(0, 1fr) auto;
2580
2691
  align-items: center;
2581
2692
  min-height: 36px;
2582
- padding: 4px 16px;
2583
- cursor: pointer;
2693
+ padding: 6px 16px;
2694
+ cursor: default;
2584
2695
  }
2585
2696
 
2586
2697
  .agent-gui-chrome__card--warning .agent-gui-chrome__icon,
2587
- .agent-gui-chrome__card--warning .agent-gui-chrome__message,
2588
- .agent-gui-chrome__card--warning .agent-gui-chrome__expand-cue {
2698
+ .agent-gui-chrome__card--warning .agent-gui-chrome__message {
2589
2699
  color: var(--agent-gui-warning, var(--cove-label-orange));
2590
2700
  }
2591
2701
 
2592
- .agent-gui-chrome__card[data-expandable="false"] {
2593
- cursor: default;
2594
- }
2595
-
2596
- .agent-gui-chrome__card--warning[data-expanded="true"],
2597
- .agent-gui-chrome__card--danger[data-expanded="true"],
2598
- .agent-gui-chrome__card--muted[data-expanded="true"],
2599
- .agent-gui-chrome__card--connecting[data-expanded="true"] {
2600
- height: var(--agent-gui-chrome-card-expanded-height, 220px);
2601
- align-items: start;
2602
- padding-top: 8px;
2603
- padding-bottom: 8px;
2604
- }
2605
-
2606
2702
  .agent-gui-chrome__card--warning .agent-gui-chrome__actions button,
2607
2703
  .agent-gui-chrome__card--warning .agent-gui-chrome__danger-ghost-button {
2608
2704
  color: var(--agent-gui-warning, var(--cove-label-orange));
@@ -2641,9 +2737,9 @@ aside.workspace-agents-status-panel
2641
2737
  border-bottom-left-radius: 0;
2642
2738
  align-items: center;
2643
2739
  min-height: 36px;
2644
- padding: 4px 16px;
2740
+ padding: 6px 16px;
2645
2741
  background: var(--transparency-block);
2646
- cursor: pointer;
2742
+ cursor: default;
2647
2743
  }
2648
2744
 
2649
2745
  .agent-gui-chrome__card--connecting {
@@ -2656,8 +2752,8 @@ aside.workspace-agents-status-panel
2656
2752
  color: var(--accent);
2657
2753
  align-items: center;
2658
2754
  min-height: 36px;
2659
- padding: 4px 16px;
2660
- cursor: pointer;
2755
+ padding: 6px 16px;
2756
+ cursor: default;
2661
2757
  background:
2662
2758
  linear-gradient(
2663
2759
  color-mix(in srgb, var(--accent) 8%, transparent),
@@ -2692,21 +2788,16 @@ aside.workspace-agents-status-panel
2692
2788
  grid-template-columns: minmax(0, 1fr) auto;
2693
2789
  align-items: center;
2694
2790
  min-height: 36px;
2695
- padding: 4px 16px;
2696
- cursor: pointer;
2791
+ padding: 6px 16px;
2792
+ cursor: default;
2697
2793
  }
2698
2794
 
2699
2795
  .agent-gui-chrome__card[data-has-inline-actions="true"] {
2700
2796
  padding-right: 4px;
2701
2797
  }
2702
2798
 
2703
- .agent-gui-chrome__card[data-has-inline-actions="true"][data-expanded="true"] {
2704
- padding-right: 4px;
2705
- }
2706
-
2707
2799
  .agent-gui-chrome__card--danger .agent-gui-chrome__icon,
2708
- .agent-gui-chrome__card--danger .agent-gui-chrome__message,
2709
- .agent-gui-chrome__card--danger .agent-gui-chrome__expand-cue {
2800
+ .agent-gui-chrome__card--danger .agent-gui-chrome__message {
2710
2801
  color: var(--status-danger, var(--state-danger));
2711
2802
  }
2712
2803
 
@@ -2743,41 +2834,6 @@ aside.workspace-agents-status-panel
2743
2834
  color: currentColor;
2744
2835
  }
2745
2836
 
2746
- .agent-gui-chrome__expand-cue {
2747
- flex: 0 0 auto;
2748
- width: 16px;
2749
- height: 16px;
2750
- color: currentColor;
2751
- opacity: 0;
2752
- transform: translateY(1px) rotate(-90deg);
2753
- transform-origin: center;
2754
- transition:
2755
- opacity 120ms ease,
2756
- transform 260ms
2757
- var(--agent-gui-chrome-card-spring, cubic-bezier(0.22, 1.18, 0.36, 1));
2758
- will-change: transform;
2759
- }
2760
-
2761
- .agent-gui-chrome__expand-cue[data-visible="false"] {
2762
- visibility: hidden;
2763
- }
2764
-
2765
- .agent-gui-chrome__card[data-expandable="true"]:hover
2766
- .agent-gui-chrome__expand-cue[data-visible="true"],
2767
- .agent-gui-chrome__card[data-expandable="true"]:focus-visible
2768
- .agent-gui-chrome__expand-cue[data-visible="true"],
2769
- .agent-gui-chrome__card[data-expandable="true"]:focus-within
2770
- .agent-gui-chrome__expand-cue[data-visible="true"],
2771
- .agent-gui-chrome__card[data-expanded="true"]
2772
- .agent-gui-chrome__expand-cue[data-visible="true"] {
2773
- opacity: 1;
2774
- }
2775
-
2776
- .agent-gui-chrome__card[data-expanded="true"]
2777
- .agent-gui-chrome__expand-cue[data-visible="true"] {
2778
- transform: translateY(1px) rotate(0deg);
2779
- }
2780
-
2781
2837
  .agent-gui-chrome__title {
2782
2838
  color: var(--agent-gui-text-secondary, var(--text-secondary));
2783
2839
  font-size: 13px;
@@ -2797,6 +2853,31 @@ aside.workspace-agents-status-panel
2797
2853
  line-height: 20px;
2798
2854
  }
2799
2855
 
2856
+ .agent-gui-chrome__card--warning
2857
+ .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
2858
+ .agent-gui-chrome__card--danger
2859
+ .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
2860
+ .agent-gui-chrome__card--muted
2861
+ .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
2862
+ .agent-gui-chrome__card--connecting
2863
+ .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message) {
2864
+ display: -webkit-box;
2865
+ overflow: hidden;
2866
+ text-overflow: clip;
2867
+ white-space: normal;
2868
+ -webkit-box-orient: vertical;
2869
+ -webkit-line-clamp: 2;
2870
+ }
2871
+
2872
+ .agent-gui-chrome__message-tooltip {
2873
+ max-width: min(560px, calc(100vw - 32px));
2874
+ max-height: min(40vh, 260px);
2875
+ overflow: auto;
2876
+ overflow-wrap: anywhere;
2877
+ text-align: left;
2878
+ white-space: pre-wrap;
2879
+ }
2880
+
2800
2881
  .agent-gui-chrome__notice-message {
2801
2882
  display: flex;
2802
2883
  align-items: center;
@@ -2847,12 +2928,6 @@ aside.workspace-agents-status-panel
2847
2928
  flex: 0 0 auto;
2848
2929
  }
2849
2930
 
2850
- .agent-gui-chrome__card[data-expanded="true"] .agent-gui-chrome__message {
2851
- overflow: visible;
2852
- text-overflow: clip;
2853
- white-space: normal;
2854
- }
2855
-
2856
2931
  .agent-gui-chrome__actions,
2857
2932
  .agent-gui-chrome__meta-row {
2858
2933
  display: flex;
@@ -3392,6 +3467,21 @@ aside.workspace-agents-status-panel
3392
3467
  justify-items: end;
3393
3468
  }
3394
3469
 
3470
+ .agent-gui-conversation__user-image-grid {
3471
+ display: grid;
3472
+ gap: 8px;
3473
+ justify-self: end;
3474
+ }
3475
+
3476
+ .agent-gui-conversation__user-image-thumbnail {
3477
+ box-sizing: border-box;
3478
+ max-height: 80px;
3479
+ min-width: 0;
3480
+ overflow: hidden;
3481
+ border: 1px solid var(--line-2);
3482
+ border-radius: 8px;
3483
+ }
3484
+
3395
3485
  .agent-gui-conversation__assistant-message-flow {
3396
3486
  gap: 0;
3397
3487
  }
@@ -5236,7 +5326,7 @@ button.agent-gui-node__conversation-section-toggle:hover
5236
5326
  }
5237
5327
 
5238
5328
  .agent-gui-node__conversation-list-skeleton-rib {
5239
- height: 8px;
5329
+ height: 12px;
5240
5330
  transform-origin: left center;
5241
5331
  }
5242
5332
 
@@ -5677,6 +5767,9 @@ button.agent-gui-node__conversation-section-toggle:hover
5677
5767
  }
5678
5768
 
5679
5769
  .agent-gui-node__timeline {
5770
+ --agent-gui-message-locator-inline-offset: var(--agent-gui-detail-padding-x);
5771
+
5772
+ position: relative;
5680
5773
  display: grid;
5681
5774
  flex: 1 1 auto;
5682
5775
  align-content: start;
@@ -5698,6 +5791,211 @@ button.agent-gui-node__conversation-section-toggle:hover
5698
5791
  transform-origin: top center;
5699
5792
  }
5700
5793
 
5794
+ .agent-gui-message-locator {
5795
+ --agent-message-locator-dot-size: 6px;
5796
+ --agent-message-locator-hit-size: 18px;
5797
+ --agent-message-locator-center-offset: 10px;
5798
+ --agent-message-locator-visible-height: 100vh;
5799
+
5800
+ position: sticky;
5801
+ top: max(
5802
+ 0px,
5803
+ calc(
5804
+ (
5805
+ var(--agent-message-locator-visible-height) -
5806
+ var(--agent-message-locator-height)
5807
+ ) /
5808
+ 2
5809
+ )
5810
+ );
5811
+ right: 0;
5812
+ z-index: 7;
5813
+ justify-self: stretch;
5814
+ width: calc(100% + var(--agent-gui-message-locator-inline-offset));
5815
+ height: var(--agent-message-locator-height);
5816
+ margin-right: calc(-1 * var(--agent-gui-message-locator-inline-offset));
5817
+ margin-bottom: calc(-1 * var(--agent-message-locator-height));
5818
+ pointer-events: none;
5819
+ }
5820
+
5821
+ .agent-gui-message-locator::before {
5822
+ position: absolute;
5823
+ top: 0;
5824
+ right: calc(
5825
+ var(--agent-message-locator-center-offset) -
5826
+ var(--agent-message-locator-hit-size) / 2
5827
+ );
5828
+ width: var(--agent-message-locator-hit-size);
5829
+ height: 100%;
5830
+ content: "";
5831
+ pointer-events: auto;
5832
+ }
5833
+
5834
+ .agent-gui-message-locator__track-segment {
5835
+ position: absolute;
5836
+ top: var(--agent-message-locator-segment-position);
5837
+ right: var(--agent-message-locator-center-offset);
5838
+ width: 1px;
5839
+ height: 8px;
5840
+ transform: translateX(50%);
5841
+ background: color-mix(
5842
+ in srgb,
5843
+ var(--line-2, var(--tutti-line-2)) 82%,
5844
+ transparent
5845
+ );
5846
+ }
5847
+
5848
+ .agent-gui-message-locator__tick {
5849
+ position: absolute;
5850
+ top: var(--agent-message-locator-position);
5851
+ right: calc(
5852
+ var(--agent-message-locator-center-offset) -
5853
+ var(--agent-message-locator-hit-size) / 2
5854
+ );
5855
+ display: grid;
5856
+ width: var(--agent-message-locator-hit-size);
5857
+ height: var(--agent-message-locator-hit-size);
5858
+ padding: 0;
5859
+ border: 0;
5860
+ place-items: center;
5861
+ background: transparent;
5862
+ color: inherit;
5863
+ transform: translateY(-50%);
5864
+ cursor: pointer;
5865
+ pointer-events: auto;
5866
+ }
5867
+
5868
+ .agent-gui-message-locator__dot {
5869
+ box-sizing: border-box;
5870
+ width: var(--agent-message-locator-dot-size);
5871
+ height: var(--agent-message-locator-dot-size);
5872
+ border: 0 solid transparent;
5873
+ border-radius: 999px;
5874
+ background: color-mix(
5875
+ in srgb,
5876
+ var(--text-tertiary, var(--tutti-text-tertiary)) 62%,
5877
+ transparent
5878
+ );
5879
+ transition:
5880
+ background 140ms ease,
5881
+ border-color 140ms ease,
5882
+ transform 140ms ease;
5883
+ }
5884
+
5885
+ .agent-gui-message-locator__tick:hover .agent-gui-message-locator__dot,
5886
+ .agent-gui-message-locator__tick:focus-visible .agent-gui-message-locator__dot,
5887
+ .agent-gui-message-locator__tick[data-selected="true"]
5888
+ .agent-gui-message-locator__dot {
5889
+ transform: scale(1.6667);
5890
+ }
5891
+
5892
+ .agent-gui-message-locator__tick[data-selected="true"]
5893
+ .agent-gui-message-locator__dot {
5894
+ border-width: 2px;
5895
+ border-color: var(--text-secondary, var(--tutti-text-secondary));
5896
+ background: transparent;
5897
+ }
5898
+
5899
+ .agent-gui-message-locator__tick:hover .agent-gui-message-locator__dot,
5900
+ .agent-gui-message-locator__tick:focus-visible .agent-gui-message-locator__dot {
5901
+ border-width: 2px;
5902
+ border-color: var(--text-primary, var(--tutti-text-primary));
5903
+ background: transparent;
5904
+ }
5905
+
5906
+ .agent-gui-message-locator__tick[data-unread-agent-response="true"]
5907
+ .agent-gui-message-locator__dot {
5908
+ background: var(--tutti-purple);
5909
+ }
5910
+
5911
+ .agent-gui-message-locator__tick[data-unread-agent-response="true"]:hover
5912
+ .agent-gui-message-locator__dot,
5913
+ .agent-gui-message-locator__tick[data-unread-agent-response="true"]:focus-visible
5914
+ .agent-gui-message-locator__dot {
5915
+ border-width: 2px;
5916
+ border-color: var(--tutti-purple);
5917
+ background: transparent;
5918
+ }
5919
+
5920
+ .agent-gui-message-locator__panel {
5921
+ position: absolute;
5922
+ top: 50%;
5923
+ right: 22px;
5924
+ display: grid;
5925
+ width: min(360px, calc(100vw - 112px));
5926
+ max-width: max-content;
5927
+ gap: 12px;
5928
+ padding: 16px;
5929
+ border: 1px solid
5930
+ color-mix(in srgb, var(--line-2, var(--tutti-line-2)) 72%, transparent);
5931
+ border-radius: 8px;
5932
+ background: var(
5933
+ --background-fronted,
5934
+ var(--surface-1, var(--tutti-surface-1))
5935
+ );
5936
+ box-shadow: var(--shadow-panel);
5937
+ color: var(--text-primary, var(--tutti-text-primary));
5938
+ opacity: 0;
5939
+ transform: translateY(-50%) translateX(4px);
5940
+ transition:
5941
+ opacity 140ms ease,
5942
+ transform 140ms ease;
5943
+ pointer-events: none;
5944
+ }
5945
+
5946
+ .agent-gui-message-locator__panel[data-open="true"] {
5947
+ opacity: 1;
5948
+ transform: translateY(-50%) translateX(0);
5949
+ pointer-events: auto;
5950
+ }
5951
+
5952
+ .agent-gui-message-locator__panel-item {
5953
+ display: block;
5954
+ min-width: 0;
5955
+ max-width: 100%;
5956
+ padding: 0;
5957
+ border: 0;
5958
+ border-radius: 6px;
5959
+ background: transparent;
5960
+ color: var(--text-tertiary, var(--tutti-text-tertiary));
5961
+ text-align: left;
5962
+ cursor: pointer;
5963
+ transition: color 160ms ease;
5964
+ }
5965
+
5966
+ .agent-gui-message-locator__panel-item:hover,
5967
+ .agent-gui-message-locator__panel-item:focus-visible {
5968
+ background: color-mix(
5969
+ in srgb,
5970
+ var(--surface-2, var(--tutti-surface-2)) 86%,
5971
+ transparent
5972
+ );
5973
+ outline: none;
5974
+ }
5975
+
5976
+ .agent-gui-message-locator__panel-item[data-active="true"] {
5977
+ color: var(--text-primary, var(--tutti-text-primary));
5978
+ }
5979
+
5980
+ @media (prefers-reduced-motion: reduce) {
5981
+ .agent-gui-message-locator__panel,
5982
+ .agent-gui-message-locator__panel-item {
5983
+ transition: none;
5984
+ }
5985
+ }
5986
+
5987
+ .agent-gui-message-locator__panel-item-text {
5988
+ display: block;
5989
+ overflow: hidden;
5990
+ max-width: 100%;
5991
+ text-align: left;
5992
+ font-size: 13px;
5993
+ font-weight: 520;
5994
+ line-height: 1.35;
5995
+ text-overflow: ellipsis;
5996
+ white-space: nowrap;
5997
+ }
5998
+
5701
5999
  .agent-gui-transcript-virtual {
5702
6000
  position: relative;
5703
6001
  width: 100%;
@@ -5748,6 +6046,8 @@ button.agent-gui-node__conversation-section-toggle:hover
5748
6046
  }
5749
6047
 
5750
6048
  .workspace-agents-status-panel__conversation-timeline.agent-gui-node__timeline {
6049
+ --agent-gui-message-locator-inline-offset: 28px;
6050
+
5751
6051
  padding-right: 28px;
5752
6052
  padding-left: 28px;
5753
6053
  }
@@ -8017,3 +8317,84 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
8017
8317
  [data-workspace-app-icon="true"] > .tsh-agent-object-token__kind-icon {
8018
8318
  display: block;
8019
8319
  }
8320
+
8321
+
8322
+ .workspace-agents-status-panel__detail-subagent-log {
8323
+ display: flex;
8324
+ flex-direction: column;
8325
+ gap: 2px;
8326
+ }
8327
+
8328
+ .workspace-agents-status-panel__detail-subagent-log-entry {
8329
+ color: var(--tutti-text-muted, rgba(0, 0, 0, 0.55));
8330
+ font-size: 12px;
8331
+ line-height: 1.5;
8332
+ white-space: pre-wrap;
8333
+ word-break: break-word;
8334
+ }
8335
+
8336
+ .workspace-agents-status-panel__detail-subagent-log-entry--latest {
8337
+ color: var(--tutti-text-primary, rgba(0, 0, 0, 0.85));
8338
+ }
8339
+
8340
+ .workspace-agents-status-panel__detail-subagent-log-entry--tool {
8341
+ font-family: var(--tutti-font-mono, ui-monospace, monospace);
8342
+ }
8343
+
8344
+ .workspace-agents-status-panel__detail-subagent-log-entry--failure {
8345
+ color: var(--tutti-status-danger, #c0392b);
8346
+ }
8347
+
8348
+ .workspace-agents-status-panel__detail-subagent-log-omitted {
8349
+ color: var(--tutti-text-muted, rgba(0, 0, 0, 0.45));
8350
+ font-size: 11px;
8351
+ font-style: italic;
8352
+ }
8353
+
8354
+ .workspace-agents-status-panel__detail-subagent-activity--failure {
8355
+ color: var(--tutti-status-danger, #c0392b);
8356
+ }
8357
+
8358
+
8359
+ .workspace-agents-status-panel__detail-subagent-name {
8360
+ color: var(--tutti-text-primary, rgba(0, 0, 0, 0.85));
8361
+ margin-left: 4px;
8362
+ }
8363
+
8364
+ .workspace-agents-status-panel__detail-tool-row--subagent
8365
+ .workspace-agents-status-panel__detail-subagent-status {
8366
+ display: inline-block;
8367
+ width: 8px;
8368
+ height: 8px;
8369
+ border-radius: 50%;
8370
+ }
8371
+
8372
+ /* Sub-agent body indents like an expanded tool (24px under the icon column) */
8373
+ .workspace-agents-status-panel__detail-subagent-reveal {
8374
+ box-sizing: border-box;
8375
+ padding-left: 24px;
8376
+ }
8377
+
8378
+ /* Bash-block-style sub-agent body: task strip on top, progress below */
8379
+ .workspace-agents-status-panel__detail-subagent-terminal {
8380
+ overflow: hidden;
8381
+ border: 1px solid var(--line-2);
8382
+ border-radius: 8px;
8383
+ background: var(--background-panel);
8384
+ }
8385
+
8386
+ .workspace-agents-status-panel__detail-subagent-task-strip {
8387
+ padding: 8px 12px;
8388
+ border-bottom: 1px solid var(--line-2);
8389
+ color: var(--text-secondary);
8390
+ font-size: 11px;
8391
+ line-height: 1.5;
8392
+ white-space: pre-wrap;
8393
+ overflow-wrap: anywhere;
8394
+ }
8395
+
8396
+ .workspace-agents-status-panel__detail-subagent-activity--in-terminal {
8397
+ padding: 8px 12px;
8398
+ font-size: 11px;
8399
+ line-height: 1.5;
8400
+ }