@mcp-b/react-components 0.45.0 → 0.46.0

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 (125) hide show
  1. package/dist/{AgentChat-Bibfj7u1.d.ts → AgentChat-BLmQghkt.d.ts} +2 -2
  2. package/dist/{CodeBlock-8K1p1BDU.js → CodeBlock-BpooTofO.js} +1 -1
  3. package/dist/{FileTree-QTP57Qz4.js → FileTree-CAXWXH63.js} +1 -1
  4. package/dist/{McpConnectorForm-MRm1r59e.d.ts → McpConnectorForm-BETdVBRk.d.ts} +1 -1
  5. package/dist/{McpPluginCatalog-mbGw8FTu.d.ts → McpPluginCatalog-C6ip9IvL.d.ts} +2 -2
  6. package/dist/{PromptInput-BRX7FhjH.d.ts → PromptInput-DtJHyp0S.d.ts} +27 -22
  7. package/dist/{SetupChecklist-CZeToAbu.js → SetupChecklist-DyPZWzK2.js} +2 -2
  8. package/dist/{ThinkChat-CWMcl79Q.js → ThinkChat-qztQ6Clo.js} +4 -1
  9. package/dist/{ThinkChatActivity-CgvmTXXB.d.ts → ThinkChatActivity-B3lGVS-6.d.ts} +1 -1
  10. package/dist/{WorkspaceFileView-DJ8Oxz57.js → WorkspaceFileView-BvDbKM2c.js} +2 -2
  11. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  12. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  13. package/dist/components/agents-sdk/AgentChat.js +29 -30
  14. package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
  15. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  16. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  17. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  18. package/dist/components/agents-sdk/ManagerOffice.d.ts +2 -1
  19. package/dist/components/agents-sdk/ManagerOffice.js +28 -10
  20. package/dist/components/agents-sdk/McpConnectionRequest.d.ts +1 -1
  21. package/dist/components/agents-sdk/McpConnectionRequest.js +10 -4
  22. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -1
  23. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -1
  24. package/dist/components/agents-sdk/McpPluginCatalog.js +9 -5
  25. package/dist/components/agents-sdk/McpServerPicker.d.ts +2 -2
  26. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  27. package/dist/components/agents-sdk/ModelSelector.js +2 -2
  28. package/dist/components/agents-sdk/PromptInputCommands.d.ts +5 -2
  29. package/dist/components/agents-sdk/PromptInputCommands.js +81 -3
  30. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  31. package/dist/components/agents-sdk/ThinkChat.d.ts +3 -3
  32. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  33. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  34. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  35. package/dist/components/agents-sdk/ThinkExecutionDetail.js +1 -1
  36. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  37. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -1
  38. package/dist/components/agents-sdk/ThinkFullApp.d.ts +1 -1
  39. package/dist/components/agents-sdk/ThinkFullApp.js +2 -2
  40. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  41. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  42. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +1 -1
  43. package/dist/components/agents-sdk/ThinkSidepanel.js +22 -9
  44. package/dist/components/agents-sdk/ThinkThreadPicker.js +1 -1
  45. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  46. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  47. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  48. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  49. package/dist/components/agents-sdk/WorkspaceMountManager.js +1 -1
  50. package/dist/components/ai-sdk/Activity.js +1 -1
  51. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  52. package/dist/components/ai-sdk/Approval.js +1 -1
  53. package/dist/components/ai-sdk/Artifact.js +1 -1
  54. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  55. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  56. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  57. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  58. package/dist/components/ai-sdk/ComposerLink.d.ts +27 -0
  59. package/dist/components/ai-sdk/ComposerLink.js +111 -0
  60. package/dist/components/ai-sdk/ConnectedAppCards.js +1 -1
  61. package/dist/components/ai-sdk/Conversation.js +1 -1
  62. package/dist/components/ai-sdk/Goal.js +1 -1
  63. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  64. package/dist/components/ai-sdk/Message.js +18 -2
  65. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  66. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  67. package/dist/components/ai-sdk/Plan.js +1 -1
  68. package/dist/components/ai-sdk/PromptInput.d.ts +2 -2
  69. package/dist/components/ai-sdk/PromptInput.js +65 -59
  70. package/dist/components/ai-sdk/PromptInputComposerEditor.d.ts +31 -0
  71. package/dist/components/ai-sdk/PromptInputComposerEditor.js +198 -0
  72. package/dist/components/ai-sdk/Queue.js +1 -1
  73. package/dist/components/ai-sdk/Reasoning.js +1 -1
  74. package/dist/components/ai-sdk/Sources.js +1 -1
  75. package/dist/components/ai-sdk/Task.js +1 -1
  76. package/dist/components/extension/ChatGptSignInScreen.js +2 -2
  77. package/dist/components/extension/CodexModelSelector.js +1 -1
  78. package/dist/components/extension/ConversationTabPicker.js +1 -1
  79. package/dist/components/foundations/AppIcon.js +1 -1
  80. package/dist/components/foundations/Checkbox.js +1 -1
  81. package/dist/components/foundations/ContextMenu.js +1 -1
  82. package/dist/components/foundations/Menubar.js +1 -1
  83. package/dist/components/foundations/SearchField.js +1 -1
  84. package/dist/components/foundations/Select.js +1 -1
  85. package/dist/components/foundations/Stepper.js +1 -1
  86. package/dist/components/foundations/Toast.js +1 -1
  87. package/dist/components/foundations/icons.d.ts +1 -1
  88. package/dist/components/foundations/icons.js +1 -1
  89. package/dist/components/general-purpose/Commit.js +2 -2
  90. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  91. package/dist/components/general-purpose/FileTree.js +1 -1
  92. package/dist/components/general-purpose/PricingPlanCard.js +1 -1
  93. package/dist/components/general-purpose/ResponsiveSidebarShell.js +1 -1
  94. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  95. package/dist/components/general-purpose/Terminal.js +2 -2
  96. package/dist/components/general-purpose/TestResults.js +1 -1
  97. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  98. package/dist/components/general-purpose/WebPreview.js +1 -1
  99. package/dist/components/nanites/AgentConnection.js +2 -2
  100. package/dist/components/nanites/AgentToolDetail.js +2 -2
  101. package/dist/{copy-button-BpA7wQva.js → copy-button-D7ySsRRo.js} +1 -1
  102. package/dist/{icons-DbrksZyY.js → icons-BNEY4gO5.js} +44 -4
  103. package/dist/{icons-6ZnyZJiR.d.ts → icons-D0Pd2P9v.d.ts} +9 -4
  104. package/dist/{mcp-server-SD_S-IpB.js → mcp-server-7NR24ASj.js} +31 -4
  105. package/dist/{mcp-server-catalog-CCj2ItkV.d.ts → mcp-server-catalog-Cbu483Zb.d.ts} +9 -9
  106. package/dist/{provider-logos-zjZycgV6.js → provider-logos-DWYY8wNz.js} +31 -6
  107. package/dist/styles/action-guide.css +4 -0
  108. package/dist/styles/agent-attention.css +5 -1
  109. package/dist/styles/agent-chat.css +21 -18
  110. package/dist/styles/app-icon.css +21 -0
  111. package/dist/styles/brand-marks.css +22 -0
  112. package/dist/styles/composer-link.css +99 -0
  113. package/dist/styles/connected-app-card.css +9 -0
  114. package/dist/styles/github-motion-mark.css +8 -1
  115. package/dist/styles/index.css +2 -0
  116. package/dist/styles/manager-office.css +10 -3
  117. package/dist/styles/mcp-plugin-catalog.css +4 -0
  118. package/dist/styles/mcp-server-picker.css +2 -0
  119. package/dist/styles/prompt-input.css +14 -53
  120. package/dist/styles/think-sidepanel.css +9 -0
  121. package/dist/utils/composer-link.d.ts +59 -0
  122. package/dist/utils/composer-link.js +203 -0
  123. package/dist/utils/mcp-server-catalog.d.ts +1 -1
  124. package/dist/utils/mcp-server-catalog.js +9 -9
  125. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { i as AgentMessageRenderPartContext } from "./AgentMessageParts-C7L-Mv9U.js";
