@tutti-os/agent-gui 0.0.10 → 0.0.12

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 (43) hide show
  1. package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +7 -0
  2. package/dist/agent-conversation/index.d.ts +135 -0
  3. package/dist/agent-conversation/index.js +77 -0
  4. package/dist/agent-conversation/index.js.map +1 -0
  5. package/dist/agent-message-center/index.d.ts +45 -46
  6. package/dist/agent-message-center/index.js +1801 -1166
  7. package/dist/agent-message-center/index.js.map +1 -1
  8. package/dist/agentConversationVM-BtHYOTgv.d.ts +342 -0
  9. package/dist/app/renderer/agentactivity.css +233 -0
  10. package/dist/chunk-72YSPOHX.js +13290 -0
  11. package/dist/chunk-72YSPOHX.js.map +1 -0
  12. package/dist/{chunk-3D5VTIKP.js → chunk-IBIMGLCD.js} +1 -28
  13. package/dist/chunk-IBIMGLCD.js.map +1 -0
  14. package/dist/chunk-MKHDRIGN.js +71 -0
  15. package/dist/chunk-MKHDRIGN.js.map +1 -0
  16. package/dist/{chunk-EHLA6MSQ.js → chunk-PKCJR6GC.js} +10 -20
  17. package/dist/chunk-PKCJR6GC.js.map +1 -0
  18. package/dist/chunk-PONEQEJ5.js +2616 -0
  19. package/dist/chunk-PONEQEJ5.js.map +1 -0
  20. package/dist/chunk-TYGL25EL.js +30 -0
  21. package/dist/chunk-TYGL25EL.js.map +1 -0
  22. package/dist/chunk-XJ34OIEQ.js +18 -0
  23. package/dist/chunk-XJ34OIEQ.js.map +1 -0
  24. package/dist/{chunk-T6U7AB7F.js → chunk-Y3AQGWJA.js} +55 -3
  25. package/dist/chunk-Y3AQGWJA.js.map +1 -0
  26. package/dist/{chunk-CUQJ3VO3.js → chunk-Y5O7BVGU.js} +282 -2531
  27. package/dist/chunk-Y5O7BVGU.js.map +1 -0
  28. package/dist/i18n/index.d.ts +54 -2
  29. package/dist/i18n/index.js +1 -1
  30. package/dist/index.d.ts +11 -8
  31. package/dist/index.js +10179 -21761
  32. package/dist/index.js.map +1 -1
  33. package/dist/plan-decision-ops.d.ts +70 -0
  34. package/dist/plan-decision-ops.js +19 -0
  35. package/dist/plan-decision-ops.js.map +1 -0
  36. package/dist/workspace-agent-generated-files.d.ts +1 -1
  37. package/dist/workspace-agent-generated-files.js +5 -3
  38. package/dist/{workspaceAgentActivityListViewModel-Be4zm3nk.d.ts → workspaceAgentActivityListViewModel-BLLYGuFO.d.ts} +36 -2
  39. package/package.json +24 -10
  40. package/dist/chunk-3D5VTIKP.js.map +0 -1
  41. package/dist/chunk-CUQJ3VO3.js.map +0 -1
  42. package/dist/chunk-EHLA6MSQ.js.map +0 -1
  43. package/dist/chunk-T6U7AB7F.js.map +0 -1
