@tutti-os/agent-gui 0.0.49 → 0.0.51

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 (58) 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 +185 -4
  4. package/dist/agent-message-center/index.js +126 -60
  5. package/dist/agent-message-center/index.js.map +1 -1
  6. package/dist/{agentConversationVM-DSXrFL9v.d.ts → agentConversationVM-Qbz9GBwR.d.ts} +25 -0
  7. package/dist/{agentGuiNodeTypes-Bp1G8pOj.d.ts → agentGuiNodeTypes-wzOITHRW.d.ts} +1 -1
  8. package/dist/app/renderer/agentactivity.css +426 -4
  9. package/dist/{chunk-XRJZCEOX.js → chunk-23YM25SG.js} +1764 -594
  10. package/dist/chunk-23YM25SG.js.map +1 -0
  11. package/dist/{chunk-AKK7UOAS.js → chunk-5Y3PC7HP.js} +9 -4
  12. package/dist/chunk-5Y3PC7HP.js.map +1 -0
  13. package/dist/{chunk-U6JWW45G.js → chunk-66EQ6EQO.js} +1 -1
  14. package/dist/chunk-66EQ6EQO.js.map +1 -0
  15. package/dist/{chunk-Q3MOU4CD.js → chunk-ARCM7YB2.js} +2 -2
  16. package/dist/{chunk-5HJWT6YN.js → chunk-BQVYICR7.js} +5 -5
  17. package/dist/{chunk-TTDBLIQ3.js → chunk-DPG2J7N5.js} +2 -2
  18. package/dist/{chunk-FSRS2JFR.js → chunk-FYVVHRLZ.js} +2 -2
  19. package/dist/{chunk-AYEYXKLF.js → chunk-HDBKB5RA.js} +2 -2
  20. package/dist/{chunk-A2EN24OI.js → chunk-M7GNA2WD.js} +5 -5
  21. package/dist/{chunk-QGBIGRZA.js → chunk-OBFDA7RG.js} +14 -2
  22. package/dist/chunk-OBFDA7RG.js.map +1 -0
  23. package/dist/{chunk-RJR2OZ6T.js → chunk-RKZMETSQ.js} +189 -187
  24. package/dist/chunk-RKZMETSQ.js.map +1 -0
  25. package/dist/{chunk-6KQHNUR5.js → chunk-UUY5VEK4.js} +2 -2
  26. package/dist/{chunk-77UR4G7P.js → chunk-Y7ZVTWMZ.js} +2 -2
  27. package/dist/{chunk-K6SRLYC3.js → chunk-ZTSS2NU2.js} +17 -1
  28. package/dist/chunk-ZTSS2NU2.js.map +1 -0
  29. package/dist/context-mention-palette/index.js +7 -7
  30. package/dist/i18n/index.d.ts +16 -0
  31. package/dist/i18n/index.js +2 -2
  32. package/dist/index.d.ts +50 -3
  33. package/dist/index.js +519 -29
  34. package/dist/index.js.map +1 -1
  35. package/dist/plan-decision-ops.d.ts +1 -1
  36. package/dist/queued-prompt-runtime.d.ts +2 -2
  37. package/dist/workbench/contribution.d.ts +5 -1
  38. package/dist/workbench/contribution.js +4 -2
  39. package/dist/workbench/index.js +5 -5
  40. package/dist/workbench/launch.d.ts +4 -0
  41. package/dist/workbench/launch.js +1 -1
  42. package/dist/workbench/sessionTitle.js +3 -3
  43. package/dist/workspace-agent-generated-files.js +3 -3
  44. package/package.json +14 -14
  45. package/dist/chunk-AKK7UOAS.js.map +0 -1
  46. package/dist/chunk-K6SRLYC3.js.map +0 -1
  47. package/dist/chunk-QGBIGRZA.js.map +0 -1
  48. package/dist/chunk-RJR2OZ6T.js.map +0 -1
  49. package/dist/chunk-U6JWW45G.js.map +0 -1
  50. package/dist/chunk-XRJZCEOX.js.map +0 -1
  51. /package/dist/{chunk-Q3MOU4CD.js.map → chunk-ARCM7YB2.js.map} +0 -0
  52. /package/dist/{chunk-5HJWT6YN.js.map → chunk-BQVYICR7.js.map} +0 -0
  53. /package/dist/{chunk-TTDBLIQ3.js.map → chunk-DPG2J7N5.js.map} +0 -0
  54. /package/dist/{chunk-FSRS2JFR.js.map → chunk-FYVVHRLZ.js.map} +0 -0
  55. /package/dist/{chunk-AYEYXKLF.js.map → chunk-HDBKB5RA.js.map} +0 -0
  56. /package/dist/{chunk-A2EN24OI.js.map → chunk-M7GNA2WD.js.map} +0 -0
  57. /package/dist/{chunk-6KQHNUR5.js.map → chunk-UUY5VEK4.js.map} +0 -0
  58. /package/dist/{chunk-77UR4G7P.js.map → chunk-Y7ZVTWMZ.js.map} +0 -0