2
2
  import { n as AgentChatStartScreenProps } from "./AgentChatStartScreen-Bkv7Avni.js";
3
- import { D as PromptInputCommandDefinition, F as PromptInputDictationProps, K as PromptInputMessage, M as PromptInputContextSelectorProps, Q as PromptInputReference, n as PermissionMode } from "./PromptInput-BRX7FhjH.js";
3
+ import { D as PromptInputCommandDefinition, F as PromptInputDictationProps, K as PromptInputMessage, M as PromptInputContextSelectorProps, Q as PromptInputReference, n as PermissionMode } from "./PromptInput-DtJHyp0S.js";
4
4
  import * as React from "react";
5
5
  import { ChatAddToolApproveResponseFunction, ChatStatus, UIMessage } from "ai";
6
6
  import { PendingApproval, Think } from "@cloudflare/think";
@@ -138,7 +138,7 @@ interface AgentChatProps<MessageT extends UIMessage = UIMessage> {
138
138
  onCompact?: () => Promise<{
139
139
  compacted: boolean;
140
140
  }>;
141
- /** Controlled MCP catalog revealed by `@`; selections become composer references. */
141
+ /** Controlled MCP or tab catalog revealed by `@`; selections become composer links. */
142
142
  mentionCommands?: {
143
143
  items: readonly PromptInputCommandDefinition[];
144
144
  onSelect?: (command: PromptInputCommandDefinition, draft: AgentChatComposerDraft) => void;
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
2
  import { Select } from "./components/foundations/Select.js";
3
- import { t as CopyButton } from "./copy-button-BpA7wQva.js";
3
+ import { t as CopyButton } from "./copy-button-D7ySsRRo.js";
4
4
  import * as React from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { createHighlighter } from "shiki";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { C as FolderIcon, S as FileIcon, p as ChevronRightIcon, w as FolderOpenIcon } from "./icons-DbrksZyY.js";
2
+ import { C as FolderIcon, S as FileIcon, p as ChevronRightIcon, w as FolderOpenIcon } from "./icons-BNEY4gO5.js";
3
3
  import { t as NavigationLink } from "./navigation-link-kqMa81v5.js";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { d as McpServerSetupAuthFieldName, l as McpServerSetupAuth } from "./mcp-server-catalog-CCj2ItkV.js";
1
+ import { d as McpServerSetupAuthFieldName, l as McpServerSetupAuth } from "./mcp-server-catalog-Cbu483Zb.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/agents-sdk/McpConnectorForm.d.ts
@@ -1,5 +1,5 @@
1
- import { o as McpServerCard } from "./mcp-server-catalog-CCj2ItkV.js";
2
- import { r as McpConnectorFormValues } from "./McpConnectorForm-MRm1r59e.js";
1
+ import { o as McpServerCard } from "./mcp-server-catalog-Cbu483Zb.js";
2
+ import { r as McpConnectorFormValues } from "./McpConnectorForm-BETdVBRk.js";
3
3
  import { l as DialogProps } from "./Dialog-B_FhRWaz.js";
4
4
  import * as React from "react";
5
5
  import { MCPServersState } from "agents";
@@ -442,13 +442,20 @@ declare function PromptInputTabLabel({
442
442
  }: PromptInputTabLabelProps & {
443
443
  ref?: React.Ref<HTMLHeadingElement>;
444
444
  }): React.JSX.Element;
445
- interface PromptInputTabItemProps extends React.HTMLAttributes<HTMLDivElement> {}
445
+ interface PromptInputTabItemProps extends React.HTMLAttributes<HTMLElement> {
446
+ /** When set, the row is a composer entity link rather than a static tab row. */
447
+ href?: string;
448
+ icon?: React.ReactNode;
449
+ }
446
450
  declare function PromptInputTabItem({
447
451
  className,
452
+ href,
453
+ icon,
454
+ children,
448
455
  ref,
449
456
  ...props
450
457
  }: PromptInputTabItemProps & {
451
- ref?: React.Ref<HTMLDivElement>;
458
+ ref?: React.Ref<HTMLElement>;
452
459
  }): React.JSX.Element;
453
460
  interface PromptInputCommandDefinition {
454
461
  /** Stable identity for keyed rendering. */
@@ -458,6 +465,10 @@ interface PromptInputCommandDefinition {
458
465
  label: string;
459
466
  description?: string;
460
467
  icon?: React.ReactNode;
468
+ /** Persistable mark used when the command is inserted as a composer link. */
469
+ iconSrc?: string;
470
+ /** Optional explicit composer href. Derived from the trigger when omitted. */
471
+ href?: string;
461
472
  keywords?: readonly string[];
462
473
  disabled?: boolean;
463
474
  group?: string;
@@ -470,12 +481,15 @@ interface PromptInputReference {
470
481
  value: string;
471
482
  label: string;
472
483
  icon?: React.ReactNode;
484
+ iconSrc?: string;
485
+ href?: string;
473
486
  /** Records which picker produced the reference. */
474
487
  trigger?: PromptInputCommandTrigger;
475
488
  }
489
+ declare function composerLinksToReferences(text: string): PromptInputReference[];
476
490
  interface PromptInputCommandComposerProps extends Omit<PromptInputTextareaProps, "value" | "defaultValue" | "onChange"> {
477
491
  commands: readonly PromptInputCommandDefinition[];
478
- /** MCP or other mentionable entries revealed by an `@` draft. */
492
+ /** MCP, tab, or other mentionable entries revealed by an `@` draft. */
479
493
  mentionCommands?: readonly PromptInputCommandDefinition[];
480
494
  value: string;
481
495
  onValueChange: (value: string) => void;
@@ -484,8 +498,8 @@ interface PromptInputCommandComposerProps extends Omit<PromptInputTextareaProps,
484
498
  mentionEmptyMessage?: React.ReactNode;
485
499
  }
486
500
  /**
487
- * Controlled PromptInput textarea with slash-command discovery. The host owns
488
- * both the command catalog and the draft policy applied after selection.
501
+ * Controlled composer field with slash-command and mention discovery.
502
+ * Selection inserts a special href into the draft not a chip button.
489
503
  */
490
504
  declare function PromptInputCommandComposer({
491
505
  commands,
@@ -497,24 +511,15 @@ declare function PromptInputCommandComposer({
497
511
  mentionEmptyMessage,
498
512
  onKeyDown,
499
513
  ref,
500
- ...textareaProps
501
- }: PromptInputCommandComposerProps & {
502
- ref?: React.Ref<HTMLTextAreaElement>;
503
- }): React.JSX.Element;
504
- interface PromptInputReferencesProps extends React.HTMLAttributes<HTMLDivElement> {
505
- references: readonly PromptInputReference[];
506
- onRemove: (reference: PromptInputReference) => void;
507
- }
508
- /** Removable inline context selected from slash-command or mention pickers. */
509
- declare function PromptInputReferences({
510
- references,
511
- onRemove,
514
+ placeholder,
515
+ disabled,
512
516
  className,
513
- ref,
514
- ...props
515
- }: PromptInputReferencesProps & {
517
+ minHeight,
518
+ maxHeight,
519
+ "aria-label": ariaLabel
520
+ }: PromptInputCommandComposerProps & {
516
521
  ref?: React.Ref<HTMLDivElement>;
517
- }): React.JSX.Element | null;
522
+ }): React.JSX.Element;
518
523
  interface PromptInputContextItem {
519
524
  /** Exact host identifier or path preserved through selection. */
520
525
  value: string;
@@ -545,4 +550,4 @@ declare function PromptInputContextSelector({
545
550
  action
546
551
  }: PromptInputContextSelectorProps): React.JSX.Element;
547
552
  //#endregion
548
- export { PromptInputReferences as $, PromptInputContextItem as A, PromptInputHoverCard as B, PromptInputButtonProps as C, usePromptInputAttachments as Ct, PromptInputCommandDefinition as D, PromptInputCommandComposerProps as E, PromptInputDictationProps as F, PromptInputHoverCardTriggerProps as G, PromptInputHoverCardContentProps as H, PromptInputFooter as I, PromptInputPermissionSelectorProps as J, PromptInputMessage as K, PromptInputFooterProps as L, PromptInputContextSelectorProps as M, PromptInputControllerProps as N, PromptInputCommandTrigger as O, PromptInputDictation as P, PromptInputReference as Q, PromptInputHeader as R, PromptInputButton as S, TooltipSide as St, PromptInputCommandComposer as T, useProviderAttachments as Tt, PromptInputHoverCardProps as U, PromptInputHoverCardContent as V, PromptInputHoverCardTrigger as W, PromptInputProvider as X, PromptInputProps as Y, PromptInputProviderProps as Z, PromptInputAttachmentProps as _, PromptInputTooltipConfig as _t, PromptInputActionAddAttachmentsProps as a, PromptInputTabBodyProps as at, PromptInputBody as b, PromptInputVoiceInput as bt, PromptInputActionMenu as c, PromptInputTabLabel as ct, PromptInputActionMenuItem as d, PromptInputTabsList as dt, PromptInputReferencesProps as et, PromptInputActionMenuItemProps as f, PromptInputTabsListProps as ft, PromptInputAttachment as g, PromptInputToolsProps as gt, PromptInputActionMenuTriggerProps as h, PromptInputTools as ht, PromptInputActionAddAttachments as i, PromptInputTabBody as it, PromptInputContextSelector as j, PromptInputContextAction as k, PromptInputActionMenuContent as l, PromptInputTabLabelProps as lt, PromptInputActionMenuTrigger as m, PromptInputTextareaProps as mt, PermissionMode as n, PromptInputSubmitProps as nt, PromptInputActionAddScreenshot as o, PromptInputTabItem as ot, PromptInputActionMenuProps as p, PromptInputTextarea as pt, PromptInputPermissionSelector as q, PromptInput as r, PromptInputTab as rt, PromptInputActionAddScreenshotProps as s, PromptInputTabItemProps as st, AttachmentsContext as t, PromptInputSubmit as tt, PromptInputActionMenuContentProps as u, PromptInputTabProps as ut, PromptInputAttachments as v, PromptInputTray as vt, PromptInputButtonTooltip as w, usePromptInputController as wt, PromptInputBodyProps as x, TextInputContext as xt, PromptInputAttachmentsProps as y, PromptInputTrayProps as yt, PromptInputHeaderProps as z };
553
+ export { PromptInputSubmit as $, PromptInputContextItem as A, PromptInputHoverCard as B, PromptInputButtonProps as C, usePromptInputController as Ct, PromptInputCommandDefinition as D, PromptInputCommandComposerProps as E, PromptInputDictationProps as F, PromptInputHoverCardTriggerProps as G, PromptInputHoverCardContentProps as H, PromptInputFooter as I, PromptInputPermissionSelectorProps as J, PromptInputMessage as K, PromptInputFooterProps as L, PromptInputContextSelectorProps as M, PromptInputControllerProps as N, PromptInputCommandTrigger as O, PromptInputDictation as P, PromptInputReference as Q, PromptInputHeader as R, PromptInputButton as S, usePromptInputAttachments as St, PromptInputCommandComposer as T, PromptInputHoverCardProps as U, PromptInputHoverCardContent as V, PromptInputHoverCardTrigger as W, PromptInputProvider as X, PromptInputProps as Y, PromptInputProviderProps as Z, PromptInputAttachmentProps as _, PromptInputTrayProps as _t, PromptInputActionAddAttachmentsProps as a, PromptInputTabItemProps as at, PromptInputBody as b, TooltipSide as bt, PromptInputActionMenu as c, PromptInputTabProps as ct, PromptInputActionMenuItem as d, PromptInputTextarea as dt, PromptInputSubmitProps as et, PromptInputActionMenuItemProps as f, PromptInputTextareaProps as ft, PromptInputAttachment as g, PromptInputTray as gt, PromptInputActionMenuTriggerProps as h, PromptInputTooltipConfig as ht, PromptInputActionAddAttachments as i, PromptInputTabItem as it, PromptInputContextSelector as j, PromptInputContextAction as k, PromptInputActionMenuContent as l, PromptInputTabsList as lt, PromptInputActionMenuTrigger as m, PromptInputToolsProps as mt, PermissionMode as n, PromptInputTabBody as nt, PromptInputActionAddScreenshot as o, PromptInputTabLabel as ot, PromptInputActionMenuProps as p, PromptInputTools as pt, PromptInputPermissionSelector as q, PromptInput as r, PromptInputTabBodyProps as rt, PromptInputActionAddScreenshotProps as s, PromptInputTabLabelProps as st, AttachmentsContext as t, PromptInputTab as tt, PromptInputActionMenuContentProps as u, PromptInputTabsListProps as ut, PromptInputAttachments as v, PromptInputVoiceInput as vt, PromptInputButtonTooltip as w, useProviderAttachments as wt, PromptInputBodyProps as x, composerLinksToReferences as xt, PromptInputAttachmentsProps as y, TextInputContext as yt, PromptInputHeaderProps as z };
@@ -1,5 +1,5 @@
1
1
  import { n as mergeBaseClassName } from "./class-names-BiMDVpUo.js";
2
- import { V as PlusIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon } from "./icons-DbrksZyY.js";
2
+ import { V as PlusIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon } from "./icons-BNEY4gO5.js";
3
3
  import { Button } from "./components/foundations/Button.js";
4
4
  import { Menu } from "./components/foundations/Menu.js";
5
5
  import * as React from "react";
@@ -57,7 +57,7 @@ function SetupChecklistAction({ actionLabel, label, entries, onSelect }) {
57
57
  type: "button",
58
58
  variant: "ghost",
59
59
  color: "neutral",
60
- size: "md",
60
+ size: "sm",
61
61
  "aria-label": `${actionLabel} — ${completed} of ${entries.length} set up`,
62
62
  render: /* @__PURE__ */ jsx(Menu.Trigger, { unstyled: true }),
63
63
  children: [completed === entries.length ? /* @__PURE__ */ jsx(CheckIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(WarningIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", { children: actionLabel })]
@@ -1,3 +1,4 @@
1
+ import { composerDraftToPrompt, parseComposerLinks } from "./utils/composer-link.js";
1
2
  import { TransitionSurface } from "./components/foundations/TransitionSurface.js";
2
3
  import { AgentToolRunsProvider, useSourceScopedAgentToolEvents } from "./components/agents-sdk/AgentToolRunsContext.js";
3
4
  import { AgentChat, compactingNotice } from "./components/agents-sdk/AgentChat.js";
@@ -259,7 +260,9 @@ function ThinkChatMessages({ draft, loading, renderPart, excludeTools, renderAge
259
260
  const recoveryActive = chat && (chat.isRecovering || chat.connectionError || chat.error);
260
261
  const submit = ({ text, files, references }, send) => {
261
262
  setDismissedCompaction(sessionCompaction?.lastCompaction ?? null);
262
- const prompt = [...references?.map(({ trigger, value }) => trigger ? `${trigger}${value}` : value) ?? [], text.trim()].filter(Boolean).join(" ");
263
+ const fromLinks = composerDraftToPrompt(text);
264
+ const referenceTokens = references?.map(({ trigger, value }) => trigger ? `${trigger}${value}` : value) ?? [];
265
+ const prompt = parseComposerLinks(text).length ? fromLinks : [...referenceTokens, text.trim()].filter(Boolean).join(" ");
263
266
  if (!prompt && !files.length) return;
264
267
  return send({
265
268
  text: prompt,
@@ -1,5 +1,5 @@
1
1
  import { i as AgentMessageRenderPartContext } from "./AgentMessageParts-C7L-Mv9U.js";
2
- import { r as AgentChatProps } from "./AgentChat-Bibfj7u1.js";
2
+ import { r as AgentChatProps } from "./AgentChat-BLmQghkt.js";
3
3
  import { l as ThinkChatPart } from "./ThinkChatToolParts-D4qcnnxt.js";
4
4
  import { t as ThinkChatActivityDescription } from "./ThinkChatActivitySummary-BtBQgMg6.js";
5
5
  import * as React from "react";
@@ -1,6 +1,6 @@
1
- import { b as EyeIcon, d as CheckIcon, et as WarningIcon, k as MaximizeIcon, m as CodeIcon, r as ArrowLeftIcon, v as DownloadIcon } from "./icons-DbrksZyY.js";
1
+ import { b as EyeIcon, d as CheckIcon, et as WarningIcon, k as MaximizeIcon, m as CodeIcon, r as ArrowLeftIcon, v as DownloadIcon } from "./icons-BNEY4gO5.js";
2
2
  import { i as formatClock } from "./format-COCyV98Z.js";
3
- import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-8K1p1BDU.js";
3
+ import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-BpooTofO.js";
4
4
  import { AppTopBar } from "./components/general-purpose/AppTopBar.js";
5
5
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./components/agents-sdk/WorkspaceFile.js";
6
6
  import { c as useWorkspaceNavigationContext, s as useWorkspaceNavigationRestoration } from "./WorkspaceLink-DtH66bAY.js";
@@ -1,5 +1,5 @@
1
1
  import { canRequestFavicon, inferFaviconUrl } from "../../utils/favicon.js";
2
- import { D as LinkIcon, P as MonitorIcon, Q as TerminalIcon, S as FileIcon, T as InfoIcon, W as SearchIcon, et as WarningIcon, tt as WrenchIcon, z as PencilIcon } from "../../icons-DbrksZyY.js";
2
+ import { D as LinkIcon, P as MonitorIcon, Q as TerminalIcon, S as FileIcon, T as InfoIcon, W as SearchIcon, et as WarningIcon, tt as WrenchIcon, z as PencilIcon } from "../../icons-BNEY4gO5.js";
3
3
  import * as React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/agents-sdk/AgentActivity.tsx
@@ -1,2 +1,2 @@
1
- import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, o as compactingNotice, r as AgentChatProps, t as AgentChat } from "../../AgentChat-Bibfj7u1.js";
1
+ import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, o as compactingNotice, r as AgentChatProps, t as AgentChat } from "../../AgentChat-BLmQghkt.js";
2
2
  export { AgentChat, AgentChatComposerDraft, AgentChatProps, AgentChatRenderMessageContext, PermissionModeControl, compactingNotice };
@@ -1,16 +1,17 @@
1
+ import { replaceComposerTrigger } from "../../utils/composer-link.js";
1
2
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
3
  import { ExpansionStateProvider } from "../ai-sdk/ExpansionState.js";
3
- import { $ as TrashIcon, H as QueueIcon, I as MoveToFrontIcon, U as RefreshIcon, V as PlusIcon, q as SpinnerIcon, t as ArchiveIcon, z as PencilIcon } from "../../icons-DbrksZyY.js";
4
+ import { $ as TrashIcon, H as QueueIcon, I as MoveToFrontIcon, U as RefreshIcon, V as PlusIcon, q as SpinnerIcon, t as ArchiveIcon, z as PencilIcon } from "../../icons-BNEY4gO5.js";
4
5
  import { Button } from "../foundations/Button.js";
5
6
  import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
6
7
  import { IconButton } from "../foundations/IconButton.js";
7
8
  import { Menu } from "../foundations/Menu.js";
8
- import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputPermissionSelector, PromptInputReferences, PromptInputSubmit, PromptInputTextarea, PromptInputTools, PromptInputTray, usePromptInputAttachments } from "../ai-sdk/PromptInput.js";
9
+ import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputPermissionSelector, PromptInputSubmit, PromptInputTextarea, PromptInputTools, PromptInputTray, composerLinksToReferences, usePromptInputAttachments } from "../ai-sdk/PromptInput.js";
9
10
  import { AgentChatStartScreen } from "../ai-sdk/AgentChatStartScreen.js";
10
11
  import { Message, MessageAction, MessageActions, MessageMeta, MessageTimestamp } from "../ai-sdk/Message.js";
11
12
  import { AgentMessageParts } from "../ai-sdk/AgentMessageParts.js";
12
13
  import { Marker, MarkerContent } from "../foundations/Marker.js";
13
- import { t as CopyButton } from "../../copy-button-BpA7wQva.js";
14
+ import { t as CopyButton } from "../../copy-button-D7ySsRRo.js";
14
15
  import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "../ai-sdk/Context.js";
15
16
  import { VirtualMessageScroller } from "../ai-sdk/MessageScrollerVirtual.js";
16
17
  import { QueueItem, QueueItemActions, QueueItemContent } from "../ai-sdk/Queue.js";
@@ -280,7 +281,6 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
280
281
  const disabled = composerDisabled || loading;
281
282
  const [copyAnnouncement, setCopyAnnouncement] = React.useState("");
282
283
  const [composerDraft, setComposerDraft] = React.useState("");
283
- const [composerReferences, setComposerReferences] = React.useState([]);
284
284
  const composerInputRef = React.useRef(null);
285
285
  const restoreComposerFocusAfterApproval = React.useRef(false);
286
286
  const respondToPendingApproval = React.useCallback((response) => {
@@ -298,10 +298,20 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
298
298
  const [compactionState, setCompactionState] = React.useState(null);
299
299
  const compactionInFlight = React.useRef(false);
300
300
  const addComposerReference = React.useCallback((reference) => {
301
- setComposerReferences((current) => current.some((item) => item.id === reference.id && item.trigger === reference.trigger) ? current : [...current, reference]);
301
+ setComposerDraft((current) => {
302
+ if (composerLinksToReferences(current).some((item) => item.id === reference.id && item.trigger === reference.trigger)) return current;
303
+ return replaceComposerTrigger(current, {
304
+ id: reference.id,
305
+ value: reference.value,
306
+ label: reference.label,
307
+ href: reference.href,
308
+ iconSrc: reference.iconSrc
309
+ }, reference.trigger ?? "/");
310
+ });
302
311
  }, []);
303
312
  const removeComposerReference = React.useCallback((reference) => {
304
- setComposerReferences((current) => current.filter((item) => item.id !== reference.id || item.trigger !== reference.trigger));
313
+ if (!reference.href) return;
314
+ setComposerDraft((current) => current.replace(`[${reference.label}](${reference.href})`, "").replace(/\s{2,}/g, " "));
305
315
  }, []);
306
316
  const copyAnnouncementTimer = React.useRef(null);
307
317
  const announceCopyStatus = React.useCallback((message) => {
@@ -316,13 +326,15 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
316
326
  if (copyAnnouncementTimer.current !== null) window.clearTimeout(copyAnnouncementTimer.current);
317
327
  }, []);
318
328
  const handleSubmit = React.useCallback((message) => {
329
+ const text = message.text || composerDraft;
330
+ const references = composerLinksToReferences(text);
319
331
  const prompt = {
320
332
  ...message,
321
- ...composerReferences.length ? { references: composerReferences } : {}
333
+ text,
334
+ ...references.length ? { references } : {}
322
335
  };
323
336
  setQueueHeld(false);
324
337
  setComposerDraft("");
325
- setComposerReferences([]);
326
338
  setCompactionState(null);
327
339
  if (busy || pendingPrompts.length && !queueHeld) {
328
340
  setPendingPrompts((current) => [...current, {
@@ -335,7 +347,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
335
347
  return onSubmit?.(prompt);
336
348
  }, [
337
349
  busy,
338
- composerReferences,
350
+ composerDraft,
339
351
  onPromptQueued,
340
352
  onSubmit,
341
353
  pendingPrompts.length,
@@ -374,30 +386,20 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
374
386
  });
375
387
  return;
376
388
  }
377
- const reference = {
378
- id: command.id,
379
- value: command.value,
380
- label: command.label,
381
- icon: command.icon,
382
- trigger
383
- };
384
- const nextReferences = composerReferences.some((item) => item.id === reference.id && item.trigger === reference.trigger) ? composerReferences : [...composerReferences, reference];
385
- addComposerReference(reference);
386
- const catalog = trigger === "@" ? mentionCommands : slashCommands;
387
- if (catalog?.onSelect) catalog.onSelect(command, {
388
- value: composerDraft,
389
+ const nextDraft = replaceComposerTrigger(composerDraft, command, trigger);
390
+ const nextReferences = composerLinksToReferences(nextDraft);
391
+ (trigger === "@" ? mentionCommands : slashCommands)?.onSelect?.(command, {
392
+ value: nextDraft,
389
393
  references: nextReferences,
390
394
  setValue: setComposerDraft,
391
395
  clear: () => setComposerDraft(""),
392
396
  addReference: addComposerReference,
393
397
  removeReference: removeComposerReference
394
398
  });
395
- else setComposerDraft("");
396
399
  }, [
397
400
  addComposerReference,
398
401
  busy,
399
402
  composerDraft,
400
- composerReferences,
401
403
  mentionCommands,
402
404
  onCompact,
403
405
  removeComposerReference,
@@ -619,13 +621,10 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
619
621
  }) : /* @__PURE__ */ jsxs(Fragment, { children: [
620
622
  composerHeader ? /* @__PURE__ */ jsx(PromptInputHeader, { children: composerHeader }) : null,
621
623
  /* @__PURE__ */ jsx(PromptInputAttachments, {}),
622
- /* @__PURE__ */ jsxs(PromptInputBody, { children: [/* @__PURE__ */ jsx(PromptInputReferences, {
623
- references: composerReferences,
624
- onRemove: removeComposerReference
625
- }), slashCommands || mentionCommands || onCompact ? /* @__PURE__ */ jsx(PromptInputCommandComposer, {
624
+ /* @__PURE__ */ jsx(PromptInputBody, { children: slashCommands || mentionCommands || onCompact ? /* @__PURE__ */ jsx(PromptInputCommandComposer, {
626
625
  ref: composerInputRef,
627
626
  "aria-label": "Message",
628
- placeholder: composerReferences.length ? "" : placeholder,
627
+ placeholder,
629
628
  disabled,
630
629
  commands: onCompact && !busy ? [COMPACT_SLASH_COMMAND, ...slashCommands?.items ?? []] : slashCommands?.items ?? [],
631
630
  mentionCommands: mentionCommands?.items,
@@ -639,7 +638,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
639
638
  disabled,
640
639
  value: composerDraft,
641
640
  onChange: (event) => setComposerDraft(event.currentTarget.value)
642
- })] }),
641
+ }) }),
643
642
  /* @__PURE__ */ jsxs(PromptInputFooter, { children: [/* @__PURE__ */ jsxs(PromptInputTools, { children: [
644
643
  /* @__PURE__ */ jsx(AgentChatAddMenu, { children: composerAddMenuItems }),
645
644
  contextSelector ? /* @__PURE__ */ jsx(PromptInputContextSelector, { ...contextSelector }) : null,
@@ -668,7 +667,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
668
667
  status,
669
668
  onStop: handleStop,
670
669
  disabled,
671
- hasDraft: Boolean(composerDraft.trim() || composerReferences.length)
670
+ hasDraft: Boolean(composerDraft.trim())
672
671
  })
673
672
  ]
674
673
  })] })
@@ -1,4 +1,4 @@
1
- import { E as KeyboardIcon, U as RefreshIcon, r as ArrowLeftIcon } from "../../icons-DbrksZyY.js";
1
+ import { E as KeyboardIcon, U as RefreshIcon, r as ArrowLeftIcon } from "../../icons-BNEY4gO5.js";
2
2
  import { Button } from "../foundations/Button.js";
3
3
  import { WebPreviewNavigationButton } from "../general-purpose/WebPreview.js";
4
4
  import { BrowserLiveView } from "./BrowserLiveView.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { _ as DotIcon, k as MaximizeIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
2
+ import { _ as DotIcon, k as MaximizeIcon, q as SpinnerIcon } from "../../icons-BNEY4gO5.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Dialog } from "../foundations/Dialog.js";
5
5
  import { TransitionSurface } from "../foundations/TransitionSurface.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { B as PlayIcon, R as PauseIcon } from "../../icons-DbrksZyY.js";
2
+ import { B as PlayIcon, R as PauseIcon } from "../../icons-BNEY4gO5.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
4
  import { i as formatClock } from "../../format-COCyV98Z.js";
5
5
  import { EmptyState } from "../foundations/EmptyState.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { nt as XIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
2
+ import { nt as XIcon, q as SpinnerIcon } from "../../icons-BNEY4gO5.js";
3
3
  import { Tabs } from "../foundations/Tabs.js";
4
4
  import { WebPreview, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewUrl } from "../general-purpose/WebPreview.js";
5
5
  import { BrowserLiveView } from "./BrowserLiveView.js";
@@ -72,7 +72,8 @@ interface ManagerOfficeChannel {
72
72
  detail?: string;
73
73
  /**
74
74
  * App-owned service mark. Products know their own integrations, so the mark
75
- * comes from them; the package draws the first letter when none is supplied.
75
+ * comes from them. When omitted, a catalog plugin mark is used when the
76
+ * channel name matches a known connector; otherwise the first letter.
76
77
  */
77
78
  icon?: React.ReactNode;
78
79
  }
@@ -1,13 +1,15 @@
1
+ import { getMcpServerIconSrc } from "../../utils/mcp-server-catalog.js";
1
2
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
3
  import { Collapsible } from "../foundations/Collapsible.js";
3
- import { B as PlayIcon, C as FolderIcon, D as LinkIcon, P as MonitorIcon, R as PauseIcon, T as InfoIcon, U as RefreshIcon, V as PlusIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, j as MessageSquareIcon, n as ArrowDownIcon, nt as XIcon, p as ChevronRightIcon, q as SpinnerIcon, u as CalendarIcon, v as DownloadIcon, z as PencilIcon } from "../../icons-DbrksZyY.js";
4
+ import { B as PlayIcon, C as FolderIcon, D as LinkIcon, P as MonitorIcon, R as PauseIcon, T as InfoIcon, U as RefreshIcon, V as PlusIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, j as MessageSquareIcon, n as ArrowDownIcon, nt as XIcon, p as ChevronRightIcon, q as SpinnerIcon, u as CalendarIcon, v as DownloadIcon, z as PencilIcon } from "../../icons-BNEY4gO5.js";
4
5
  import { Button } from "../foundations/Button.js";
5
6
  import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
6
7
  import { Tooltip } from "../foundations/Tooltip.js";
7
8
  import { Menu } from "../foundations/Menu.js";
8
- import { Select } from "../foundations/Select.js";
9
9
  import { Avatar } from "../foundations/Avatar.js";
10
10
  import { AppIcon } from "../foundations/AppIcon.js";
11
+ import { n as findCatalogMcpServerCard } from "../../mcp-server-7NR24ASj.js";
12
+ import { Select } from "../foundations/Select.js";
11
13
  import { EmptyState } from "../foundations/EmptyState.js";
12
14
  import { LinkButton } from "../foundations/LinkButton.js";
13
15
  import "../foundations/icons.js";
@@ -385,6 +387,28 @@ const channelStatusLabels = {
385
387
  "needs-auth": "Needs sign-in",
386
388
  error: "Error"
387
389
  };
390
+ function ChannelMark({ channel }) {
391
+ if (channel.icon) return /* @__PURE__ */ jsx("span", {
392
+ className: "manager-office__channel-mark",
393
+ children: channel.icon
394
+ });
395
+ const card = findCatalogMcpServerCard({
396
+ id: channel.id,
397
+ name: channel.name
398
+ });
399
+ const src = card ? getMcpServerIconSrc(card) : void 0;
400
+ if (src) return /* @__PURE__ */ jsx("span", {
401
+ className: "manager-office__channel-mark",
402
+ children: /* @__PURE__ */ jsx("img", {
403
+ alt: "",
404
+ className: "sigvelo-brand-mark sigvelo-brand-mark--colorful",
405
+ decoding: "async",
406
+ referrerPolicy: "no-referrer",
407
+ src
408
+ })
409
+ });
410
+ return /* @__PURE__ */ jsx(AppIcon.Fallback, { children: channel.name.slice(0, 1) });
411
+ }
388
412
  function ChannelRow({ channel }) {
389
413
  return /* @__PURE__ */ jsxs("li", {
390
414
  className: "manager-office__channel",
@@ -393,10 +417,7 @@ function ChannelRow({ channel }) {
393
417
  /* @__PURE__ */ jsx(AppIcon.Root, {
394
418
  size: "sm",
395
419
  "aria-hidden": "true",
396
- children: channel.icon ? /* @__PURE__ */ jsx("span", {
397
- className: "manager-office__channel-mark",
398
- children: channel.icon
399
- }) : /* @__PURE__ */ jsx(AppIcon.Fallback, { children: channel.name.slice(0, 1) })
420
+ children: /* @__PURE__ */ jsx(ChannelMark, { channel })
400
421
  }),
401
422
  /* @__PURE__ */ jsxs("span", {
402
423
  className: "manager-office__identity",
@@ -777,10 +798,7 @@ function DashboardConnections({ employee }) {
777
798
  "data-status": channel.status
778
799
  }),
779
800
  role: "img",
780
- children: channel.icon ? /* @__PURE__ */ jsx("span", {
781
- className: "manager-office__channel-mark",
782
- children: channel.icon
783
- }) : /* @__PURE__ */ jsx(AppIcon.Fallback, { children: channel.name.slice(0, 1) })
801
+ children: /* @__PURE__ */ jsx(ChannelMark, { channel })
784
802
  }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
785
803
  side: "top",
786
804
  sideOffset: 6,
@@ -1,4 +1,4 @@
1
- import { o as McpServerCard } from "../../mcp-server-catalog-CCj2ItkV.js";
1
+ import { o as McpServerCard } from "../../mcp-server-catalog-Cbu483Zb.js";
2
2
  import * as React from "react";
3
3
  import { DynamicToolUIPart, ToolUIPart } from "ai";
4
4
  import { MCPServersState } from "agents";
@@ -1,10 +1,10 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { A as McpIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
2
+ import { d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-BNEY4gO5.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
5
5
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
6
+ import { r as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-7NR24ASj.js";
6
7
  import { DescriptionList } from "../foundations/DescriptionList.js";
7
- import { n as getMcpServerProjection } from "../../mcp-server-SD_S-IpB.js";
8
8
  import * as React from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  import { getToolPartState } from "@cloudflare/think/react";
@@ -80,7 +80,10 @@ function McpConnectionRequestContent({ part, server, reason, mcp: _mcp, serverId
80
80
  role: failed ? "alert" : "status",
81
81
  tone: failed ? "attention" : "neutral",
82
82
  children: [/* @__PURE__ */ jsx(AgentAttentionHeader, {
83
- icon: failed ? /* @__PURE__ */ jsx(WarningIcon, {}) : outcome === "connected" ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx(McpIcon, {}),
83
+ icon: failed ? /* @__PURE__ */ jsx(WarningIcon, {}) : outcome === "connected" ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx(McpServerIcon, {
84
+ server,
85
+ size: "xs"
86
+ }),
84
87
  title: failed ? `Couldn’t connect ${server.name}` : declined ? `Skipped connecting ${server.name}` : outcome === "connected" ? `Connected to ${server.name}` : `Connection request completed for ${server.name}`
85
88
  }), error ? /* @__PURE__ */ jsx(AgentAttentionBody, { children: /* @__PURE__ */ jsx("div", {
86
89
  className: "mcp-connection-request__error",
@@ -103,7 +106,10 @@ function McpConnectionRequestContent({ part, server, reason, mcp: _mcp, serverId
103
106
  children: [
104
107
  /* @__PURE__ */ jsx(AgentAttentionHeader, {
105
108
  description,
106
- icon: preparing || connecting ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : ready ? /* @__PURE__ */ jsx(CheckIcon, {}) : authorizing ? /* @__PURE__ */ jsx(McpIcon, {}) : reconnect ? /* @__PURE__ */ jsx(WarningIcon, {}) : /* @__PURE__ */ jsx(McpIcon, {}),
109
+ icon: preparing || connecting ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : ready ? /* @__PURE__ */ jsx(CheckIcon, {}) : reconnect ? /* @__PURE__ */ jsx(WarningIcon, {}) : /* @__PURE__ */ jsx(McpServerIcon, {
110
+ server,
111
+ size: "xs"
112
+ }),
107
113
  title
108
114
  }),
109
115
  /* @__PURE__ */ jsxs(AgentAttentionBody, {
@@ -1,2 +1,2 @@
1
- import { n as McpConnectorFormProps, r as McpConnectorFormValues, t as McpConnectorForm } from "../../McpConnectorForm-MRm1r59e.js";
1
+ import { n as McpConnectorFormProps, r as McpConnectorFormValues, t as McpConnectorForm } from "../../McpConnectorForm-BETdVBRk.js";
2
2
  export { McpConnectorForm, McpConnectorFormProps, McpConnectorFormValues };
@@ -1,2 +1,2 @@
1
- import { a as McpPluginDetailsDialogProps, i as McpPluginDetailsDialog, n as McpPluginCatalogProps, r as McpPluginDetails, t as McpPluginCatalog } from "../../McpPluginCatalog-mbGw8FTu.js";
1
+ import { a as McpPluginDetailsDialogProps, i as McpPluginDetailsDialog, n as McpPluginCatalogProps, r as McpPluginDetails, t as McpPluginCatalog } from "../../McpPluginCatalog-C6ip9IvL.js";
2
2
  export { McpPluginCatalog, McpPluginCatalogProps, McpPluginDetails, McpPluginDetailsDialog, McpPluginDetailsDialogProps };
@@ -1,15 +1,15 @@
1
1
  import { CUSTOM_MCP_SERVER_CARD } from "../../utils/mcp-server-catalog.js";
2
2
  import { t as cx } from "../../class-names-BiMDVpUo.js";
3
- import { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
3
+ import { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-BNEY4gO5.js";
4
4
  import { Button } from "../foundations/Button.js";
5
5
  import { AgentAttention, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
6
6
  import { IconButton } from "../foundations/IconButton.js";
7
7
  import { Dialog } from "../foundations/Dialog.js";
8
8
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
9
- import { Separator } from "../foundations/Separator.js";
10
9
  import { AppIcon } from "../foundations/AppIcon.js";
10
+ import { r as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-7NR24ASj.js";
11
+ import { Separator } from "../foundations/Separator.js";
11
12
  import { SearchField } from "../foundations/SearchField.js";
12
- import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
13
13
  import { McpServerSetupDialog } from "./McpServerPicker.js";
14
14
  import * as React from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -129,6 +129,7 @@ function McpPluginCatalog({ servers, mcp, detailsByServerId, featuredServerIds =
129
129
  /** Reference-derived plugin detail surface without a parallel install state. */
130
130
  function McpPluginDetailsDialog({ server, details, mcp, brandName = "your AI", brandLogo = /* @__PURE__ */ jsx("img", {
131
131
  alt: "",
132
+ className: "sigvelo-brand-mark sigvelo-brand-mark--colorful",
132
133
  src: new URL("../../assets/think-browser-host.png", import.meta.url).href,
133
134
  width: 128,
134
135
  height: 128
@@ -175,7 +176,7 @@ function McpPluginDetailsDialog({ server, details, mcp, brandName = "your AI", b
175
176
  /* @__PURE__ */ jsx(Separator, { orientation: "vertical" }),
176
177
  /* @__PURE__ */ jsx(AppIcon.Root, {
177
178
  size: "xl",
178
- variant: "contrast",
179
+ variant: "surface",
179
180
  children: brandLogo
180
181
  })
181
182
  ]
@@ -223,7 +224,10 @@ function McpPluginCard({ server, details, mcp, onSelect }) {
223
224
  size: "xl",
224
225
  variant: "ghost",
225
226
  onClick: onSelect,
226
- children: [/* @__PURE__ */ jsx(McpServerIcon, { server }), /* @__PURE__ */ jsxs("span", {
227
+ children: [/* @__PURE__ */ jsx(McpServerIcon, {
228
+ server,
229
+ size: "md"
230
+ }), /* @__PURE__ */ jsxs("span", {
227
231
  className: "mcp-plugin-catalog__card-copy",
228
232
  children: [/* @__PURE__ */ jsx("span", {
229
233
  className: "mcp-plugin-catalog__card-name sigvelo-truncate",
@@ -1,6 +1,6 @@
1
1
  import { s as MenuItemProps, t as Menu } from "../../Menu-yb6QXWA3.js";
2
- import { o as McpServerCard } from "../../mcp-server-catalog-CCj2ItkV.js";
3
- import { n as McpConnectorFormProps } from "../../McpConnectorForm-MRm1r59e.js";
2
+ import { o as McpServerCard } from "../../mcp-server-catalog-Cbu483Zb.js";
3
+ import { n as McpConnectorFormProps } from "../../McpConnectorForm-BETdVBRk.js";
4
4
  import { l as DialogProps } from "../../Dialog-B_FhRWaz.js";
5
5
  import * as React from "react";
6
6
  import { MCPServersState } from "agents";
@@ -1,11 +1,11 @@
1
1
  import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
2
- import { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
2
+ import { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-BNEY4gO5.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
4
  import { Menu } from "../foundations/Menu.js";
5
5
  import { Dialog } from "../foundations/Dialog.js";
6
6
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
7
+ import { r as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-7NR24ASj.js";
7
8
  import { PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger } from "../ai-sdk/PromptInput.js";
8
- import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
9
9
  import { McpConnectorForm } from "./McpConnectorForm.js";
10
10
  import * as React from "react";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";