@tutti-os/agent-gui 0.0.92 → 0.0.94

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 (64) hide show
  1. package/dist/agent-conversation/index.d.ts +4 -4
  2. package/dist/agent-conversation/index.js +6 -6
  3. package/dist/agent-env/index.d.ts +4 -2
  4. package/dist/agent-env/index.js +1 -1
  5. package/dist/agent-message-center/index.d.ts +5 -3
  6. package/dist/agent-message-center/index.js +122 -105
  7. package/dist/agent-message-center/index.js.map +1 -1
  8. package/dist/{agentConversationVM-CfXN_TQ2.d.ts → agentConversationVM-Cl4G0Lln.d.ts} +1 -1
  9. package/dist/{agentGuiNodeTypes-rGaDqxVR.d.ts → agentGuiNodeTypes-CAioPXK9.d.ts} +8 -3
  10. package/dist/app/renderer/agentactivity.css +312 -2
  11. package/dist/app/renderer/assets/icons/agent-vinyl-player-chassis.png +0 -0
  12. package/dist/app/renderer/assets/icons/agent-vinyl-tonearm.png +0 -0
  13. package/dist/app/renderer/assets/icons/agent-vinyls/claude-vinyl.png +0 -0
  14. package/dist/app/renderer/assets/icons/agent-vinyls/codex-vinyl.png +0 -0
  15. package/dist/app/renderer/assets/icons/agent-vinyls/cursor-vinyl.png +0 -0
  16. package/dist/app/renderer/assets/icons/agent-vinyls/hermes-vinyl.png +0 -0
  17. package/dist/app/renderer/assets/icons/agent-vinyls/openclaw-vinyl.png +0 -0
  18. package/dist/app/renderer/assets/icons/agent-vinyls/opencode-vinyl.png +0 -0
  19. package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
  20. package/dist/{chunk-AOVPGJBC.js → chunk-554VG7ZW.js} +2 -2
  21. package/dist/{chunk-U7D7G3UU.js → chunk-5FE7M42A.js} +2 -2
  22. package/dist/{chunk-XQUUELKF.js → chunk-7BUYFVRI.js} +2 -2
  23. package/dist/{chunk-M2LWH54R.js → chunk-AWAIUYG4.js} +45 -15
  24. package/dist/{chunk-M2LWH54R.js.map → chunk-AWAIUYG4.js.map} +1 -1
  25. package/dist/{chunk-KQE5KV2V.js → chunk-BXVPOGYK.js} +2 -2
  26. package/dist/{chunk-3HARXLAZ.js → chunk-E5FOXRUM.js} +2 -2
  27. package/dist/{chunk-4SQNOOJ3.js → chunk-IGY4ASUF.js} +4 -4
  28. package/dist/{chunk-SXDLSEHO.js → chunk-MATIJPGF.js} +3 -3
  29. package/dist/{chunk-7QHBFRG5.js → chunk-P72YLKC6.js} +25 -13
  30. package/dist/chunk-P72YLKC6.js.map +1 -0
  31. package/dist/{chunk-PSLAWU25.js → chunk-R2EWECUP.js} +7 -1
  32. package/dist/chunk-R2EWECUP.js.map +1 -0
  33. package/dist/{chunk-HOSX5C5V.js → chunk-SCLLP5DO.js} +2 -2
  34. package/dist/{chunk-VWXFFSIM.js → chunk-UBDPV34P.js} +7 -1
  35. package/dist/chunk-UBDPV34P.js.map +1 -0
  36. package/dist/{chunk-UNO7CEAF.js → chunk-ZUW4B5AT.js} +2 -2
  37. package/dist/context-mention-palette/index.js +6 -6
  38. package/dist/i18n/index.d.ts +6 -0
  39. package/dist/i18n/index.js +2 -2
  40. package/dist/index.d.ts +4 -4
  41. package/dist/index.js +1068 -810
  42. package/dist/index.js.map +1 -1
  43. package/dist/plan-decision-ops.d.ts +2 -2
  44. package/dist/queued-prompt-runtime.d.ts +3 -3
  45. package/dist/workbench/contribution.js +1 -1
  46. package/dist/workbench/index.d.ts +4 -1
  47. package/dist/workbench/index.js +4 -4
  48. package/dist/workbench/sessionTitle.js +3 -3
  49. package/dist/workspace-agent-generated-files.d.ts +1 -1
  50. package/dist/workspace-agent-generated-files.js +3 -3
  51. package/dist/{workspaceAgentActivityListViewModel-TXH1VXrk.d.ts → workspaceAgentActivityListViewModel-BzV-cf0D.d.ts} +1 -0
  52. package/package.json +14 -14
  53. package/dist/chunk-7QHBFRG5.js.map +0 -1
  54. package/dist/chunk-PSLAWU25.js.map +0 -1
  55. package/dist/chunk-VWXFFSIM.js.map +0 -1
  56. /package/dist/{chunk-AOVPGJBC.js.map → chunk-554VG7ZW.js.map} +0 -0
  57. /package/dist/{chunk-U7D7G3UU.js.map → chunk-5FE7M42A.js.map} +0 -0
  58. /package/dist/{chunk-XQUUELKF.js.map → chunk-7BUYFVRI.js.map} +0 -0
  59. /package/dist/{chunk-KQE5KV2V.js.map → chunk-BXVPOGYK.js.map} +0 -0
  60. /package/dist/{chunk-3HARXLAZ.js.map → chunk-E5FOXRUM.js.map} +0 -0
  61. /package/dist/{chunk-4SQNOOJ3.js.map → chunk-IGY4ASUF.js.map} +0 -0
  62. /package/dist/{chunk-SXDLSEHO.js.map → chunk-MATIJPGF.js.map} +0 -0
  63. /package/dist/{chunk-HOSX5C5V.js.map → chunk-SCLLP5DO.js.map} +0 -0
  64. /package/dist/{chunk-UNO7CEAF.js.map → chunk-ZUW4B5AT.js.map} +0 -0
