@tutti-os/agent-gui 0.0.50 → 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.
- package/dist/agent-conversation/index.js +2 -2
- package/dist/agent-message-center/index.d.ts +184 -3
- package/dist/agent-message-center/index.js +120 -54
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{chunk-RPXRNKU5.js → chunk-23YM25SG.js} +2 -2
- package/dist/{chunk-FS26J46N.js → chunk-M7GNA2WD.js} +2 -2
- package/dist/{chunk-VKP5ZW5O.js → chunk-RKZMETSQ.js} +185 -185
- package/dist/chunk-RKZMETSQ.js.map +1 -0
- package/dist/index.js +3 -3
- package/package.json +14 -14
- package/dist/chunk-VKP5ZW5O.js.map +0 -1
- /package/dist/{chunk-RPXRNKU5.js.map → chunk-23YM25SG.js.map} +0 -0
- /package/dist/{chunk-FS26J46N.js.map → chunk-M7GNA2WD.js.map} +0 -0
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
projectAgentConversationVM,
|
|
7
7
|
reconcileProjectedAgentConversationVM,
|
|
8
8
|
useProjectedAgentConversation
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-23YM25SG.js";
|
|
10
|
+
import "../chunk-RKZMETSQ.js";
|
|
11
11
|
import "../chunk-UUY5VEK4.js";
|
|
12
12
|
import "../chunk-Y35GDLP2.js";
|
|
13
13
|
import "../chunk-LUGELG5V.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { JSX } from 'react';
|
|
2
|
+
import { JSX, ReactNode, HTMLAttributes } from 'react';
|
|
3
3
|
import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
|
|
4
|
-
import { useTranslation, AgentGuiI18nLocale
|
|
4
|
+
import { TranslateFn, useTranslation, AgentGuiI18nLocale } from '../i18n/index.js';
|
|
5
5
|
import { W as WorkspaceLinkAction } from '../workspaceLinkActions-C6POH38D.js';
|
|
6
6
|
import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot } from '@tutti-os/agent-activity-core';
|
|
7
7
|
import { b as AgentConversationPromptVM } from '../agentConversationVM-Qbz9GBwR.js';
|
|
@@ -76,14 +76,68 @@ interface WorkspaceAgentMessageCenterPromptFallbackLabels {
|
|
|
76
76
|
}
|
|
77
77
|
declare function buildWorkspaceAgentMessageCenterModel(snapshot: AgentActivitySnapshot, options?: BuildWorkspaceAgentMessageCenterOptions): WorkspaceAgentMessageCenterModel;
|
|
78
78
|
declare function isWaitingMessageCenterItem(item: WorkspaceAgentMessageCenterItem): boolean;
|
|
79
|
+
declare function isInteractiveMessageCenterItem(item: WorkspaceAgentMessageCenterItem): boolean;
|
|
80
|
+
declare function selectMessageCenterAttentionDeckItems(items: readonly WorkspaceAgentMessageCenterItem[]): WorkspaceAgentMessageCenterItem[];
|
|
81
|
+
|
|
82
|
+
type MessageCenterGroupBy = "priority" | "status" | "agent" | "time";
|
|
83
|
+
type MessageCenterStatusFilter = "waiting" | "working" | "completed" | "failed";
|
|
84
|
+
type MessageCenterTranslate = TranslateFn;
|
|
85
|
+
interface MessageCenterStatusOption {
|
|
86
|
+
count: number;
|
|
87
|
+
label: string;
|
|
88
|
+
value: MessageCenterStatusFilter;
|
|
89
|
+
}
|
|
90
|
+
interface MessageCenterProviderOption {
|
|
91
|
+
count: number;
|
|
92
|
+
label: string;
|
|
93
|
+
value: string;
|
|
94
|
+
}
|
|
95
|
+
interface MessageCenterGroup {
|
|
96
|
+
id: string;
|
|
97
|
+
identity?: WorkspaceAgentMessageCenterIdentity | null;
|
|
98
|
+
label: string;
|
|
99
|
+
items: WorkspaceAgentMessageCenterItem[];
|
|
100
|
+
provider?: string;
|
|
101
|
+
userId?: string | null;
|
|
102
|
+
}
|
|
103
|
+
interface MessageCenterAgentUserStack {
|
|
104
|
+
id: string;
|
|
105
|
+
provider: string;
|
|
106
|
+
userId: string | null;
|
|
107
|
+
items: WorkspaceAgentMessageCenterItem[];
|
|
108
|
+
}
|
|
109
|
+
declare function partitionMessageCenterItemsByAgentUser(items: readonly WorkspaceAgentMessageCenterItem[]): MessageCenterAgentUserStack[];
|
|
110
|
+
declare function messageCenterAgentUserStackId(item: Pick<WorkspaceAgentMessageCenterItem, "provider" | "userId">): string;
|
|
111
|
+
declare function messageCenterStackRenderId(groupId: string, stackId: string): string;
|
|
112
|
+
declare function messageCenterStackScrollSyncSegment({ expanded, groupId, stack }: {
|
|
113
|
+
expanded: boolean;
|
|
114
|
+
groupId: string;
|
|
115
|
+
stack: MessageCenterAgentUserStack;
|
|
116
|
+
}): string;
|
|
117
|
+
declare function buildMessageCenterStatusOptions(counts: WorkspaceAgentMessageCenterModel["counts"], t: MessageCenterTranslate): MessageCenterStatusOption[];
|
|
118
|
+
declare function buildMessageCenterProviderOptions(items: readonly WorkspaceAgentMessageCenterItem[]): MessageCenterProviderOption[];
|
|
119
|
+
declare function itemMatchesViewFilters({ item, providerFilters, statusFilters }: {
|
|
120
|
+
item: WorkspaceAgentMessageCenterItem;
|
|
121
|
+
providerFilters: Set<string> | null;
|
|
122
|
+
statusFilters: Set<MessageCenterStatusFilter> | null;
|
|
123
|
+
}): boolean;
|
|
124
|
+
declare function messageCenterStatusFilterValue(item: WorkspaceAgentMessageCenterItem): MessageCenterStatusFilter;
|
|
125
|
+
declare function groupMessageCenterItems(items: readonly WorkspaceAgentMessageCenterItem[], groupBy: MessageCenterGroupBy, t: MessageCenterTranslate): MessageCenterGroup[];
|
|
126
|
+
declare function isRecentlyCompletedMessageCenterItem(item: WorkspaceAgentMessageCenterItem, nowUnixMs: number): boolean;
|
|
127
|
+
declare function messageCenterGroupLabel(groupBy: MessageCenterGroupBy, t: MessageCenterTranslate): string;
|
|
128
|
+
declare function statusFilterSummary(statusFilters: Set<MessageCenterStatusFilter> | null, statusOptions: readonly MessageCenterStatusOption[]): string;
|
|
79
129
|
|
|
80
130
|
interface WorkspaceAgentMessageCenterCardProps {
|
|
81
131
|
item: WorkspaceAgentMessageCenterItem;
|
|
82
132
|
cardRef?: (node: HTMLElement | null) => void;
|
|
133
|
+
actionsAccessory?: ReactNode;
|
|
134
|
+
footerAccessory?: ReactNode;
|
|
135
|
+
headerAccessory?: ReactNode;
|
|
83
136
|
highlighted?: boolean;
|
|
84
137
|
interactive?: boolean;
|
|
85
138
|
isSubmitting: boolean;
|
|
86
139
|
lazySummary?: boolean;
|
|
140
|
+
summaryAccessory?: ReactNode;
|
|
87
141
|
onLinkAction?: (action: WorkspaceLinkAction) => void;
|
|
88
142
|
onOpenChat: (input: {
|
|
89
143
|
agentSessionId: string;
|
|
@@ -96,7 +150,32 @@ interface WorkspaceAgentMessageCenterCardProps {
|
|
|
96
150
|
requestId: string;
|
|
97
151
|
}) => void;
|
|
98
152
|
}
|
|
153
|
+
interface WorkspaceAgentMessageCenterStackProps {
|
|
154
|
+
className?: string;
|
|
155
|
+
expanded: boolean;
|
|
156
|
+
groupId: string;
|
|
157
|
+
highlightedItemId?: string | null;
|
|
158
|
+
items: WorkspaceAgentMessageCenterItem[];
|
|
159
|
+
renderCard: (item: WorkspaceAgentMessageCenterItem, options?: {
|
|
160
|
+
stackedIndex?: number;
|
|
161
|
+
}) => ReactNode;
|
|
162
|
+
onCollapse: (groupId: string) => void;
|
|
163
|
+
onExpand: (groupId: string) => void;
|
|
164
|
+
}
|
|
99
165
|
declare const WorkspaceAgentMessageCenterCard: react.NamedExoticComponent<WorkspaceAgentMessageCenterCardProps>;
|
|
166
|
+
declare const WorkspaceAgentMessageCenterStack: react.NamedExoticComponent<WorkspaceAgentMessageCenterStackProps>;
|
|
167
|
+
declare function messageCenterStackPreviewText(item: WorkspaceAgentMessageCenterItem): string;
|
|
168
|
+
/**
|
|
169
|
+
* 收起态预览只展示纯文本 + 一个静态(不可点击)的 mention 图标,复用
|
|
170
|
+
* AgentMessageMarkdown 里那套富文本 chip 的视觉样式,但不渲染成 <a>——
|
|
171
|
+
* 这块预览本身嵌套在外层切换展开/收起的 <button> 里,塞一个可点击链接
|
|
172
|
+
* 会出现交互元素嵌套交互元素的问题。
|
|
173
|
+
*/
|
|
174
|
+
declare function messageCenterStackPreviewNodes(item: WorkspaceAgentMessageCenterItem): ReactNode[];
|
|
175
|
+
declare function resolveMessageCenterNotificationAction(item: WorkspaceAgentMessageCenterItem, input: {
|
|
176
|
+
action?: string;
|
|
177
|
+
optionId?: string;
|
|
178
|
+
}): string | null;
|
|
100
179
|
declare function buildWorkspaceAgentInteractivePromptLabels(t: ReturnType<typeof useTranslation>["t"], provider?: string): {
|
|
101
180
|
approvalLead: string;
|
|
102
181
|
planLead: string;
|
|
@@ -119,6 +198,41 @@ declare function buildWorkspaceAgentInteractivePromptLabels(t: ReturnType<typeof
|
|
|
119
198
|
planImplementationSend: string;
|
|
120
199
|
planImplementationSkip: string;
|
|
121
200
|
};
|
|
201
|
+
declare function MessageCenterSummary({ emptyLabel, item, lazy, onLinkAction, summary }: {
|
|
202
|
+
emptyLabel: string;
|
|
203
|
+
item: WorkspaceAgentMessageCenterItem;
|
|
204
|
+
lazy: boolean;
|
|
205
|
+
onLinkAction?: (action: WorkspaceLinkAction) => void;
|
|
206
|
+
summary: string;
|
|
207
|
+
}): JSX.Element;
|
|
208
|
+
declare function MessageCenterOpenChatButton({ actionsAccessory, alwaysVisible, item, label, onOpenChat, provider }: {
|
|
209
|
+
actionsAccessory?: ReactNode;
|
|
210
|
+
alwaysVisible?: boolean;
|
|
211
|
+
item: WorkspaceAgentMessageCenterItem;
|
|
212
|
+
label: string;
|
|
213
|
+
onOpenChat: (input: {
|
|
214
|
+
agentSessionId: string;
|
|
215
|
+
provider: string;
|
|
216
|
+
}) => void;
|
|
217
|
+
provider: string;
|
|
218
|
+
}): JSX.Element;
|
|
219
|
+
declare function MessageCenterIdentityLabel({ identity, provider }: {
|
|
220
|
+
identity: WorkspaceAgentMessageCenterIdentity | null;
|
|
221
|
+
provider: string;
|
|
222
|
+
}): JSX.Element;
|
|
223
|
+
declare function MessageCenterIdentityAvatarMark({ identity, provider, userId }: {
|
|
224
|
+
identity: WorkspaceAgentMessageCenterIdentity | null;
|
|
225
|
+
provider: string;
|
|
226
|
+
userId?: string | null;
|
|
227
|
+
}): JSX.Element;
|
|
228
|
+
declare function MessageCenterIdentityAvatarStack({ agentAvatarUrl, userAvatarUrl: rawUserAvatarUrl, userName }: {
|
|
229
|
+
agentAvatarUrl: string;
|
|
230
|
+
userAvatarUrl?: string;
|
|
231
|
+
userName: string;
|
|
232
|
+
}): JSX.Element;
|
|
233
|
+
type MessageCenterStatusTone = "amber" | "blue" | "green" | "neutral" | "red";
|
|
234
|
+
declare function messageCenterStatusTone(item: WorkspaceAgentMessageCenterItem): MessageCenterStatusTone;
|
|
235
|
+
declare function messageCenterStatusToneClass(tone: MessageCenterStatusTone): string;
|
|
122
236
|
|
|
123
237
|
interface WorkspaceAgentMessageCenterPanelProps {
|
|
124
238
|
i18n?: I18nRuntime<string> | null;
|
|
@@ -148,6 +262,64 @@ interface WorkspaceAgentMessageCenterPanelProps {
|
|
|
148
262
|
}) => Promise<void> | void;
|
|
149
263
|
}
|
|
150
264
|
declare const WorkspaceAgentMessageCenterPanel: react.NamedExoticComponent<WorkspaceAgentMessageCenterPanelProps>;
|
|
265
|
+
declare function MessageCenterGroupHeading({ group }: {
|
|
266
|
+
group: ReturnType<typeof groupMessageCenterItems>[number];
|
|
267
|
+
}): JSX.Element;
|
|
268
|
+
|
|
269
|
+
interface WorkspaceAgentMessageCenterAttentionDeckProps {
|
|
270
|
+
items: WorkspaceAgentMessageCenterItem[];
|
|
271
|
+
highlightedItemId?: string | null;
|
|
272
|
+
submittingPromptKey: string | null;
|
|
273
|
+
registerNode?: (itemId: string, node: HTMLElement | null) => void;
|
|
274
|
+
renderCard?: (input: WorkspaceAgentMessageCenterAttentionDeckRenderCardInput) => ReactNode;
|
|
275
|
+
onLinkAction?: (action: WorkspaceLinkAction) => void;
|
|
276
|
+
onOpenChat: (input: {
|
|
277
|
+
agentSessionId: string;
|
|
278
|
+
provider: string;
|
|
279
|
+
}) => void;
|
|
280
|
+
onSubmitPrompt: (item: WorkspaceAgentMessageCenterItem, input: {
|
|
281
|
+
action?: string;
|
|
282
|
+
optionId?: string;
|
|
283
|
+
payload?: Record<string, unknown>;
|
|
284
|
+
requestId: string;
|
|
285
|
+
}) => void;
|
|
286
|
+
}
|
|
287
|
+
interface WorkspaceAgentMessageCenterAttentionDeckRenderCardInput {
|
|
288
|
+
cardRef?: (node: HTMLElement | null) => void;
|
|
289
|
+
highlighted: boolean;
|
|
290
|
+
interactive: boolean;
|
|
291
|
+
isSubmitting: boolean;
|
|
292
|
+
item: WorkspaceAgentMessageCenterItem;
|
|
293
|
+
onSubmitPrompt: (input: {
|
|
294
|
+
action?: string;
|
|
295
|
+
optionId?: string;
|
|
296
|
+
payload?: Record<string, unknown>;
|
|
297
|
+
requestId: string;
|
|
298
|
+
}) => void;
|
|
299
|
+
}
|
|
300
|
+
declare function WorkspaceAgentMessageCenterAttentionDeck({ items, highlightedItemId, submittingPromptKey, registerNode, renderCard, onLinkAction, onOpenChat, onSubmitPrompt }: WorkspaceAgentMessageCenterAttentionDeckProps): JSX.Element | null;
|
|
301
|
+
|
|
302
|
+
declare function MessageCenterViewMenu({ filtersActive, groupBy, providerFilters, providerOptions, statusFilters, statusOptions, onClearFilters, onGroupByChange, onProviderToggle, onStatusToggle }: {
|
|
303
|
+
filtersActive?: boolean;
|
|
304
|
+
groupBy: MessageCenterGroupBy;
|
|
305
|
+
providerFilters: Set<string> | null;
|
|
306
|
+
providerOptions: MessageCenterProviderOption[];
|
|
307
|
+
statusFilters: Set<MessageCenterStatusFilter> | null;
|
|
308
|
+
statusOptions: MessageCenterStatusOption[];
|
|
309
|
+
onClearFilters: () => void;
|
|
310
|
+
onGroupByChange: (groupBy: MessageCenterGroupBy) => void;
|
|
311
|
+
onProviderToggle: (provider: string) => void;
|
|
312
|
+
onStatusToggle: (status: MessageCenterStatusFilter) => void;
|
|
313
|
+
}): JSX.Element;
|
|
314
|
+
|
|
315
|
+
interface AgentVerticalScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
|
|
316
|
+
children: ReactNode;
|
|
317
|
+
viewportClassName?: string;
|
|
318
|
+
scrollbarClassName?: string;
|
|
319
|
+
scrollbarThumbClassName?: string;
|
|
320
|
+
syncKey?: unknown;
|
|
321
|
+
}
|
|
322
|
+
declare const AgentVerticalScrollArea: react.ForwardRefExoticComponent<AgentVerticalScrollAreaProps & react.RefAttributes<HTMLDivElement>>;
|
|
151
323
|
|
|
152
324
|
/**
|
|
153
325
|
* Where the prompt is rendered, which sets its interaction budget:
|
|
@@ -231,4 +403,13 @@ declare function approvalOptionDisplayLabel(option: {
|
|
|
231
403
|
|
|
232
404
|
declare function stabilizeWorkspaceAgentMessageCenterModel(previous: WorkspaceAgentMessageCenterModel | null, next: WorkspaceAgentMessageCenterModel): WorkspaceAgentMessageCenterModel;
|
|
233
405
|
|
|
234
|
-
|
|
406
|
+
declare const messageCenterFiltersStorageKey = "tutti.agent-message-center.filters";
|
|
407
|
+
interface MessageCenterFilterPreferences {
|
|
408
|
+
groupBy: MessageCenterGroupBy;
|
|
409
|
+
statusFilters: Set<MessageCenterStatusFilter> | null;
|
|
410
|
+
providerFilters: Set<string> | null;
|
|
411
|
+
}
|
|
412
|
+
declare function readMessageCenterFilterPreferences(): MessageCenterFilterPreferences;
|
|
413
|
+
declare function writeMessageCenterFilterPreferences(preferences: MessageCenterFilterPreferences): void;
|
|
414
|
+
|
|
415
|
+
export { AgentInteractivePromptSurface, AgentVerticalScrollArea, type BuildWorkspaceAgentMessageCenterOptions, type MessageCenterAgentUserStack, type MessageCenterFilterPreferences, type MessageCenterGroup, type MessageCenterGroupBy, MessageCenterGroupHeading, MessageCenterIdentityAvatarMark, MessageCenterIdentityAvatarStack, MessageCenterIdentityLabel, MessageCenterOpenChatButton, type MessageCenterProviderOption, type MessageCenterStatusFilter, type MessageCenterStatusOption, type MessageCenterStatusTone, MessageCenterSummary, type MessageCenterTranslate, type PromptToolDetail, WorkspaceAgentMessageCenterAttentionDeck, type WorkspaceAgentMessageCenterAttentionDeckProps, type WorkspaceAgentMessageCenterAttentionDeckRenderCardInput, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelProps, WorkspaceAgentMessageCenterStack, MessageCenterViewMenu as WorkspaceAgentMessageCenterViewMenu, approvalOptionDisplayLabel, buildMessageCenterProviderOptions, buildMessageCenterStatusOptions, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModel, getPromptToolDetails, groupMessageCenterItems, isInteractiveMessageCenterItem, isPromptRequestIdTitle, isRecentlyCompletedMessageCenterItem, isWaitingMessageCenterItem, itemMatchesViewFilters, managedAgentRoundedIconUrl, messageCenterAgentUserStackId, messageCenterFiltersStorageKey, messageCenterGroupLabel, messageCenterStackPreviewNodes, messageCenterStackPreviewText, messageCenterStackRenderId, messageCenterStackScrollSyncSegment, messageCenterStatusFilterValue, messageCenterStatusTone, messageCenterStatusToneClass, partitionMessageCenterItemsByAgentUser, readMessageCenterFilterPreferences, resolveMessageCenterNotificationAction, selectMessageCenterAttentionDeckItems, stabilizeWorkspaceAgentMessageCenterModel, statusFilterSummary, userAvatarPlaceholderUrl, workspaceAgentActivityStatusLabel, writeMessageCenterFilterPreferences };
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
approvalOptionDisplayLabel,
|
|
7
7
|
getPromptToolDetails,
|
|
8
8
|
isPromptRequestIdTitle
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-M7GNA2WD.js";
|
|
10
10
|
import {
|
|
11
11
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
12
12
|
PLAN_IMPLEMENTATION_PROMPT,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
extractExitPlanModeOptions,
|
|
26
26
|
isExitPlanSwitchModeInput,
|
|
27
27
|
normalizeAskUserQuestions
|
|
28
|
-
} from "../chunk-
|
|
28
|
+
} from "../chunk-RKZMETSQ.js";
|
|
29
29
|
import {
|
|
30
30
|
managedAgentRoundedIconUrl,
|
|
31
31
|
userAvatarPlaceholderUrl,
|
|
@@ -964,7 +964,12 @@ function positiveNumber2(value) {
|
|
|
964
964
|
}
|
|
965
965
|
|
|
966
966
|
// agent-message-center/WorkspaceAgentMessageCenterAttentionDeck.tsx
|
|
967
|
-
import {
|
|
967
|
+
import {
|
|
968
|
+
useEffect as useEffect2,
|
|
969
|
+
useMemo,
|
|
970
|
+
useRef as useRef2,
|
|
971
|
+
useState as useState2
|
|
972
|
+
} from "react";
|
|
968
973
|
import { cn as cn3 } from "@tutti-os/ui-system";
|
|
969
974
|
|
|
970
975
|
// agent-message-center/WorkspaceAgentMessageCenterCard.tsx
|
|
@@ -1003,11 +1008,15 @@ function stopMessageCenterTextPointerPropagation(event) {
|
|
|
1003
1008
|
var WorkspaceAgentMessageCenterCard = memo(
|
|
1004
1009
|
function WorkspaceAgentMessageCenterCard2({
|
|
1005
1010
|
cardRef,
|
|
1011
|
+
actionsAccessory,
|
|
1012
|
+
footerAccessory,
|
|
1013
|
+
headerAccessory,
|
|
1006
1014
|
highlighted = false,
|
|
1007
1015
|
interactive = true,
|
|
1008
1016
|
item,
|
|
1009
1017
|
isSubmitting,
|
|
1010
1018
|
lazySummary = false,
|
|
1019
|
+
summaryAccessory,
|
|
1011
1020
|
onLinkAction,
|
|
1012
1021
|
onOpenChat,
|
|
1013
1022
|
onSubmitPrompt
|
|
@@ -1059,29 +1068,32 @@ var WorkspaceAgentMessageCenterCard = memo(
|
|
|
1059
1068
|
),
|
|
1060
1069
|
item.cwd ? /* @__PURE__ */ jsx2(ProjectPathInfo, { path: item.cwd }) : null
|
|
1061
1070
|
] }),
|
|
1062
|
-
/* @__PURE__ */ jsxs(
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
title: statusLabel,
|
|
1071
|
-
children: [
|
|
1072
|
-
/* @__PURE__ */ jsx2(
|
|
1073
|
-
StatusDot,
|
|
1074
|
-
{
|
|
1075
|
-
tone: statusTone,
|
|
1076
|
-
pulse: isWaitingMessageCenterItem(item) || item.status === "working",
|
|
1077
|
-
size: "sm",
|
|
1078
|
-
title: statusLabel
|
|
1079
|
-
}
|
|
1071
|
+
/* @__PURE__ */ jsxs("span", { className: "flex shrink-0 items-center gap-2", children: [
|
|
1072
|
+
headerAccessory,
|
|
1073
|
+
/* @__PURE__ */ jsxs(
|
|
1074
|
+
"span",
|
|
1075
|
+
{
|
|
1076
|
+
className: cn2(
|
|
1077
|
+
"workspace-agent-message-center__status inline-flex shrink-0 items-center gap-1.5 text-[11px] font-semibold leading-4",
|
|
1078
|
+
messageCenterStatusToneClass(statusTone)
|
|
1080
1079
|
),
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1080
|
+
"data-status": displayStatus,
|
|
1081
|
+
title: statusLabel,
|
|
1082
|
+
children: [
|
|
1083
|
+
/* @__PURE__ */ jsx2(
|
|
1084
|
+
StatusDot,
|
|
1085
|
+
{
|
|
1086
|
+
tone: statusTone,
|
|
1087
|
+
pulse: isWaitingMessageCenterItem(item) || item.status === "working",
|
|
1088
|
+
size: "sm",
|
|
1089
|
+
title: statusLabel
|
|
1090
|
+
}
|
|
1091
|
+
),
|
|
1092
|
+
/* @__PURE__ */ jsx2("span", { children: statusLabel })
|
|
1093
|
+
]
|
|
1094
|
+
}
|
|
1095
|
+
)
|
|
1096
|
+
] })
|
|
1085
1097
|
] }),
|
|
1086
1098
|
summary ? /* @__PURE__ */ jsx2(
|
|
1087
1099
|
MessageCenterSummary,
|
|
@@ -1093,6 +1105,7 @@ var WorkspaceAgentMessageCenterCard = memo(
|
|
|
1093
1105
|
emptyLabel: t("agentHost.workspaceAgentMessageCenterNoSummary")
|
|
1094
1106
|
}
|
|
1095
1107
|
) : null,
|
|
1108
|
+
summaryAccessory,
|
|
1096
1109
|
prompt && interactive ? /* @__PURE__ */ jsx2("div", { className: "min-w-0", children: /* @__PURE__ */ jsx2(
|
|
1097
1110
|
AgentInteractivePromptSurface,
|
|
1098
1111
|
{
|
|
@@ -1108,9 +1121,11 @@ var WorkspaceAgentMessageCenterCard = memo(
|
|
|
1108
1121
|
)
|
|
1109
1122
|
}
|
|
1110
1123
|
) }) : null,
|
|
1124
|
+
footerAccessory,
|
|
1111
1125
|
/* @__PURE__ */ jsx2(
|
|
1112
1126
|
MessageCenterOpenChatButton,
|
|
1113
1127
|
{
|
|
1128
|
+
actionsAccessory,
|
|
1114
1129
|
provider: item.provider,
|
|
1115
1130
|
item,
|
|
1116
1131
|
label: t("agentHost.workspaceAgentMessageCenterOpenChat"),
|
|
@@ -1743,6 +1758,7 @@ function useDeferredMessageCenterSummaryMeasureReady(ref, enabled) {
|
|
|
1743
1758
|
return ready;
|
|
1744
1759
|
}
|
|
1745
1760
|
function MessageCenterOpenChatButton({
|
|
1761
|
+
actionsAccessory,
|
|
1746
1762
|
alwaysVisible = false,
|
|
1747
1763
|
item,
|
|
1748
1764
|
label,
|
|
@@ -1758,33 +1774,36 @@ function MessageCenterOpenChatButton({
|
|
|
1758
1774
|
provider
|
|
1759
1775
|
}
|
|
1760
1776
|
),
|
|
1761
|
-
/* @__PURE__ */ jsxs(
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
agentSessionId: item.agentSessionId,
|
|
1773
|
-
provider: item.provider
|
|
1774
|
-
}),
|
|
1775
|
-
children: [
|
|
1776
|
-
/* @__PURE__ */ jsx2(
|
|
1777
|
-
ExternalLink,
|
|
1778
|
-
{
|
|
1779
|
-
className: "size-[15px]",
|
|
1780
|
-
strokeWidth: 2.2,
|
|
1781
|
-
"aria-hidden": "true"
|
|
1782
|
-
}
|
|
1777
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex shrink-0 items-center gap-2", children: [
|
|
1778
|
+
actionsAccessory,
|
|
1779
|
+
/* @__PURE__ */ jsxs(
|
|
1780
|
+
Button,
|
|
1781
|
+
{
|
|
1782
|
+
type: "button",
|
|
1783
|
+
variant: "ghost",
|
|
1784
|
+
size: "default",
|
|
1785
|
+
className: cn2(
|
|
1786
|
+
"workspace-agent-message-center__open-chat-button h-auto gap-1.5 border-0 bg-transparent p-0 text-[var(--accent-codex)] shadow-none transition-[color,opacity,visibility] hover:bg-transparent hover:text-[var(--accent-codex)] focus-visible:bg-transparent focus-visible:text-[var(--accent-codex)] active:bg-transparent",
|
|
1787
|
+
!alwaysVisible && "invisible opacity-0 group-hover/message-card:visible group-hover/message-card:opacity-100 group-focus-within/message-card:visible group-focus-within/message-card:opacity-100"
|
|
1783
1788
|
),
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1789
|
+
onClick: () => onOpenChat({
|
|
1790
|
+
agentSessionId: item.agentSessionId,
|
|
1791
|
+
provider: item.provider
|
|
1792
|
+
}),
|
|
1793
|
+
children: [
|
|
1794
|
+
/* @__PURE__ */ jsx2(
|
|
1795
|
+
ExternalLink,
|
|
1796
|
+
{
|
|
1797
|
+
className: "size-[15px]",
|
|
1798
|
+
strokeWidth: 2.2,
|
|
1799
|
+
"aria-hidden": "true"
|
|
1800
|
+
}
|
|
1801
|
+
),
|
|
1802
|
+
label
|
|
1803
|
+
]
|
|
1804
|
+
}
|
|
1805
|
+
)
|
|
1806
|
+
] })
|
|
1788
1807
|
] });
|
|
1789
1808
|
}
|
|
1790
1809
|
function MessageCenterIdentityLabel({
|
|
@@ -2033,6 +2052,7 @@ function WorkspaceAgentMessageCenterAttentionDeck({
|
|
|
2033
2052
|
highlightedItemId = null,
|
|
2034
2053
|
submittingPromptKey,
|
|
2035
2054
|
registerNode,
|
|
2055
|
+
renderCard,
|
|
2036
2056
|
onLinkAction,
|
|
2037
2057
|
onOpenChat,
|
|
2038
2058
|
onSubmitPrompt
|
|
@@ -2130,7 +2150,14 @@ function WorkspaceAgentMessageCenterAttentionDeck({
|
|
|
2130
2150
|
);
|
|
2131
2151
|
}
|
|
2132
2152
|
},
|
|
2133
|
-
children:
|
|
2153
|
+
children: renderCard ? renderCard({
|
|
2154
|
+
highlighted: false,
|
|
2155
|
+
interactive: false,
|
|
2156
|
+
isSubmitting: false,
|
|
2157
|
+
item: leavingItem,
|
|
2158
|
+
onSubmitPrompt: () => {
|
|
2159
|
+
}
|
|
2160
|
+
}) : /* @__PURE__ */ jsx3(
|
|
2134
2161
|
WorkspaceAgentMessageCenterCard,
|
|
2135
2162
|
{
|
|
2136
2163
|
interactive: false,
|
|
@@ -2151,7 +2178,14 @@ function WorkspaceAgentMessageCenterAttentionDeck({
|
|
|
2151
2178
|
"relative min-w-0 rounded-lg motion-safe:animate-in motion-safe:fade-in-0 motion-safe:slide-in-from-top-1 motion-safe:duration-300 motion-reduce:animate-none",
|
|
2152
2179
|
peekCount > 1 ? "shadow-[0_7px_0_-4px_var(--background-fronted),0_7px_0_-3px_var(--line-2),0_14px_0_-8px_var(--background-fronted),0_14px_0_-7px_var(--line-2)]" : peekCount > 0 && "shadow-[0_7px_0_-4px_var(--background-fronted),0_7px_0_-3px_var(--line-2)]"
|
|
2153
2180
|
),
|
|
2154
|
-
children:
|
|
2181
|
+
children: renderCard ? renderCard({
|
|
2182
|
+
cardRef: registerNode ? (node) => registerNode(topItem.id, node) : void 0,
|
|
2183
|
+
highlighted: topItem.id === highlightedItemId,
|
|
2184
|
+
interactive: true,
|
|
2185
|
+
isSubmitting: topIsSubmitting || isTopCoolingDown,
|
|
2186
|
+
item: topItem,
|
|
2187
|
+
onSubmitPrompt: (input) => onSubmitPrompt(topItem, input)
|
|
2188
|
+
}) : /* @__PURE__ */ jsx3(
|
|
2155
2189
|
WorkspaceAgentMessageCenterCard,
|
|
2156
2190
|
{
|
|
2157
2191
|
cardRef: registerNode ? (node) => registerNode(topItem.id, node) : void 0,
|
|
@@ -3392,19 +3426,51 @@ function messageCenterPromptEqual(left, right) {
|
|
|
3392
3426
|
}
|
|
3393
3427
|
export {
|
|
3394
3428
|
AgentInteractivePromptSurface,
|
|
3429
|
+
AgentVerticalScrollArea,
|
|
3430
|
+
MessageCenterGroupHeading,
|
|
3431
|
+
MessageCenterIdentityAvatarMark,
|
|
3432
|
+
MessageCenterIdentityAvatarStack,
|
|
3433
|
+
MessageCenterIdentityLabel,
|
|
3434
|
+
MessageCenterOpenChatButton,
|
|
3435
|
+
MessageCenterSummary,
|
|
3395
3436
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
3396
3437
|
PLAN_IMPLEMENTATION_PROMPT,
|
|
3438
|
+
WorkspaceAgentMessageCenterAttentionDeck,
|
|
3397
3439
|
WorkspaceAgentMessageCenterCard,
|
|
3398
3440
|
WorkspaceAgentMessageCenterPanel,
|
|
3441
|
+
WorkspaceAgentMessageCenterStack,
|
|
3442
|
+
MessageCenterViewMenu as WorkspaceAgentMessageCenterViewMenu,
|
|
3399
3443
|
approvalOptionDisplayLabel,
|
|
3444
|
+
buildMessageCenterProviderOptions,
|
|
3445
|
+
buildMessageCenterStatusOptions,
|
|
3400
3446
|
buildWorkspaceAgentInteractivePromptLabels,
|
|
3401
3447
|
buildWorkspaceAgentMessageCenterModel,
|
|
3402
3448
|
getPromptToolDetails,
|
|
3449
|
+
groupMessageCenterItems,
|
|
3450
|
+
isInteractiveMessageCenterItem,
|
|
3403
3451
|
isPromptRequestIdTitle,
|
|
3452
|
+
isRecentlyCompletedMessageCenterItem,
|
|
3404
3453
|
isWaitingMessageCenterItem,
|
|
3454
|
+
itemMatchesViewFilters,
|
|
3405
3455
|
managedAgentRoundedIconUrl,
|
|
3456
|
+
messageCenterAgentUserStackId,
|
|
3457
|
+
messageCenterFiltersStorageKey,
|
|
3458
|
+
messageCenterGroupLabel,
|
|
3459
|
+
messageCenterStackPreviewNodes,
|
|
3460
|
+
messageCenterStackPreviewText,
|
|
3461
|
+
messageCenterStackRenderId,
|
|
3462
|
+
messageCenterStackScrollSyncSegment,
|
|
3463
|
+
messageCenterStatusFilterValue,
|
|
3464
|
+
messageCenterStatusTone,
|
|
3465
|
+
messageCenterStatusToneClass,
|
|
3466
|
+
partitionMessageCenterItemsByAgentUser,
|
|
3467
|
+
readMessageCenterFilterPreferences,
|
|
3468
|
+
resolveMessageCenterNotificationAction,
|
|
3469
|
+
selectMessageCenterAttentionDeckItems,
|
|
3406
3470
|
stabilizeWorkspaceAgentMessageCenterModel,
|
|
3471
|
+
statusFilterSummary,
|
|
3407
3472
|
userAvatarPlaceholderUrl,
|
|
3408
|
-
workspaceAgentActivityStatusLabel
|
|
3473
|
+
workspaceAgentActivityStatusLabel,
|
|
3474
|
+
writeMessageCenterFilterPreferences
|
|
3409
3475
|
};
|
|
3410
3476
|
//# sourceMappingURL=index.js.map
|