@@ -219,6 +219,30 @@ interface AgentPlanModeItemVM {
219
219
  occurredAtUnixMs: number | null;
220
220
  }
221
221
 
222
+ type AgentTaskSubAgentStatus = "running" | "completed" | "failed" | "canceled";
223
+ type AgentTaskSubAgentActivityKind = "message" | "reasoning" | "tool";
224
+ interface AgentTaskSubAgentActivityVM {
225
+ kind: AgentTaskSubAgentActivityKind;
226
+ text: string;
227
+ atUnixMs: number | null;
228
+ }
229
+ interface AgentTaskSubAgentVM {
230
+ ownerThreadId: string;
231
+ status: AgentTaskSubAgentStatus;
232
+ name: string | null;
233
+ task: string | null;
234
+ laneIndex: number;
235
+ laneCount: number;
236
+ latestActivity: string | null;
237
+ latestActivityKind: AgentTaskSubAgentActivityKind | null;
238
+ activityLog: readonly AgentTaskSubAgentActivityVM[];
239
+ activityOmittedCount: number;
240
+ queued?: boolean;
241
+ failureDetail: string | null;
242
+ startedAtUnixMs: number | null;
243
+ latestActivityAtUnixMs: number | null;
244
+ terminalAtUnixMs: number | null;
245
+ }
222
246
  interface AgentTaskStepVM {
223
247
  id: string;
224
248
  turnId: string;
@@ -239,6 +263,7 @@ interface AgentTaskItemVM {
239
263
  prompt?: string | null;
240
264
  delegateSessionId?: string | null;
241
265
  steps: AgentTaskStepVM[];
266
+ subAgents?: AgentTaskSubAgentVM[];
242
267
  result?: string | null;
243
268
  resultMarkdown?: string | null;
244
269
  durationMs?: number | null;
@@ -1,7 +1,7 @@
1
1
  import { AgentActivityUsage } from '@tutti-os/agent-activity-core';
2
2
  import { e as AgentHostAgentSessionCommand, f as AgentHostAgentSessionComposerSettings, h as AgentHostAgentSessionReasoningEffort, i as AgentHostAgentSessionSpeed, g as AgentHostAgentSessionPermissionConfig, j as AgentHostAgentSessionState, a as AgentGUIProvider, m as AgentPromptContentBlock, A as AgentGUINodeData, b as AgentGUIProviderTarget } from './types-xMz0lJWt.js';
3
3
  import { A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult, b as AgentHostDeleteWorkspaceAgentSessionInput, k as AgentHostWorkspaceAgentSessionSummaryInput, j as AgentHostWorkspaceAgentSessionSummary, e as AgentHostWorkspaceAgentListInput, l as AgentHostWorkspaceAgentSnapshot, i as AgentHostWorkspaceAgentSessionMessagesInput, h as AgentHostWorkspaceAgentSessionMessages, p as WorkspaceAgentActivitySyncState } from './workspaceAgentActivityListViewModel-B5viw5Da.js';
4
- import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-DSXrFL9v.js';
4
+ import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-Qbz9GBwR.js';
5
5
  import { WorkspaceUserProjectService } from '@tutti-os/workspace-user-project/contracts';
6
6
 
7
7
  declare const APP_ERROR_CODES: readonly ["common.invalid_input", "common.approved_path_required", "common.unavailable", "common.unexpected", "session.not_found", "control_surface.unauthorized", "workspace.select_directory_failed", "workspace.select_files_failed", "workspace.ensure_directory_failed", "workspace.import_files_failed", "workspace.read_file_failed", "workspace.write_file_failed", "workspace.export_file_failed", "workspace.copy_path_failed", "workspace.host_unsupported", "workspace.runtime_artifact_unavailable", "runtime.guest_agent_lane_unavailable", "workspace.room_full", "workspace.room_delete_forbidden", "workspace.room_delete_not_found", "filesystem.create_directory_failed", "filesystem.read_file_bytes_failed", "filesystem.read_file_text_failed", "filesystem.write_file_text_failed", "filesystem.copy_entry_failed", "filesystem.move_entry_failed", "filesystem.rename_entry_failed", "filesystem.delete_entry_failed", "filesystem.read_directory_failed", "filesystem.stat_failed", "terminal.spawn_failed", "terminal.write_failed", "terminal.resize_failed", "terminal.close_failed", "terminal.attach_failed", "terminal.detach_failed", "terminal.snapshot_failed", "agent.list_models_failed", "agent.launch_failed", "agent.read_last_message_failed", "agent.provider_session_not_found", "agent.resume_session_not_local", "agent.resume_session_resolve_failed", "agent.settings_require_new_session", "task.suggest_title_failed", "persistence.unavailable", "persistence.quota_exceeded", "persistence.payload_too_large", "persistence.io_failed", "persistence.invalid_state", "persistence.invalid_node_id", "update.get_state_failed", "update.configure_failed", "update.check_failed", "update.download_failed", "update.install_failed", "PACKAGE_DOWNLOAD_INTERRUPTED", "PACKAGE_DOWNLOAD_HTTP_STATUS", "PACKAGE_DOWNLOAD_INVALID", "PACKAGE_DOWNLOAD_DISK_ERROR"];
@@ -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;
@@ -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
 
@@ -3351,6 +3467,21 @@ aside.workspace-agents-status-panel
3351
3467
  justify-items: end;
3352
3468
  }
3353
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
+
3354
3485
  .agent-gui-conversation__assistant-message-flow {
3355
3486
  gap: 0;
3356
3487
  }
@@ -5195,7 +5326,7 @@ button.agent-gui-node__conversation-section-toggle:hover
5195
5326
  }