@@ -2,10 +2,10 @@ import * as react from 'react';
2
2
  import { ReactNode, JSX } from 'react';
3
3
  import { W as WorkspaceLinkAction } from '../workspaceLinkActions-DS9LWqzI.js';
4
4
  import { A as AgentMessageMarkdownWorkspaceAppIcon } from '../AgentMessageMarkdown-DeYPURtF.js';
5
- import { c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-CfXN_TQ2.js';
6
- export { B as BuildWorkspaceAgentSessionDetailInput, d as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-CfXN_TQ2.js';
7
- import { e as AgentGUIProviderSkillOption } from '../agentGuiNodeTypes-rGaDqxVR.js';
8
- export { W as WorkspaceAgentActivityCard, n as WorkspaceAgentActivitySession, q as WorkspaceAgentActivityTimelineItem } from '../workspaceAgentActivityListViewModel-TXH1VXrk.js';
5
+ import { c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-Cl4G0Lln.js';
6
+ export { B as BuildWorkspaceAgentSessionDetailInput, d as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-Cl4G0Lln.js';
7
+ import { e as AgentGUIProviderSkillOption } from '../agentGuiNodeTypes-CAioPXK9.js';
8
+ export { W as WorkspaceAgentActivityCard, n as WorkspaceAgentActivitySession, q as WorkspaceAgentActivityTimelineItem } from '../workspaceAgentActivityListViewModel-BzV-cf0D.js';
9
9
  import '@tutti-os/workspace-issue-manager/core';
10
10
  import '@tutti-os/agent-activity-core';
11
11
  import '../types-PLFZ8SBX.js';
@@ -6,20 +6,20 @@ import {
6
6
  projectAgentConversationVM,
7
7
  reconcileProjectedAgentConversationVM,
8
8
  useProjectedAgentConversation
9
- } from "../chunk-7QHBFRG5.js";
10
- import "../chunk-XQUUELKF.js";
11
- import "../chunk-PSLAWU25.js";
12
- import "../chunk-KQE5KV2V.js";
9
+ } from "../chunk-P72YLKC6.js";
10
+ import "../chunk-7BUYFVRI.js";
11
+ import "../chunk-R2EWECUP.js";
12
+ import "../chunk-BXVPOGYK.js";
13
13
  import "../chunk-Y35GDLP2.js";
14
14
  import "../chunk-LUGELG5V.js";
15
15
  import "../chunk-LR4FA5X6.js";
16
16
  import "../chunk-4HP6V2YA.js";
17
17
  import {
18
18
  translate
19
- } from "../chunk-U7D7G3UU.js";
19
+ } from "../chunk-5FE7M42A.js";
20
20
  import "../chunk-PJP5BUU6.js";
21
21
  import "../chunk-XDV4ZRVK.js";
22
- import "../chunk-VWXFFSIM.js";
22
+ import "../chunk-UBDPV34P.js";
23
23
 
24
24
  // shared/WorkspaceAgentSessionDetail.tsx
25
25
  import { useMemo } from "react";
@@ -40,7 +40,7 @@ declare function useAgentEnvPanelRequest(): AgentEnvPanelRequest;
40
40
  *
41
41
  * Keep this union aligned with the Go switch in `visibleFailureCode`.
42
42
  */
43
- type AgentRunErrorCode = "auth_required" | "cli_not_found" | "cli_version_unsupported" | "network_error" | "runtime_unavailable" | "request_timed_out" | "provider_config_timeout" | "provider_stream_disconnected" | "provider_concurrency_limit" | "quota_or_rate_limit" | "process_exited" | "provider_error" | "unknown";
43
+ type AgentRunErrorCode = "auth_required" | "cli_not_found" | "cli_version_unsupported" | "network_error" | "runtime_unavailable" | "request_timed_out" | "provider_config_timeout" | "provider_stream_disconnected" | "provider_concurrency_limit" | "insufficient_credits" | "quota_or_rate_limit" | "process_exited" | "provider_error" | "unknown";
44
44
  interface AgentErrorPresentation {
45
45
  /**
46
46
  * i18n key for the one human sentence shown in the card, or null to let the
@@ -53,8 +53,10 @@ interface AgentErrorPresentation {
53
53
  * case no call-to-action is shown (showing one would misrepresent reality).
54
54
  */
55
55
  focus: AgentEnvPanelFocus | null;
56
- /** i18n key for the remediation button. Only meaningful when `focus` is set. */
56
+ /** i18n key for the remediation button. */
57
57
  actionKey: string | null;
58
+ /** External remediation destination, when the action is account-level. */
59
+ externalUrl?: string | null;
58
60
  }
59
61
  /**
60
62
  * Resolves the card presentation for a run-failure code. Returns null for codes
@@ -5,7 +5,7 @@ import {
5
5
  openAgentEnvPanel,
6
6
  resolveAgentErrorPresentation,
7
7
  useAgentEnvPanelRequest
8
- } from "../chunk-PSLAWU25.js";
8
+ } from "../chunk-R2EWECUP.js";
9
9
 
10
10
  // shared/agentEnv/codexSetupContract.ts
11
11
  function asRecord(value) {
@@ -4,8 +4,8 @@ import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
4
4
  import { TranslateFn, useTranslation, AgentGuiI18nLocale } from '../i18n/index.js';
5
5
  import { W as WorkspaceLinkAction } from '../workspaceLinkActions-DS9LWqzI.js';
6
6
  import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot } from '@tutti-os/agent-activity-core';
7
- import { b as AgentConversationPromptVM } from '../agentConversationVM-CfXN_TQ2.js';
8
- import { o as WorkspaceAgentActivityStatus } from '../workspaceAgentActivityListViewModel-TXH1VXrk.js';
7
+ import { b as AgentConversationPromptVM } from '../agentConversationVM-Cl4G0Lln.js';
8
+ import { o as WorkspaceAgentActivityStatus } from '../workspaceAgentActivityListViewModel-BzV-cf0D.js';
9
9
  export { PLAN_IMPLEMENTATION_ACTION_IMPLEMENT, PLAN_IMPLEMENTATION_PROMPT } from '../plan-decision-ops.js';
10
10
  import '@tutti-os/workspace-issue-manager/core';
11
11
 
@@ -235,6 +235,7 @@ type MessageCenterStatusTone = "amber" | "blue" | "green" | "neutral" | "red";
235
235
  declare function messageCenterStatusTone(item: WorkspaceAgentMessageCenterItem): MessageCenterStatusTone;
236
236
  declare function messageCenterStatusToneClass(tone: MessageCenterStatusTone): string;
237
237
 
238
+ type WorkspaceAgentMessageCenterPresentation = "drawer" | "embedded";
238
239
  interface WorkspaceAgentMessageCenterPanelProps {
239
240
  i18n?: I18nRuntime<string> | null;
240
241
  locale?: AgentGuiI18nLocale;
@@ -242,6 +243,7 @@ interface WorkspaceAgentMessageCenterPanelProps {
242
243
  model: WorkspaceAgentMessageCenterModel;
243
244
  highlightedItemId?: string | null;
244
245
  portalContainer?: HTMLElement | null;
246
+ presentation?: WorkspaceAgentMessageCenterPresentation;
245
247
  onClose: () => void;
246
248
  onHighlightedItemSettled?: (itemId: string) => void;
247
249
  onLinkAction?: (action: WorkspaceLinkAction) => void;
@@ -413,4 +415,4 @@ interface MessageCenterFilterPreferences {
413
415
  declare function readMessageCenterFilterPreferences(): MessageCenterFilterPreferences;
414
416
  declare function writeMessageCenterFilterPreferences(preferences: MessageCenterFilterPreferences): void;
415
417
 
416
- 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 };
418
+ 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, type WorkspaceAgentMessageCenterPresentation, 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 };
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  formatAgentGuiConversationPlainTitle
3
- } from "../chunk-UNO7CEAF.js";
3
+ } from "../chunk-ZUW4B5AT.js";
4
4
  import {
5
5
  AgentInteractivePromptSurface,
6
6
  approvalOptionDisplayLabel,
7
7
  getPromptToolDetails,
8
8
  isPromptRequestIdTitle
9
- } from "../chunk-SXDLSEHO.js";
9
+ } from "../chunk-MATIJPGF.js";
10
10
  import {
11
11
  PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
12
12
  PLAN_IMPLEMENTATION_PROMPT,
@@ -15,7 +15,7 @@ import {
15
15
  } from "../chunk-MKHDRIGN.js";
16
16
  import {
17
17
  formatAgentSessionMentionText
18
- } from "../chunk-HOSX5C5V.js";
18
+ } from "../chunk-SCLLP5DO.js";
19
19
  import {
20
20
  AgentMessageMarkdown,
21
21
  CustomScrollArea,
@@ -25,11 +25,11 @@ import {
25
25
  extractExitPlanModeOptions,
26
26
  isExitPlanSwitchModeInput,
27
27
  normalizeAskUserQuestions
28
- } from "../chunk-XQUUELKF.js";
28
+ } from "../chunk-7BUYFVRI.js";
29
29
  import {
30
30
  userAvatarPlaceholderUrl,
31
31
  workspaceAgentActivityStatusLabel
32
- } from "../chunk-AOVPGJBC.js";
32
+ } from "../chunk-554VG7ZW.js";
33
33
  import {
34
34
  resolveWorkspaceAgentSessionSortTimeUnixMs
35
35
  } from "../chunk-IBIMGLCD.js";
@@ -43,10 +43,10 @@ import {
43
43
  AgentGuiI18nProvider,
44
44
  getActiveUiLanguage,
45
45
  useTranslation
46
- } from "../chunk-U7D7G3UU.js";
46
+ } from "../chunk-5FE7M42A.js";
47
47
  import "../chunk-PJP5BUU6.js";
48
48
  import "../chunk-XDV4ZRVK.js";
49
- import "../chunk-VWXFFSIM.js";
49
+ import "../chunk-UBDPV34P.js";
50
50
  import "../chunk-GCBDIQDX.js";
51
51
 
52
52
  // agent-message-center/WorkspaceAgentMessageCenterPanel.tsx
@@ -2861,6 +2861,7 @@ var WorkspaceAgentMessageCenterPanel = memo2(
2861
2861
  model,
2862
2862
  highlightedItemId = null,
2863
2863
  portalContainer = null,
2864
+ presentation = "drawer",
2864
2865
  onClose,
2865
2866
  onHighlightedItemSettled,
2866
2867
  onLinkAction,
@@ -2879,6 +2880,7 @@ var WorkspaceAgentMessageCenterPanel = memo2(
2879
2880
  model,
2880
2881
  highlightedItemId,
2881
2882
  portalContainer,
2883
+ presentation,
2882
2884
  onClose,
2883
2885
  onHighlightedItemSettled,
2884
2886
  onLinkAction,
@@ -2894,6 +2896,7 @@ function WorkspaceAgentMessageCenterPanelContent({
2894
2896
  model,
2895
2897
  highlightedItemId = null,
2896
2898
  portalContainer = null,
2899
+ presentation = "drawer",
2897
2900
  onClose,
2898
2901
  onHighlightedItemSettled,
2899
2902
  onLinkAction,
@@ -3229,6 +3232,116 @@ function WorkspaceAgentMessageCenterPanelContent({
3229
3232
  submittingPromptKey
3230
3233
  ]
3231
3234
  );
3235
+ const panelContents = /* @__PURE__ */ jsxs4(TooltipProvider, { delayDuration: MESSAGE_CENTER_TOOLTIP_DELAY_MS, children: [
3236
+ /* @__PURE__ */ jsx5("div", { className: "flex-none border-b border-[var(--border-1)] px-3.5 pt-3 pb-3", children: /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-center justify-between gap-3", children: [
3237
+ presentation === "drawer" ? /* @__PURE__ */ jsxs4("div", { className: "min-w-0", children: [
3238
+ /* @__PURE__ */ jsx5(DrawerTitle, { className: "truncate text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: t("agentHost.workspaceAgentMessageCenterTitle") }),
3239
+ /* @__PURE__ */ jsx5(DrawerDescription, { className: "truncate text-[11px] leading-4 text-[var(--text-tertiary)]", children: headerSummary })
3240
+ ] }) : /* @__PURE__ */ jsx5("p", { className: "min-w-0 truncate text-[11px] leading-4 text-[var(--text-tertiary)]", children: headerSummary }),
3241
+ /* @__PURE__ */ jsx5(
3242
+ MessageCenterViewMenu,
3243
+ {
3244
+ filtersActive: hasActiveFilters,
3245
+ groupBy,
3246
+ providerFilters,
3247
+ providerOptions,
3248
+ statusFilters,
3249
+ statusOptions,
3250
+ onClearFilters: clearFilters,
3251
+ onGroupByChange: setGroupBy,
3252
+ onProviderToggle: toggleProviderFilter,
3253
+ onStatusToggle: toggleStatusFilter
3254
+ }
3255
+ )
3256
+ ] }) }),
3257
+ /* @__PURE__ */ jsx5(
3258
+ AgentVerticalScrollArea,
3259
+ {
3260
+ className: "min-h-0 flex-1",
3261
+ viewportClassName: "flex h-full w-full flex-col px-3.5 pt-4 pb-4",
3262
+ scrollbarClassName: "top-4 bottom-4",
3263
+ syncKey: scrollSyncKey,
3264
+ children: deckItems.length > 0 || listItems.length > 0 ? /* @__PURE__ */ jsxs4("div", { className: "flex w-full min-w-0 flex-col gap-4", children: [
3265
+ deckItems.length > 0 ? /* @__PURE__ */ jsx5(
3266
+ WorkspaceAgentMessageCenterAttentionDeck,
3267
+ {
3268
+ items: deckItems,
3269
+ highlightedItemId,
3270
+ submittingPromptKey,
3271
+ registerNode: setItemNode,
3272
+ onLinkAction,
3273
+ onOpenChat,
3274
+ onSubmitPrompt: (item, input) => void submitPrompt(item, input)
3275
+ }
3276
+ ) : null,
3277
+ itemGroupStacks.map((group) => /* @__PURE__ */ jsxs4(
3278
+ "section",
3279
+ {
3280
+ className: "flex min-w-0 flex-col gap-2.5",
3281
+ "aria-label": `${group.label} ${group.items.length}`,
3282
+ children: [
3283
+ /* @__PURE__ */ jsx5("div", { className: "flex min-w-0 items-center justify-between gap-3 px-0.5", children: /* @__PURE__ */ jsx5(MessageCenterGroupHeading, { group }) }),
3284
+ (() => {
3285
+ return group.stacks.map((stack) => {
3286
+ const firstItem = stack.items[0];
3287
+ if (!firstItem) {
3288
+ return null;
3289
+ }
3290
+ if (stack.items.length === 1) {
3291
+ return renderMessageCenterCard(firstItem);
3292
+ }
3293
+ const stackId = messageCenterStackRenderId(
3294
+ group.id,
3295
+ stack.id
3296
+ );
3297
+ return /* @__PURE__ */ jsx5(
3298
+ MessageCenterStack,
3299
+ {
3300
+ expanded: expandedStackIds.has(stackId),
3301
+ groupId: stackId,
3302
+ highlightedItemId,
3303
+ items: stack.items,
3304
+ renderCard: renderMessageCenterCard,
3305
+ onCollapse: collapseStack,
3306
+ onExpand: expandStack
3307
+ },
3308
+ stackId
3309
+ );
3310
+ });
3311
+ })()
3312
+ ]
3313
+ },
3314
+ group.id
3315
+ ))
3316
+ ] }) : model.items.length > 0 ? /* @__PURE__ */ jsxs4("div", { className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-2.5 px-6 py-8 text-center text-[13px] text-[var(--text-tertiary)]", children: [
3317
+ /* @__PURE__ */ jsx5("span", { children: t("agentHost.workspaceAgentMessageCenterFilteredEmpty") }),
3318
+ /* @__PURE__ */ jsx5(
3319
+ Button3,
3320
+ {
3321
+ type: "button",
3322
+ variant: "ghost",
3323
+ size: "sm",
3324
+ className: "border border-[var(--line-2)] bg-[var(--background-fronted)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",
3325
+ onClick: clearFilters,
3326
+ children: t("agentHost.workspaceAgentMessageCenterClearFilters")
3327
+ }
3328
+ )
3329
+ ] }) : /* @__PURE__ */ jsx5("div", { className: "flex min-h-0 flex-1 items-center justify-center px-6 py-8 text-center text-[13px] text-[var(--text-tertiary)]", children: t("agentHost.workspaceAgentMessageCenterEmpty") })
3330
+ }
3331
+ )
3332
+ ] });
3333
+ if (presentation === "embedded") {
3334
+ return /* @__PURE__ */ jsx5(
3335
+ "section",
3336
+ {
3337
+ "aria-label": t("agentHost.workspaceAgentMessageCenterTitle"),
3338
+ className: "t-modal nodrag flex h-full min-h-0 w-full flex-col overflow-hidden bg-[var(--background-panel)] text-[var(--text-primary)] [-webkit-app-region:no-drag]",
3339
+ "data-presentation": "embedded",
3340
+ "data-testid": "workspace-agent-message-center",
3341
+ children: panelContents
3342
+ }
3343
+ );
3344
+ }
3232
3345
  return /* @__PURE__ */ jsx5(
3233
3346
  Drawer,
3234
3347
  {
@@ -3247,108 +3360,12 @@ function WorkspaceAgentMessageCenterPanelContent({
3247
3360
  "t-modal nodrag min-h-0 w-[min(440px,calc(100vw-16px))] max-w-none overflow-hidden rounded-none border-y-0 border-r-0 bg-[var(--background-panel)] text-[var(--text-primary)] shadow-side-panel data-[vaul-drawer-direction=right]:rounded-none",
3248
3361
  "[-webkit-app-region:no-drag]"
3249
3362
  ),
3363
+ "data-presentation": "drawer",
3250
3364
  "data-testid": "workspace-agent-message-center",
3251
3365
  portalContainer: portalContainer ?? void 0,
3252
3366
  showOverlay: false,
3253
3367
  "aria-label": t("agentHost.workspaceAgentMessageCenterTitle"),
3254
- children: /* @__PURE__ */ jsxs4(TooltipProvider, { delayDuration: MESSAGE_CENTER_TOOLTIP_DELAY_MS, children: [
3255
- /* @__PURE__ */ jsx5("div", { className: "flex-none border-b border-[var(--border-1)] px-3.5 pt-3 pb-3", children: /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-center justify-between gap-3", children: [
3256
- /* @__PURE__ */ jsxs4("div", { className: "min-w-0", children: [
3257
- /* @__PURE__ */ jsx5(DrawerTitle, { className: "truncate text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: t("agentHost.workspaceAgentMessageCenterTitle") }),
3258
- /* @__PURE__ */ jsx5(DrawerDescription, { className: "truncate text-[11px] leading-4 text-[var(--text-tertiary)]", children: headerSummary })
3259
- ] }),
3260
- /* @__PURE__ */ jsx5(
3261
- MessageCenterViewMenu,
3262
- {
3263
- filtersActive: hasActiveFilters,
3264
- groupBy,
3265
- providerFilters,
3266
- providerOptions,
3267
- statusFilters,
3268
- statusOptions,
3269
- onClearFilters: clearFilters,
3270
- onGroupByChange: setGroupBy,
3271
- onProviderToggle: toggleProviderFilter,
3272
- onStatusToggle: toggleStatusFilter
3273
- }
3274
- )
3275
- ] }) }),
3276
- /* @__PURE__ */ jsx5(
3277
- AgentVerticalScrollArea,
3278
- {
3279
- className: "min-h-0 flex-1",
3280
- viewportClassName: "flex h-full w-full flex-col px-3.5 pt-4 pb-4",
3281
- scrollbarClassName: "top-4 bottom-4",
3282
- syncKey: scrollSyncKey,
3283
- children: deckItems.length > 0 || listItems.length > 0 ? /* @__PURE__ */ jsxs4("div", { className: "flex w-full min-w-0 flex-col gap-4", children: [
3284
- deckItems.length > 0 ? /* @__PURE__ */ jsx5(
3285
- WorkspaceAgentMessageCenterAttentionDeck,
3286
- {
3287
- items: deckItems,
3288
- highlightedItemId,
3289
- submittingPromptKey,
3290
- registerNode: setItemNode,
3291
- onLinkAction,
3292
- onOpenChat,
3293
- onSubmitPrompt: (item, input) => void submitPrompt(item, input)
3294
- }
3295
- ) : null,
3296
- itemGroupStacks.map((group) => /* @__PURE__ */ jsxs4(
3297
- "section",
3298
- {
3299
- className: "flex min-w-0 flex-col gap-2.5",
3300
- "aria-label": `${group.label} ${group.items.length}`,
3301
- children: [
3302
- /* @__PURE__ */ jsx5("div", { className: "flex min-w-0 items-center justify-between gap-3 px-0.5", children: /* @__PURE__ */ jsx5(MessageCenterGroupHeading, { group }) }),
3303
- (() => {
3304
- return group.stacks.map((stack) => {
3305
- const firstItem = stack.items[0];
3306
- if (!firstItem) {
3307
- return null;
3308
- }
3309
- if (stack.items.length === 1) {
3310
- return renderMessageCenterCard(firstItem);
3311
- }
3312
- const stackId = messageCenterStackRenderId(
3313
- group.id,
3314
- stack.id
3315
- );
3316
- return /* @__PURE__ */ jsx5(
3317
- MessageCenterStack,
3318
- {
3319
- expanded: expandedStackIds.has(stackId),
3320
- groupId: stackId,
3321
- highlightedItemId,
3322
- items: stack.items,
3323
- renderCard: renderMessageCenterCard,
3324
- onCollapse: collapseStack,
3325
- onExpand: expandStack
3326
- },
3327
- stackId
3328
- );
3329
- });
3330
- })()
3331
- ]
3332
- },
3333
- group.id
3334
- ))
3335
- ] }) : model.items.length > 0 ? /* @__PURE__ */ jsxs4("div", { className: "flex min-h-0 flex-1 flex-col items-center justify-center gap-2.5 px-6 py-8 text-center text-[13px] text-[var(--text-tertiary)]", children: [
3336
- /* @__PURE__ */ jsx5("span", { children: t("agentHost.workspaceAgentMessageCenterFilteredEmpty") }),
3337
- /* @__PURE__ */ jsx5(
3338
- Button3,
3339
- {
3340
- type: "button",
3341
- variant: "ghost",
3342
- size: "sm",
3343
- className: "border border-[var(--line-2)] bg-[var(--background-fronted)] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",
3344
- onClick: clearFilters,
3345
- children: t("agentHost.workspaceAgentMessageCenterClearFilters")
3346
- }
3347
- )
3348
- ] }) : /* @__PURE__ */ jsx5("div", { className: "flex min-h-0 flex-1 items-center justify-center px-6 py-8 text-center text-[13px] text-[var(--text-tertiary)]", children: t("agentHost.workspaceAgentMessageCenterEmpty") })
3349
- }
3350
- )
3351
- ] })
3368
+ children: panelContents
3352
3369
  }
3353
3370
  )
3354
3371
  }