@@ -0,0 +1,342 @@
1
+ import { W as WorkspaceAgentActivityCard, n as WorkspaceAgentActivitySession, T as ToolCallStatusKind, p as WorkspaceAgentActivityTimelineItem } from './workspaceAgentActivityListViewModel-BLLYGuFO.js';
2
+
3
+ interface WorkspaceAgentSessionDetailMessage {
4
+ id: string;
5
+ body: string;
6
+ status?: string | null;
7
+ statusKind?: ToolCallStatusKind | null;
8
+ turnId?: string;
9
+ occurredAtUnixMs?: number | null;
10
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
11
+ visibleError?: {
12
+ code: string | null;
13
+ phase: string | null;
14
+ provider: string | null;
15
+ detail: string | null;
16
+ retryable: boolean | null;
17
+ } | null;
18
+ systemNotice?: {
19
+ noticeKind: string | null;
20
+ severity: string | null;
21
+ title: string | null;
22
+ detail: string | null;
23
+ retryable: boolean | null;
24
+ } | null;
25
+ }
26
+ interface WorkspaceAgentSessionDetailThinking {
27
+ id: string;
28
+ body: string;
29
+ statusKind?: ToolCallStatusKind | null;
30
+ turnId?: string;
31
+ occurredAtUnixMs?: number | null;
32
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
33
+ }
34
+ interface WorkspaceAgentSessionDetailToolCall {
35
+ id: string;
36
+ name: string;
37
+ toolName: string | null;
38
+ callType: string | null;
39
+ status: string | null;
40
+ statusKind: ToolCallStatusKind | null;
41
+ summary: string;
42
+ payload: Record<string, unknown> | null;
43
+ turnId?: string;
44
+ compactSummary?: string | null;
45
+ occurredAtUnixMs?: number | null;
46
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
47
+ }
48
+ type WorkspaceAgentSessionDetailToolGroupEntry = {
49
+ kind: "thinking";
50
+ thinking: WorkspaceAgentSessionDetailThinking;
51
+ } | {
52
+ kind: "tool-call";
53
+ call: WorkspaceAgentSessionDetailToolCall;
54
+ };
55
+ type WorkspaceAgentSessionDetailAgentItem = {
56
+ kind: "message";
57
+ message: WorkspaceAgentSessionDetailMessage;
58
+ } | {
59
+ kind: "thinking";
60
+ thinking: WorkspaceAgentSessionDetailThinking;
61
+ } | {
62
+ kind: "tool-calls";
63
+ id: string;
64
+ toolCalls: WorkspaceAgentSessionDetailToolCall[];
65
+ toolCallCount: number;
66
+ hasFailedToolCall: boolean;
67
+ summary?: string | null;
68
+ groupEntries?: WorkspaceAgentSessionDetailToolGroupEntry[];
69
+ };
70
+ interface WorkspaceAgentSessionDetailTurn {
71
+ id: string;
72
+ userMessage: WorkspaceAgentSessionDetailMessage | null;
73
+ userMessages: WorkspaceAgentSessionDetailMessage[];
74
+ agentMessages: WorkspaceAgentSessionDetailMessage[];
75
+ toolCalls: WorkspaceAgentSessionDetailToolCall[];
76
+ toolCallCount: number;
77
+ hasFailedToolCall: boolean;
78
+ rawAgentItems?: WorkspaceAgentSessionDetailAgentItem[];
79
+ agentItems: WorkspaceAgentSessionDetailAgentItem[];
80
+ }
81
+ interface WorkspaceAgentSessionDetailViewModel {
82
+ activity: WorkspaceAgentActivityCard;
83
+ session: WorkspaceAgentActivitySession;
84
+ cwd: string;
85
+ workspaceRoot: string | null;
86
+ turns: WorkspaceAgentSessionDetailTurn[];
87
+ showProcessingIndicator?: boolean;
88
+ }
89
+ interface BuildWorkspaceAgentSessionDetailInput {
90
+ activity: WorkspaceAgentActivityCard;
91
+ session: WorkspaceAgentActivitySession;
92
+ timelineItems: WorkspaceAgentActivityTimelineItem[];
93
+ workspaceRoot?: string | null;
94
+ }
95
+ declare function buildWorkspaceAgentSessionDetailViewModel(input: BuildWorkspaceAgentSessionDetailInput): WorkspaceAgentSessionDetailViewModel;
96
+
97
+ interface AgentApprovalOptionVM {
98
+ id: string;
99
+ label: string;
100
+ kind: string;
101
+ description?: string;
102
+ }
103
+ interface AgentApprovalItemVM {
104
+ kind: "approval";
105
+ id: string;
106
+ turnId: string;
107
+ requestId: string;
108
+ callId: string;
109
+ title: string;
110
+ toolName: string | null;
111
+ status: string | null;
112
+ input: Record<string, unknown> | null;
113
+ options: AgentApprovalOptionVM[];
114
+ output?: Record<string, unknown> | null;
115
+ occurredAtUnixMs: number | null;
116
+ }
117
+
118
+ interface AgentAskUserQuestionOptionVM {
119
+ label: string;
120
+ description: string;
121
+ }
122
+ interface AgentAskUserQuestionVM {
123
+ id: string;
124
+ header: string;
125
+ question: string;
126
+ options: AgentAskUserQuestionOptionVM[];
127
+ multiSelect: boolean;
128
+ answer?: string | string[] | null;
129
+ }
130
+ interface AgentAskUserQuestionItemVM {
131
+ kind: "ask-user";
132
+ id: string;
133
+ turnId: string;
134
+ requestId: string;
135
+ title: string;
136
+ status: string | null;
137
+ questions: AgentAskUserQuestionVM[];
138
+ occurredAtUnixMs: number | null;
139
+ }
140
+
141
+ interface AgentMessageContentVM {
142
+ kind: "message-content";
143
+ id: string;
144
+ turnId: string;
145
+ body: string;
146
+ copyText?: string | null;
147
+ statusKind?: ToolCallStatusKind | null;
148
+ contentKind?: "text" | "image-grid" | "plan";
149
+ images?: AgentMessageImageVM[];
150
+ occurredAtUnixMs: number | null;
151
+ visibleError?: {
152
+ code: string | null;
153
+ phase: string | null;
154
+ provider: string | null;
155
+ detail: string | null;
156
+ retryable: boolean | null;
157
+ } | null;
158
+ systemNotice?: {
159
+ noticeKind: string | null;
160
+ severity: string | null;
161
+ title: string | null;
162
+ detail: string | null;
163
+ retryable: boolean | null;
164
+ } | null;
165
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
166
+ }
167
+ interface AgentMessageImageVM {
168
+ id: string;
169
+ workspaceId?: string | null;
170
+ agentSessionId: string;
171
+ attachmentId?: string | null;
172
+ mimeType: string;
173
+ name?: string | null;
174
+ data?: string | null;
175
+ }
176
+ interface AgentThinkingContentVM {
177
+ kind: "thinking-content";
178
+ id: string;
179
+ turnId: string;
180
+ body: string;
181
+ statusKind?: ToolCallStatusKind | null;
182
+ occurredAtUnixMs: number | null;
183
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
184
+ }
185
+ interface AgentMessageRowVM {
186
+ kind: "message";
187
+ id: string;
188
+ turnId: string;
189
+ speaker: "user" | "assistant";
190
+ messages: AgentMessageContentVM[];
191
+ thinking: AgentThinkingContentVM[];
192
+ occurredAtUnixMs: number | null;
193
+ }
194
+
195
+ interface AgentProcessingRowVM {
196
+ kind: "processing";
197
+ id: string;
198
+ turnId: string | null;
199
+ label?: string | null;
200
+ occurredAtUnixMs: number | null;
201
+ }
202
+
203
+ type AgentPlanModeKind = "enter" | "exit";
204
+ interface AgentPlanModeItemVM {
205
+ itemKind: "plan-mode";
206
+ id: string;
207
+ turnId: string;
208
+ requestId?: string;
209
+ kind: AgentPlanModeKind;
210
+ title: string;
211
+ plan?: string | null;
212
+ status: string | null;
213
+ filePath?: string | null;
214
+ occurredAtUnixMs: number | null;
215
+ }
216
+
217
+ interface AgentTaskStepVM {
218
+ id: string;
219
+ turnId: string;
220
+ name: string;
221
+ toolName: string | null;
222
+ status: string | null;
223
+ summary: string;
224
+ payload: Record<string, unknown> | null;
225
+ tool: AgentToolCallVM | null;
226
+ occurredAtUnixMs: number | null;
227
+ }
228
+ interface AgentTaskItemVM {
229
+ kind: "task";
230
+ id: string;
231
+ turnId: string;
232
+ title: string;
233
+ status: string | null;
234
+ prompt?: string | null;
235
+ delegateSessionId?: string | null;
236
+ steps: AgentTaskStepVM[];
237
+ result?: string | null;
238
+ resultMarkdown?: string | null;
239
+ durationMs?: number | null;
240
+ occurredAtUnixMs: number | null;
241
+ }
242
+
243
+ type AgentToolRendererKind = "default" | "approval" | "plan-enter" | "plan-exit" | "ask-user" | "task" | "read" | "write" | "edit" | "bash" | "search" | "web-search" | "web-fetch" | "image-generation" | "todo-write" | "tool-search" | "skill" | "mcp";
244
+ interface AgentToolCallVM {
245
+ kind: "tool-call";
246
+ id: string;
247
+ turnId: string;
248
+ name: string;
249
+ toolName: string | null;
250
+ callType: string | null;
251
+ status: string | null;
252
+ statusKind: ToolCallStatusKind | null;
253
+ summary: string;
254
+ compactSummary: string | null;
255
+ payload: Record<string, unknown> | null;
256
+ toolState: Record<string, unknown> | null;
257
+ input: Record<string, unknown> | null;
258
+ output: Record<string, unknown> | null;
259
+ error: Record<string, unknown> | null;
260
+ metadata: Record<string, unknown> | null;
261
+ content: unknown[] | null;
262
+ locations: unknown[] | null;
263
+ rendererKind: AgentToolRendererKind;
264
+ approval: AgentApprovalItemVM | null;
265
+ planMode: AgentPlanModeItemVM | null;
266
+ askUserQuestion: AgentAskUserQuestionItemVM | null;
267
+ task: AgentTaskItemVM | null;
268
+ occurredAtUnixMs: number | null;
269
+ sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
270
+ }
271
+
272
+ type AgentToolGroupEntryVM = {
273
+ kind: "thinking";
274
+ thinking: AgentThinkingContentVM;
275
+ } | {
276
+ kind: "tool-call";
277
+ call: AgentToolCallVM;
278
+ };
279
+ interface AgentToolGroupRowVM {
280
+ kind: "tool-group";
281
+ id: string;
282
+ expansionKey?: string;
283
+ turnId: string;
284
+ grouped: boolean;
285
+ calls: AgentToolCallVM[];
286
+ summary?: string | null;
287
+ entries: AgentToolGroupEntryVM[];
288
+ occurredAtUnixMs: number | null;
289
+ }
290
+
291
+ interface AgentTurnSummaryFileVM {
292
+ label: string;
293
+ path: string;
294
+ fileName: string;
295
+ directory: string | null;
296
+ changeType: "modified" | "created" | "deleted";
297
+ toolName: string | null;
298
+ messageId: string;
299
+ unifiedDiff?: string | null;
300
+ oldString?: string | null;
301
+ newString?: string | null;
302
+ content?: string | null;
303
+ occurredAtUnixMs: number | null;
304
+ }
305
+ interface AgentTurnSummaryRowVM {
306
+ kind: "turn-summary";
307
+ id: string;
308
+ turnId: string;
309
+ files: AgentTurnSummaryFileVM[];
310
+ fileCount: number;
311
+ modifiedCount: number;
312
+ createdCount: number;
313
+ occurredAtUnixMs: number | null;
314
+ }
315
+
316
+ type AgentTranscriptRowVM = AgentMessageRowVM | AgentToolGroupRowVM | AgentTurnSummaryRowVM | AgentProcessingRowVM;
317
+
318
+ type AgentConversationPromptVM = AgentApprovalItemVM | {
319
+ kind: "ask-user";
320
+ requestId: string;
321
+ title: string;
322
+ questions: AgentAskUserQuestionVM[];
323
+ } | {
324
+ kind: "exit-plan";
325
+ requestId: string;
326
+ title: string;
327
+ } | {
328
+ kind: "plan-implementation";
329
+ requestId: string;
330
+ title: string;
331
+ };
332
+ type AgentConversationPendingInteractivePromptVM = Exclude<AgentConversationPromptVM, AgentApprovalItemVM>;
333
+ interface AgentConversationVM {
334
+ activity: WorkspaceAgentActivityCard;
335
+ workspaceRoot: string | null;
336
+ sourceDetail: WorkspaceAgentSessionDetailViewModel;
337
+ rows: AgentTranscriptRowVM[];
338
+ pendingApproval: AgentApprovalItemVM | null;
339
+ pendingInteractivePrompt: AgentConversationPendingInteractivePromptVM | null;
340
+ }
341
+
342
+ export { type AgentConversationPromptVM as A, type BuildWorkspaceAgentSessionDetailInput as B, type WorkspaceAgentSessionDetailViewModel as W, type AgentConversationVM as a, buildWorkspaceAgentSessionDetailViewModel as b };
@@ -3079,11 +3079,92 @@ aside.workspace-agents-status-panel
3079
3079
  }