5196
5327
 
5197
5328
  .agent-gui-node__conversation-list-skeleton-rib {
5198
- height: 8px;
5329
+ height: 12px;
5199
5330
  transform-origin: left center;
5200
5331
  }
5201
5332
 
@@ -5636,6 +5767,9 @@ button.agent-gui-node__conversation-section-toggle:hover
5636
5767
  }
5637
5768
 
5638
5769
  .agent-gui-node__timeline {
5770
+ --agent-gui-message-locator-inline-offset: var(--agent-gui-detail-padding-x);
5771
+
5772
+ position: relative;
5639
5773
  display: grid;
5640
5774
  flex: 1 1 auto;
5641
5775
  align-content: start;
@@ -5657,6 +5791,211 @@ button.agent-gui-node__conversation-section-toggle:hover
5657
5791
  transform-origin: top center;
5658
5792
  }
5659
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
+
5660
5999
  .agent-gui-transcript-virtual {
5661
6000
  position: relative;
5662
6001
  width: 100%;
@@ -5707,6 +6046,8 @@ button.agent-gui-node__conversation-section-toggle:hover
5707
6046
  }
5708
6047
 
5709
6048
  .workspace-agents-status-panel__conversation-timeline.agent-gui-node__timeline {
6049
+ --agent-gui-message-locator-inline-offset: 28px;
6050
+
5710
6051
  padding-right: 28px;
5711
6052
  padding-left: 28px;
5712
6053
  }
@@ -7976,3 +8317,84 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
7976
8317
  [data-workspace-app-icon="true"] > .tsh-agent-object-token__kind-icon {
7977
8318
  display: block;
7978
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
+ }