3080
3080
 
3081
3081
  .agent-gui-conversation__message-group {
3082
+ position: relative;
3082
3083
  display: grid;
3083
3084
  width: 100%;
3084
3085
  min-width: 0;
3085
3086
  }
3086
3087
 
3088
+ .agent-gui-conversation__message-group::after {
3089
+ position: absolute;
3090
+ top: 100%;
3091
+ right: 0;
3092
+ left: 0;
3093
+ height: 10px;
3094
+ content: "";
3095
+ }
3096
+
3097
+ .agent-gui-conversation__message-group:has(
3098
+ > .agent-gui-conversation__message-copy-button
3099
+ ) {
3100
+ margin-bottom: 36px;
3101
+ }
3102
+
3103
+ .agent-gui-conversation__message-copy-button {
3104
+ position: absolute;
3105
+ top: calc(100% + 8px);
3106
+ z-index: 1;
3107
+ display: inline-grid;
3108
+ width: 24px;
3109
+ height: 24px;
3110
+ place-items: center;
3111
+ border: 1px solid var(--line-2, var(--tutti-line-2));
3112
+ border-radius: 6px;
3113
+ background: var(--background-fronted);
3114
+ color: var(--text-secondary);
3115
+ opacity: 0;
3116
+ outline: none;
3117
+ pointer-events: none;
3118
+ transform: translateY(-2px);
3119
+ transition:
3120
+ opacity 120ms ease,
3121
+ transform 120ms ease,
3122
+ color 120ms ease,
3123
+ border-color 120ms ease,
3124
+ background 120ms ease;
3125
+ }
3126
+
3127
+ .agent-gui-conversation__message-group[data-agent-message-speaker="user"]
3128
+ > .agent-gui-conversation__message-copy-button {
3129
+ right: 0;
3130
+ }
3131
+
3132
+ .agent-gui-conversation__message-group[data-agent-message-speaker="assistant"]
3133
+ > .agent-gui-conversation__message-copy-button {
3134
+ left: 0;
3135
+ }
3136
+
3137
+ .agent-gui-conversation__message-group:hover
3138
+ > .agent-gui-conversation__message-copy-button,
3139
+ .agent-gui-conversation__message-group:focus-within
3140
+ > .agent-gui-conversation__message-copy-button {
3141
+ opacity: 1;
3142
+ pointer-events: auto;
3143
+ transform: translateY(0);
3144
+ }
3145
+
3146
+ .agent-gui-conversation__message-copy-button:hover {
3147
+ border-color: var(--border-focus);
3148
+ background: var(--background-panel);
3149
+ color: var(--text-primary);
3150
+ }
3151
+
3152
+ .agent-gui-conversation__message-copy-button:focus-visible {
3153
+ border-color: var(--border-focus);
3154
+ color: var(--text-primary);
3155
+ outline: 2px solid var(--border-focus);
3156
+ outline-offset: 2px;
3157
+ }
3158
+
3159
+ .agent-gui-conversation__message-copy-button[data-copied="true"] {
3160
+ border-color: color-mix(
3161
+ in srgb,
3162
+ var(--state-success, #22c55e) 42%,
3163
+ transparent
3164
+ );
3165
+ color: var(--state-success, #22c55e);
3166
+ }
3167
+
3087
3168
  .agent-gui-conversation__user-message-flow
3088
3169
  > .agent-gui-conversation__message-group {
3089
3170
  justify-items: end;
@@ -5171,6 +5252,133 @@ button.agent-gui-node__conversation-section-toggle:hover
5171
5252
  text-transform: capitalize;
5172
5253
  }
5173
5254
 
5255
+ .agent-gui-node__detail-header-usage-chip {
5256
+ display: inline-flex;
5257
+ flex: 0 0 auto;
5258
+ align-items: center;
5259
+ border: 0;
5260
+ border-radius: 999px;
5261
+ padding: 2px 8px;
5262
+ background: var(--transparency-hover);
5263
+ color: var(--text-secondary);
5264
+ font-size: 12px;
5265
+ font-weight: 600;
5266
+ line-height: 16px;
5267
+ white-space: nowrap;
5268
+ }
5269
+
5270
+ .agent-gui-node__detail-header-usage-chip:focus-visible {
5271
+ outline: none;
5272
+ box-shadow: 0 0 0 2px var(--border-1);
5273
+ }
5274
+
5275
+ .agent-gui-node__detail-header-usage-chip[data-usage-level="warning"] {
5276
+ color: var(--agent-gui-warning, var(--cove-label-orange));
5277
+ background: color-mix(
5278
+ in srgb,
5279
+ var(--agent-gui-warning, var(--cove-label-orange)) 12%,
5280
+ transparent
5281
+ );
5282
+ }
5283
+
5284
+ .agent-gui-node__detail-header-usage-chip[data-usage-level="critical"] {
5285
+ color: var(--agent-gui-danger, var(--state-danger));
5286
+ background: color-mix(
5287
+ in srgb,
5288
+ var(--agent-gui-danger, var(--state-danger)) 12%,
5289
+ transparent
5290
+ );
5291
+ }
5292
+
5293
+ .agent-gui-node__detail-header-compact-button {
5294
+ display: inline-flex;
5295
+ flex: 0 0 auto;
5296
+ align-items: center;
5297
+ border: 0;
5298
+ border-radius: 999px;
5299
+ padding: 2px 8px;
5300
+ background: var(--transparency-hover);
5301
+ color: var(--text-secondary);
5302
+ font-size: 12px;
5303
+ font-weight: 600;
5304
+ line-height: 16px;
5305
+ white-space: nowrap;
5306
+ cursor: pointer;
5307
+ }
5308
+
5309
+ .agent-gui-node__detail-header-compact-button:hover:not(:disabled) {
5310
+ color: var(--text-primary);
5311
+ }
5312
+
5313
+ .agent-gui-node__detail-header-compact-button:focus-visible {
5314
+ outline: none;
5315
+ box-shadow: 0 0 0 2px var(--border-1);
5316
+ }
5317
+
5318
+ .agent-gui-node__detail-header-compact-button:disabled {
5319
+ opacity: 0.5;
5320
+ cursor: default;
5321
+ }
5322
+
5323
+ .agent-gui-node__usage-alert-banner {
5324
+ display: flex;
5325
+ align-items: center;
5326
+ justify-content: space-between;
5327
+ gap: 8px;
5328
+ margin: 0 12px 8px;
5329
+ border-radius: 8px;
5330
+ padding: 6px 10px;
5331
+ font-size: 12px;
5332
+ font-weight: 600;
5333
+ line-height: 16px;
5334
+ color: var(--agent-gui-warning, var(--cove-label-orange));
5335
+ background: color-mix(
5336
+ in srgb,
5337
+ var(--agent-gui-warning, var(--cove-label-orange)) 12%,
5338
+ transparent
5339
+ );
5340
+ }
5341
+
5342
+ .agent-gui-node__usage-alert-banner[data-usage-alert-tier="critical"] {
5343
+ color: var(--agent-gui-danger, var(--state-danger));
5344
+ background: color-mix(
5345
+ in srgb,
5346
+ var(--agent-gui-danger, var(--state-danger)) 12%,
5347
+ transparent
5348
+ );
5349
+ }
5350
+
5351
+ .agent-gui-node__usage-alert-message {
5352
+ min-width: 0;
5353
+ overflow-wrap: anywhere;
5354
+ }
5355
+
5356
+ .agent-gui-node__usage-alert-actions {
5357
+ display: inline-flex;
5358
+ flex: 0 0 auto;
5359
+ align-items: center;
5360
+ gap: 4px;
5361
+ }
5362
+
5363
+ .agent-gui-node__usage-alert-dismiss {
5364
+ display: inline-flex;
5365
+ flex: 0 0 auto;
5366
+ align-items: center;
5367
+ justify-content: center;
5368
+ border: 0;
5369
+ border-radius: 6px;
5370
+ padding: 4px;
5371
+ background: transparent;
5372
+ color: inherit;
5373
+ cursor: pointer;
5374
+ }
5375
+
5376
+ .agent-gui-node__usage-alert-dismiss:hover,
5377
+ .agent-gui-node__usage-alert-dismiss:focus-visible {
5378
+ background: var(--transparency-hover);
5379
+ outline: none;
5380
+ }
5381
+
5174
5382
  .agent-gui-node__layout [data-slot="status-dot"],
5175
5383
  [data-testid="workspace-agent-message-center"] [data-slot="status-dot"] {
5176
5384
  --agent-gui-status-dot-color: var(
@@ -6033,6 +6241,7 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
6033
6241
  min-width: 0;
6034
6242
  min-height: 46px;
6035
6243
  max-height: 72px;
6244
+ overflow-y: auto;
6036
6245
  border: 0;
6037
6246
  background: transparent;
6038
6247
  color: var(--agent-gui-text-primary);
@@ -6042,6 +6251,30 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
6042
6251
  outline: 0;
6043
6252
  padding: 0;
6044
6253
  resize: none;
6254
+ scrollbar-width: thin;
6255
+ scrollbar-color: var(--transparency-hover) transparent;
6256
+ scrollbar-gutter: stable;
6257
+ -ms-overflow-style: auto;
6258
+ }
6259
+
6260
+ .agent-gui-node__composer textarea::-webkit-scrollbar,
6261
+ .agent-gui-node__composer-textarea::-webkit-scrollbar {
6262
+ display: block;
6263
+ width: 4px;
6264
+ height: 4px;
6265
+ }
6266
+
6267
+ .agent-gui-node__composer textarea::-webkit-scrollbar-track,
6268
+ .agent-gui-node__composer textarea::-webkit-scrollbar-corner,
6269
+ .agent-gui-node__composer-textarea::-webkit-scrollbar-track,
6270
+ .agent-gui-node__composer-textarea::-webkit-scrollbar-corner {
6271
+ background: transparent;
6272
+ }
6273
+
6274
+ .agent-gui-node__composer textarea::-webkit-scrollbar-thumb,
6275
+ .agent-gui-node__composer-textarea::-webkit-scrollbar-thumb {
6276
+ border-radius: 999px;
6277
+ background: var(--transparency-hover);
6045
6278
  }
6046
6279
 
6047
6280
  .agent-gui-node__composer-input-shell[data-input-disabled="true"],