@mcp-b/react-components 0.52.0 → 0.53.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 (114) hide show
  1. package/dist/{CodeBlock-Bl-q7wMc.js → CodeBlock-Dw1z6jc8.js} +1 -1
  2. package/dist/{EmployeeChrome-C8eTGJWn.d.ts → EmployeeChrome-B605rpVz.d.ts} +2 -0
  3. package/dist/{FileTree-DruTQ-oa.js → FileTree-okaLnS5j.js} +1 -1
  4. package/dist/{ManagerOffice-CMJ7laGe.js → ManagerOffice-CJwBAEMv.js} +4 -4
  5. package/dist/{SetupChecklist-BiWQkKEq.js → SetupChecklist-DWyifWWg.js} +2 -2
  6. package/dist/{WorkspaceFileView-DXgTljKV.js → WorkspaceFileView-DQDWUpAH.js} +2 -2
  7. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  8. package/dist/components/agents-sdk/AgentChat.js +8 -10
  9. package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
  10. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  11. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  12. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  13. package/dist/components/agents-sdk/EmployeeApp.d.ts +1 -1
  14. package/dist/components/agents-sdk/EmployeeApp.js +1 -1
  15. package/dist/components/agents-sdk/EmployeeChat.d.ts +3 -2
  16. package/dist/components/agents-sdk/EmployeeChat.js +6 -6
  17. package/dist/components/agents-sdk/EmployeeChrome.d.ts +1 -1
  18. package/dist/components/agents-sdk/EmployeeChrome.js +178 -120
  19. package/dist/components/agents-sdk/EmployeeSchedules.d.ts +1 -1
  20. package/dist/components/agents-sdk/EmployeeSchedules.js +1 -1
  21. package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +1 -1
  22. package/dist/components/agents-sdk/EmployeeStartScreen.js +3 -3
  23. package/dist/components/agents-sdk/ManagerAccountActions.js +2 -2
  24. package/dist/components/agents-sdk/ManagerOffice.js +1 -1
  25. package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +1 -1
  26. package/dist/components/agents-sdk/ManagerOfficeScreens.js +5 -2
  27. package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
  28. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  29. package/dist/components/agents-sdk/McpPluginCatalog.js +2 -2
  30. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  31. package/dist/components/agents-sdk/ModelSelector.js +4 -4
  32. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  33. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  34. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  35. package/dist/components/agents-sdk/SubagentRunPanel.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  37. package/dist/components/agents-sdk/ThinkChatActivity.js +2 -2
  38. package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
  39. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
  40. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  41. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
  42. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  43. package/dist/components/agents-sdk/ThinkRoutineActions.js +1 -1
  44. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +2 -2
  45. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  46. package/dist/components/agents-sdk/ThinkRoutineForm.js +3 -3
  47. package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
  48. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -2
  49. package/dist/components/agents-sdk/WorkbenchBack.js +1 -1
  50. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  51. package/dist/components/agents-sdk/WorkspaceCorrespondence.js +6 -6
  52. package/dist/components/agents-sdk/WorkspaceExecution.js +6 -6
  53. package/dist/components/agents-sdk/WorkspaceExplorer.js +2 -2
  54. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  55. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  56. package/dist/components/agents-sdk/WorkspaceMountManager.js +1 -1
  57. package/dist/components/agents-sdk/WorkspaceProject.js +4 -4
  58. package/dist/components/agents-sdk/WorkspaceUserScript.js +4 -4
  59. package/dist/components/ai-sdk/Activity.js +1 -1
  60. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  61. package/dist/components/ai-sdk/Approval.js +2 -2
  62. package/dist/components/ai-sdk/Artifact.js +1 -1
  63. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  64. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  65. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  66. package/dist/components/ai-sdk/ComposerLink.js +1 -1
  67. package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
  68. package/dist/components/ai-sdk/Context.js +1 -1
  69. package/dist/components/ai-sdk/Conversation.js +1 -1
  70. package/dist/components/ai-sdk/Goal.js +1 -1
  71. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  72. package/dist/components/ai-sdk/Message.js +2 -2
  73. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  74. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  75. package/dist/components/ai-sdk/Plan.js +1 -1
  76. package/dist/components/ai-sdk/PromptInput.js +45 -42
  77. package/dist/components/ai-sdk/Queue.js +1 -1
  78. package/dist/components/ai-sdk/Reasoning.js +1 -1
  79. package/dist/components/ai-sdk/Sources.js +1 -1
  80. package/dist/components/ai-sdk/Task.js +1 -1
  81. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  82. package/dist/components/extension/CodexModelSelector.js +2 -2
  83. package/dist/components/extension/ConversationTabPicker.js +2 -2
  84. package/dist/components/foundations/Checkbox.js +1 -1
  85. package/dist/components/foundations/Collapsible.js +1 -1
  86. package/dist/components/foundations/ContextMenu.js +1 -1
  87. package/dist/components/foundations/Menubar.js +1 -1
  88. package/dist/components/foundations/SearchField.js +1 -1
  89. package/dist/components/foundations/Select.js +1 -1
  90. package/dist/components/foundations/Stepper.js +1 -1
  91. package/dist/components/foundations/Toast.js +1 -1
  92. package/dist/components/foundations/icons.js +1 -1
  93. package/dist/components/general-purpose/AccountSignInDialog.js +1 -1
  94. package/dist/components/general-purpose/Commit.js +2 -2
  95. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  96. package/dist/components/general-purpose/FileTree.js +1 -1
  97. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  98. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  99. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  100. package/dist/components/general-purpose/ResponsiveSidebarShell.js +1 -1
  101. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  102. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  103. package/dist/components/general-purpose/Terminal.js +2 -2
  104. package/dist/components/general-purpose/TestResults.js +1 -1
  105. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  106. package/dist/components/general-purpose/WebPreview.js +2 -2
  107. package/dist/components/nanites/AgentConnection.js +2 -2
  108. package/dist/components/nanites/AgentToolDetail.js +2 -2
  109. package/dist/{copy-button-CSDuDfdP.js → copy-button-Dk2vRe9j.js} +1 -1
  110. package/dist/styles/employee-chrome.css +4 -0
  111. package/dist/styles/switch.css +7 -0
  112. package/dist/{workspace-assets-Bg7XhPsk.js → workspace-assets-C3QT6UlQ.js} +1 -1
  113. package/package.json +2 -2
  114. package/dist/{icons-cuEtsgj9.js → icons-CeGfXO21.js} +1 -1
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { t as CopyButton } from "./copy-button-CSDuDfdP.js";
2
+ import { t as CopyButton } from "./copy-button-Dk2vRe9j.js";
3
3
  import { Select } from "./components/foundations/Select.js";
4
4
  import * as React from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -100,6 +100,8 @@ type EmployeeAgentRun = {
100
100
  interface EmployeeWorkbenchItem {
101
101
  id: string;
102
102
  label: string;
103
+ /** Explains the destination on hover and keyboard focus. */
104
+ description: string;
103
105
  icon: React.ReactNode;
104
106
  }
105
107
  interface EmployeeMenuProps {
@@ -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-cuEtsgj9.js";
2
+ import { C as FolderIcon, S as FileIcon, p as ChevronRightIcon, w as FolderOpenIcon } from "./icons-CeGfXO21.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,17 +1,17 @@
1
1
  import { findCatalogMcpServerCard, getMcpServerIconSrc } from "./utils/mcp-server-catalog.js";
2
2
  import { t as cx } from "./class-names-BiMDVpUo.js";
3
- import { C as FolderIcon, D as LinkIcon, K as SpinnerIcon, L as PauseIcon, P as MonitorIcon, S as FileIcon, T as InfoIcon, _ as DotIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, j as MessageSquareIcon, nt as XIcon, p as ChevronRightIcon, u as CalendarIcon } from "./icons-cuEtsgj9.js";
4
3
  import { Collapsible } from "./components/foundations/Collapsible.js";
4
+ import { C as FolderIcon, D as LinkIcon, K as SpinnerIcon, L as PauseIcon, P as MonitorIcon, S as FileIcon, T as InfoIcon, _ as DotIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, j as MessageSquareIcon, nt as XIcon, p as ChevronRightIcon, u as CalendarIcon } from "./icons-CeGfXO21.js";
5
5
  import { Button } from "./components/foundations/Button.js";
6
+ import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "./components/ai-sdk/AgentAttention.js";
6
7
  import { Tooltip } from "./components/foundations/Tooltip.js";
8
+ import { Avatar } from "./components/foundations/Avatar.js";
9
+ import { CorrespondentName, correspondentHandleLabel } from "./components/ai-sdk/Correspondent.js";
7
10
  import { EmptyState } from "./components/foundations/EmptyState.js";
8
11
  import { AppTopBar } from "./components/general-purpose/AppTopBar.js";
9
- import { Avatar } from "./components/foundations/Avatar.js";
10
12
  import { AppIcon } from "./components/foundations/AppIcon.js";
11
13
  import { LinkButton } from "./components/foundations/LinkButton.js";
12
14
  import { getThinkExecutionRunStatus } from "./components/agents-sdk/ThinkExecutionRun.js";
13
- import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "./components/ai-sdk/AgentAttention.js";
14
- import { CorrespondentName, correspondentHandleLabel } from "./components/ai-sdk/Correspondent.js";
15
15
  import * as React from "react";
16
16
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
17
17
  import { useRender } from "@base-ui/react/use-render";
@@ -1,7 +1,7 @@
1
1
  import { n as mergeBaseClassName } from "./class-names-BiMDVpUo.js";
2
- import { B as PlusIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon } from "./icons-cuEtsgj9.js";
3
- import { IconButton } from "./components/foundations/IconButton.js";
2
+ import { B as PlusIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon } from "./icons-CeGfXO21.js";
4
3
  import { Menu } from "./components/foundations/Menu.js";
4
+ import { IconButton } from "./components/foundations/IconButton.js";
5
5
  import * as React from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/_internal/menu-disclosure-group.tsx
@@ -1,7 +1,7 @@
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-cuEtsgj9.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-CeGfXO21.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-Dw1z6jc8.js";
3
4
  import { AppTopBar } from "./components/general-purpose/AppTopBar.js";
4
- import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-Bl-q7wMc.js";
5
5
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./components/agents-sdk/WorkspaceFile.js";
6
6
  import { i as useWorkspaceNavigationContext } from "./WorkspaceLink-BYZG-V_I.js";
7
7
  import { useWorkspaceNavigationRestoration } from "./components/agents-sdk/WorkspaceNavigationRestoration.js";
@@ -1,5 +1,5 @@
1
1
  import { canRequestFavicon, inferFaviconUrl } from "../../utils/favicon.js";
2
- import { D as LinkIcon, P as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, U as SearchIcon, Z as TerminalIcon, et as WarningIcon, tt as WrenchIcon } from "../../icons-cuEtsgj9.js";
2
+ import { D as LinkIcon, P as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, U as SearchIcon, Z as TerminalIcon, et as WarningIcon, tt as WrenchIcon } from "../../icons-CeGfXO21.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,24 +1,23 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { H as RefreshIcon, K as SpinnerIcon, Q as TrashIcon, R as PencilIcon, t as ArchiveIcon } from "../../icons-cuEtsgj9.js";
3
2
  import { ExpansionStateProvider } from "../ai-sdk/ExpansionState.js";
3
+ import { H as RefreshIcon, K as SpinnerIcon, Q as TrashIcon, R as PencilIcon, t as ArchiveIcon } from "../../icons-CeGfXO21.js";
4
+ import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
5
+ import { PromptInput, PromptInputSubmit, PromptInputTray, composerLinksToReferences, usePromptInputController } from "../ai-sdk/PromptInput.js";
4
6
  import { Message, MessageAction, MessageActions, MessageCopyAction, MessageMeta, MessageTimestamp } from "../ai-sdk/Message.js";
5
- import { AgentEventRow, getAgentEvent } from "./AgentEvent.js";
6
- import { AgentChatQueueProvider, useOptionalAgentChatQueue } from "./AgentChatQueue.js";
7
7
  import { AgentMessageParts } from "../ai-sdk/AgentMessageParts.js";
8
- import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
8
+ import { Marker, MarkerContent } from "../foundations/Marker.js";
9
9
  import { VirtualMessageScroller } from "../ai-sdk/MessageScrollerVirtual.js";
10
- import { PromptInput, PromptInputSubmit, PromptInputTray, composerLinksToReferences, usePromptInputController } from "../ai-sdk/PromptInput.js";
11
10
  import { Queue, QueueItem, QueueItemAction, QueueItemActions, QueueItemContent, QueueItemIndicator, QueueList } from "../ai-sdk/Queue.js";
11
+ import { AgentEventRow, getAgentEvent } from "./AgentEvent.js";
12
+ import { AgentChatQueueProvider, useOptionalAgentChatQueue } from "./AgentChatQueue.js";
12
13
  import { PromptInputApproval, getApprovalStateKey, getPendingToolApprovals } from "./PromptInputApproval.js";
13
14
  import { BrandLoading } from "../general-purpose/BrandLoading.js";
14
- import { Marker, MarkerContent } from "../foundations/Marker.js";
15
- import { TransitionSurface } from "../foundations/TransitionSurface.js";
16
15
  import * as React from "react";
17
16
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
18
17
  import { useRender } from "@base-ui/react/use-render";
19
18
  import { mergeProps } from "@base-ui/react/merge-props";
20
- import { isCompactionMessage } from "agents/experimental/memory/utils";
21
19
  import { isTextUIPart } from "ai";
20
+ import { isCompactionMessage } from "agents/experimental/memory/utils";
22
21
  //#region src/components/agents-sdk/AgentChat.tsx
23
22
  function observeAgentChatDock(element) {
24
23
  if (!element || typeof ResizeObserver === "undefined") return;
@@ -114,9 +113,8 @@ function AgentChatRuntimeRoot({ messages, status = "ready", onRegenerate, onEdit
114
113
  ]);
115
114
  return /* @__PURE__ */ jsx(AgentChatContext.Provider, {
116
115
  value,
117
- children: /* @__PURE__ */ jsxs(TransitionSurface, {
116
+ children: /* @__PURE__ */ jsxs("div", {
118
117
  ref,
119
- variant: "fade",
120
118
  className: cx("agent-chat", className),
121
119
  "data-recipe": "fill-host",
122
120
  ...props,
@@ -1,4 +1,4 @@
1
- import { E as KeyboardIcon, H as RefreshIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
1
+ import { E as KeyboardIcon, H as RefreshIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.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 { K as SpinnerIcon, _ as DotIcon, k as MaximizeIcon } from "../../icons-cuEtsgj9.js";
2
+ import { K as SpinnerIcon, _ as DotIcon, k as MaximizeIcon } from "../../icons-CeGfXO21.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 { L as PauseIcon, z as PlayIcon } from "../../icons-cuEtsgj9.js";
2
+ import { L as PauseIcon, z as PlayIcon } from "../../icons-CeGfXO21.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 { K as SpinnerIcon, nt as XIcon } from "../../icons-cuEtsgj9.js";
2
+ import { K as SpinnerIcon, nt as XIcon } from "../../icons-CeGfXO21.js";
3
3
  import { Tabs } from "../foundations/Tabs.js";
4
4
  import { WebPreview, WebPreviewEmpty, WebPreviewNavigation, WebPreviewNavigationButton, WebPreviewUrl, WebPreviewViewport } from "../general-purpose/WebPreview.js";
5
5
  import { BrowserLiveView } from "./BrowserLiveView.js";
@@ -1,5 +1,5 @@
1
1
  import { l as WorkspaceNavigationAdapter } from "../../WorkspaceLink-Bh9-Jo1r.js";
2
- import { f as EmployeeShellProps, l as EmployeeModelSetup, n as EmployeeBrand, p as EmployeeStatus, t as EmployeeAgentRun } from "../../EmployeeChrome-C8eTGJWn.js";
2
+ import { f as EmployeeShellProps, l as EmployeeModelSetup, n as EmployeeBrand, p as EmployeeStatus, t as EmployeeAgentRun } from "../../EmployeeChrome-B605rpVz.js";
3
3
  import * as React from "react";
4
4
 
5
5
  //#region src/components/agents-sdk/EmployeeApp.d.ts
@@ -1,4 +1,4 @@
1
- import { et as WarningIcon } from "../../icons-cuEtsgj9.js";
1
+ import { et as WarningIcon } from "../../icons-CeGfXO21.js";
2
2
  import { WorkbenchBack } from "./WorkbenchBack.js";
3
3
  import { StatusScreen } from "../general-purpose/StatusScreen.js";
4
4
  import { EmployeeChrome } from "./EmployeeChrome.js";
@@ -1,4 +1,4 @@
1
- import { E as PromptInputCommandComposerProps, F as PromptInputDictationProps, M as PromptInputContextSelectorProps } from "../../PromptInput-DGPrCTPl.js";
1
+ import { E as PromptInputCommandComposerProps, M as PromptInputContextSelectorProps } from "../../PromptInput-DGPrCTPl.js";
2
2
  import { AgentChatTranscriptProps } from "./AgentChat.js";
3
3
  import { ConversationTabPickerProps } from "../extension/ConversationTabPicker.js";
4
4
  import { SetupChecklistGroupProps } from "../general-purpose/SetupChecklist.js";
@@ -24,7 +24,8 @@ interface EmployeeComposerProps<Id extends string = string> {
24
24
  contextSelector?: PromptInputContextSelectorProps;
25
25
  tabs?: ConversationTabPickerProps;
26
26
  model?: CodexModelSelectorProps;
27
- dictation?: PromptInputDictationProps;
27
+ /** Dictation control; mount live meter subscriptions inside this slot. */
28
+ dictation?: React.ReactNode;
28
29
  context?: ContextProps;
29
30
  }
30
31
  /** One composer anatomy for the app and its examples; capabilities remain explicit. */
@@ -1,11 +1,11 @@
1
- import { PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputFooterEnd, PromptInputTools } from "../ai-sdk/PromptInput.js";
2
- import { AgentChat, useAgentChatCompaction } from "./AgentChat.js";
1
+ import { PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputCommandComposer, PromptInputContextSelector, PromptInputFooter, PromptInputFooterEnd, PromptInputTools } from "../ai-sdk/PromptInput.js";
2
+ import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger } from "../ai-sdk/Context.js";
3
+ import { CodexModelSelector } from "../extension/CodexModelSelector.js";
3
4
  import { ConversationTabPicker } from "../extension/ConversationTabPicker.js";
4
- import { n as SetupChecklistGroup } from "../../SetupChecklist-BiWQkKEq.js";
5
+ import { AgentChat, useAgentChatCompaction } from "./AgentChat.js";
6
+ import { n as SetupChecklistGroup } from "../../SetupChecklist-DWyifWWg.js";
5
7
  import { McpServerPickerItems } from "./McpServerPicker.js";
6
8
  import { EmployeeStartScreen } from "./EmployeeStartScreen.js";
7
- import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger } from "../ai-sdk/Context.js";
8
- import { CodexModelSelector } from "../extension/CodexModelSelector.js";
9
9
  import { ThinkChat } from "./ThinkChat.js";
10
10
  import "react";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -55,7 +55,7 @@ function EmployeeComposer({ personalization, connections, tools, contextSelector
55
55
  ] }), /* @__PURE__ */ jsxs(PromptInputFooterEnd, { children: [
56
56
  tabs ? /* @__PURE__ */ jsx(ConversationTabPicker, { ...tabs }) : null,
57
57
  model ? /* @__PURE__ */ jsx(CodexModelSelector, { ...model }) : null,
58
- dictation ? /* @__PURE__ */ jsx(PromptInputDictation, { ...dictation }) : null,
58
+ dictation,
59
59
  context ? /* @__PURE__ */ jsxs(Context, {
60
60
  ...context,
61
61
  children: [/* @__PURE__ */ jsx(ContextTrigger, {}), /* @__PURE__ */ jsxs(ContextContent, { children: [/* @__PURE__ */ jsx(ContextContentHeader, {}), /* @__PURE__ */ jsx(ContextContentBody, {})] })]
@@ -1,2 +1,2 @@
1
- import { a as EmployeeDestination, c as EmployeeMenuProps, d as EmployeeRenderLink, f as EmployeeShellProps, h as EmployeeWorkbenchItem, i as EmployeeCompanion, l as EmployeeModelSetup, m as EmployeeView, n as EmployeeBrand, o as EmployeeFollow, p as EmployeeStatus, r as EmployeeChrome, s as EmployeeIdentity, t as EmployeeAgentRun, u as EmployeePasskeyVault } from "../../EmployeeChrome-C8eTGJWn.js";
1
+ import { a as EmployeeDestination, c as EmployeeMenuProps, d as EmployeeRenderLink, f as EmployeeShellProps, h as EmployeeWorkbenchItem, i as EmployeeCompanion, l as EmployeeModelSetup, m as EmployeeView, n as EmployeeBrand, o as EmployeeFollow, p as EmployeeStatus, r as EmployeeChrome, s as EmployeeIdentity, t as EmployeeAgentRun, u as EmployeePasskeyVault } from "../../EmployeeChrome-B605rpVz.js";
2
2
  export { EmployeeAgentRun, EmployeeBrand, EmployeeChrome, EmployeeCompanion, EmployeeDestination, EmployeeFollow, EmployeeIdentity, EmployeeMenuProps, EmployeeModelSetup, EmployeePasskeyVault, EmployeeRenderLink, EmployeeShellProps, EmployeeStatus, EmployeeView, EmployeeWorkbenchItem };
@@ -1,22 +1,21 @@
1
1
  import { findCatalogMcpServerCard } from "../../utils/mcp-server-catalog.js";
2
- import { A as McpIcon, C as FolderIcon, F as MoonIcon, K as SpinnerIcon, P as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, V as QueueIcon, W as SidebarIcon, Y as SunIcon, Z as TerminalIcon, b as EyeIcon, c as BoxIcon, et as WarningIcon, o as ArrowUpRightIcon, q as SquareIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-cuEtsgj9.js";
2
+ import { A as McpIcon, C as FolderIcon, F as MoonIcon, K as SpinnerIcon, P as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, V as QueueIcon, W as SidebarIcon, Y as SunIcon, Z as TerminalIcon, b as EyeIcon, c as BoxIcon, et as WarningIcon, o as ArrowUpRightIcon, q as SquareIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-CeGfXO21.js";
3
3
  import { Button } from "../foundations/Button.js";
4
+ import { Menu } from "../foundations/Menu.js";
4
5
  import { Tooltip } from "../foundations/Tooltip.js";
5
6
  import { IconButton } from "../foundations/IconButton.js";
6
7
  import { Dialog } from "../foundations/Dialog.js";
7
8
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
9
+ import { AgentChatStartScreen, AgentChatStartScreenComposer, AgentChatStartScreenPrimary, AgentChatStartScreenSuggestions, AgentChatStartScreenTray, AgentChatStarterList } from "../ai-sdk/AgentChatStartScreen.js";
10
+ import { n as isPlainPrimaryLinkActivation } from "../../navigation-link-kqMa81v5.js";
11
+ import { DescriptionList } from "../foundations/DescriptionList.js";
12
+ import { Avatar } from "../foundations/Avatar.js";
13
+ import { ChatGptSignInScreen } from "../extension/ChatGptSignInScreen.js";
8
14
  import { SubagentRunLabel, getSubagentRunName } from "./SubagentRunIndicator.js";
9
- import { Menu } from "../foundations/Menu.js";
10
15
  import { BrandLoading } from "../general-purpose/BrandLoading.js";
11
16
  import { AgentChat } from "./AgentChat.js";
12
17
  import { EmptyState } from "../foundations/EmptyState.js";
13
18
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
14
- import { n as isPlainPrimaryLinkActivation } from "../../navigation-link-kqMa81v5.js";
15
- import { AgentChatStartScreen, AgentChatStartScreenComposer, AgentChatStartScreenPrimary, AgentChatStartScreenSuggestions, AgentChatStartScreenTray, AgentChatStarterList } from "../ai-sdk/AgentChatStartScreen.js";
16
- import { ChatGptSignInScreen } from "../extension/ChatGptSignInScreen.js";
17
- import { Avatar } from "../foundations/Avatar.js";
18
- import { DescriptionList } from "../foundations/DescriptionList.js";
19
- import { Switch } from "../foundations/Switch.js";
20
19
  import { useTheme } from "../foundations/ThemeProvider.js";
21
20
  import { ActionGuide, ActionGuideAction, ActionGuideList, ActionGuideSection } from "../general-purpose/ActionGuide.js";
22
21
  import { ResponsiveSidebarShell, useResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
@@ -28,28 +27,43 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
28
27
  const WORKBENCH_NAVIGATION = [{
29
28
  id: "files",
30
29
  label: "Files",
30
+ description: "Browse files in this employee’s workspace.",
31
31
  icon: /* @__PURE__ */ jsx(FileIcon, {})
32
32
  }, {
33
33
  id: "plugins",
34
34
  label: "Plugins",
35
+ description: "Connect apps and manage the tools this employee can use.",
35
36
  icon: /* @__PURE__ */ jsx(BoxIcon, {})
36
37
  }];
38
+ function MenuHint({ hint, children }) {
39
+ const descriptionId = React.useId();
40
+ return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [React.cloneElement(children, { "aria-describedby": descriptionId }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
41
+ side: "left",
42
+ align: "center",
43
+ sideOffset: 8,
44
+ children: /* @__PURE__ */ jsx(Tooltip.Popup, {
45
+ id: descriptionId,
46
+ children: hint
47
+ })
48
+ }) })] });
49
+ }
37
50
  function MenuSwitchItem({ label, hint, checked, onCheckedChange }) {
38
- return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsxs(Tooltip.Trigger, {
39
- render: /* @__PURE__ */ jsx(Menu.CheckboxItem, {
51
+ return /* @__PURE__ */ jsx(MenuHint, {
52
+ hint,
53
+ children: /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
40
54
  className: "employee-menu__switch",
41
55
  checked,
42
- onCheckedChange
43
- }),
44
- children: [label, /* @__PURE__ */ jsx(Switch.Root, {
45
- "aria-hidden": true,
46
- tabIndex: -1,
47
- readOnly: true,
48
- size: "sm",
49
- checked,
50
- children: /* @__PURE__ */ jsx(Switch.Thumb, {})
51
- })]
52
- }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, { children: /* @__PURE__ */ jsx(Tooltip.Popup, { children: hint }) }) })] });
56
+ onCheckedChange,
57
+ closeOnClick: false,
58
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
59
+ children: [/* @__PURE__ */ jsx("span", { children: label }), /* @__PURE__ */ jsx("span", {
60
+ className: "switch switch--sm",
61
+ "aria-hidden": "true",
62
+ "data-checked": checked ? "" : void 0,
63
+ children: /* @__PURE__ */ jsx("span", { className: "switch__thumb" })
64
+ })]
65
+ })
66
+ });
53
67
  }
54
68
  /** Employee settings are host-owned state; the menu stores only dialog visibility. */
55
69
  function EmployeeMenu({ renderLink, view = "chat", identity, onModel, onSignOut, companion, passkeys, follow, workbenchNavigation = [], navigation }) {
@@ -68,109 +82,152 @@ function EmployeeMenu({ renderLink, view = "chat", identity, onModel, onSignOut,
68
82
  side: "bottom",
69
83
  align: "end",
70
84
  sideOffset: 4,
71
- children: /* @__PURE__ */ jsxs(Menu.Popup, { children: [
72
- compact ? (navigation ?? [...WORKBENCH_NAVIGATION, ...workbenchNavigation]).map((item) => /* @__PURE__ */ jsxs(Menu.Item, {
73
- render: renderLink({
74
- kind: "view",
75
- view: view === item.id ? "chat" : item.id
76
- }),
77
- children: [item.icon, item.label]
78
- }, item.id)) : null,
79
- /* @__PURE__ */ jsxs(Menu.Item, {
80
- render: renderLink({
81
- kind: "view",
82
- view: "schedules"
85
+ children: /* @__PURE__ */ jsxs(Menu.Popup, {
86
+ className: "employee-menu",
87
+ children: [
88
+ compact ? (navigation ?? [...WORKBENCH_NAVIGATION, ...workbenchNavigation]).map((item) => /* @__PURE__ */ jsx(MenuHint, {
89
+ hint: item.description,
90
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
91
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: renderLink({
92
+ kind: "view",
93
+ view: view === item.id ? "chat" : item.id
94
+ }) }),
95
+ children: [item.icon, /* @__PURE__ */ jsx("span", {
96
+ className: "sigvelo-truncate",
97
+ children: item.label
98
+ })]
99
+ })
100
+ }, item.id)) : null,
101
+ /* @__PURE__ */ jsx(MenuHint, {
102
+ hint: "Create and manage recurring tasks and review their runs.",
103
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
104
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: renderLink({
105
+ kind: "view",
106
+ view: "schedules"
107
+ }) }),
108
+ children: [/* @__PURE__ */ jsx(QueueIcon, {}), "Routines"]
109
+ })
83
110
  }),
84
- children: [/* @__PURE__ */ jsx(QueueIcon, {}), "Routines"]
85
- }),
86
- follow ? /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
87
- checked: follow.followed,
88
- onCheckedChange: follow.onCheckedChange,
89
- children: [/* @__PURE__ */ jsx(EyeIcon, {}), "Follow this conversation"]
90
- }) : null,
91
- identity ? /* @__PURE__ */ jsxs(Menu.Item, {
92
- onClick: () => setIdentityOpen(true),
93
- children: [/* @__PURE__ */ jsx(InfoIcon, {}), "Identity"]
94
- }) : null,
95
- onModel ? /* @__PURE__ */ jsxs(Menu.Item, {
96
- onClick: onModel,
97
- children: [/* @__PURE__ */ jsx(TerminalIcon, {}), "Model"]
98
- }) : null,
99
- companion ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [
100
- /* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Companion app" }),
101
- /* @__PURE__ */ jsx(MenuSwitchItem, {
102
- label: "Connect this browser",
103
- hint: "Connecting lets this employee chat with the browser and watch it work from anywhere.",
104
- checked: companion.enabled,
105
- onCheckedChange: companion.setEnabled
106
- }),
107
- /* @__PURE__ */ jsxs(Menu.Item, {
108
- render: /* @__PURE__ */ jsx("a", {
109
- href: companion.origin,
110
- target: "_blank",
111
- rel: "noreferrer",
112
- "aria-label": companion.origin.replace(/^https?:\/\//, "")
111
+ follow ? /* @__PURE__ */ jsx(MenuHint, {
112
+ hint: "Follow the browser tabs this employee uses for this conversation.",
113
+ children: /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
114
+ checked: follow.followed,
115
+ onCheckedChange: follow.onCheckedChange,
116
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
117
+ children: [/* @__PURE__ */ jsx(EyeIcon, {}), "Follow this conversation"]
118
+ })
119
+ }) : null,
120
+ identity ? /* @__PURE__ */ jsx(MenuHint, {
121
+ hint: "Review the browser profile and account assigned to this employee.",
122
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
123
+ onClick: () => setIdentityOpen(true),
124
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
125
+ children: [/* @__PURE__ */ jsx(InfoIcon, {}), "Identity"]
126
+ })
127
+ }) : null,
128
+ onModel ? /* @__PURE__ */ jsx(MenuHint, {
129
+ hint: "Choose the model this employee uses for conversations.",
130
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
131
+ onClick: onModel,
132
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
133
+ children: [/* @__PURE__ */ jsx(TerminalIcon, {}), "Model"]
134
+ })
135
+ }) : null,
136
+ companion ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [
137
+ /* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Companion app" }),
138
+ /* @__PURE__ */ jsx(MenuSwitchItem, {
139
+ label: "Connect this browser",
140
+ hint: "Connect this browser so you can chat with this employee and watch it work from the companion app.",
141
+ checked: companion.enabled,
142
+ onCheckedChange: companion.setEnabled
113
143
  }),
114
- children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), companion.origin.replace(/^https?:\/\//, "")]
115
- })
116
- ] })] }) : null,
117
- passkeys ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Passkeys" }), /* @__PURE__ */ jsx(MenuSwitchItem, {
118
- label: "Use its own passkeys",
119
- hint: "The employee saves and uses its own passkeys instead of the browser's.",
120
- checked: passkeys.enabled,
121
- onCheckedChange: passkeys.setEnabled
122
- })] })] }) : null,
123
- /* @__PURE__ */ jsx(Menu.Separator, {}),
124
- /* @__PURE__ */ jsxs(Menu.Group, {
125
- className: "employee-menu__appearance",
126
- children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Appearance" }), /* @__PURE__ */ jsxs(Menu.RadioGroup, {
127
- className: "employee-menu__theme-options",
128
- value: preference,
129
- onValueChange: (value) => {
130
- if (value === "light" || value === "dark" || value === "system") setPreference(value);
131
- },
132
- children: [
133
- /* @__PURE__ */ jsxs(Menu.RadioItem, {
134
- value: "light",
135
- className: "employee-menu__theme-option",
136
- "aria-label": "Light",
137
- title: "Light",
138
- closeOnClick: false,
139
- children: [/* @__PURE__ */ jsx(SunIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
140
- className: "sigvelo-visually-hidden",
141
- children: "Light"
142
- })]
143
- }),
144
- /* @__PURE__ */ jsxs(Menu.RadioItem, {
145
- value: "dark",
146
- className: "employee-menu__theme-option",
147
- "aria-label": "Dark",
148
- title: "Dark",
149
- closeOnClick: false,
150
- children: [/* @__PURE__ */ jsx(MoonIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
151
- className: "sigvelo-visually-hidden",
152
- children: "Dark"
153
- })]
154
- }),
155
- /* @__PURE__ */ jsxs(Menu.RadioItem, {
156
- value: "system",
157
- className: "employee-menu__theme-option",
158
- "aria-label": "System",
159
- title: "System",
160
- closeOnClick: false,
161
- children: [/* @__PURE__ */ jsx(MonitorIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
162
- className: "sigvelo-visually-hidden",
163
- children: "System"
144
+ /* @__PURE__ */ jsx(MenuHint, {
145
+ hint: "Open the companion app in a new tab to chat with this employee remotely.",
146
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
147
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("a", {
148
+ href: companion.origin,
149
+ target: "_blank",
150
+ rel: "noreferrer",
151
+ "aria-label": companion.origin.replace(/^https?:\/\//, "")
152
+ }) }),
153
+ children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), /* @__PURE__ */ jsx("span", {
154
+ className: "sigvelo-truncate",
155
+ children: companion.origin.replace(/^https?:\/\//, "")
164
156
  })]
165
157
  })
166
- ]
167
- })]
168
- }),
169
- onSignOut ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Item, {
170
- onClick: onSignOut,
171
- children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), "Sign out"]
172
- })] }) : null
173
- ] })
158
+ })
159
+ ] })] }) : null,
160
+ passkeys ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Passkeys" }), /* @__PURE__ */ jsx(MenuSwitchItem, {
161
+ label: "Use its own passkeys",
162
+ hint: "The employee saves and uses its own passkeys instead of the browser's.",
163
+ checked: passkeys.enabled,
164
+ onCheckedChange: passkeys.setEnabled
165
+ })] })] }) : null,
166
+ /* @__PURE__ */ jsx(Menu.Separator, {}),
167
+ /* @__PURE__ */ jsxs(Menu.Group, {
168
+ className: "employee-menu__appearance",
169
+ children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Appearance" }), /* @__PURE__ */ jsxs(Menu.RadioGroup, {
170
+ className: "employee-menu__theme-options",
171
+ value: preference,
172
+ onValueChange: (value) => {
173
+ if (value === "light" || value === "dark" || value === "system") setPreference(value);
174
+ },
175
+ children: [
176
+ /* @__PURE__ */ jsx(MenuHint, {
177
+ hint: "Use a light appearance.",
178
+ children: /* @__PURE__ */ jsxs(Menu.RadioItem, {
179
+ value: "light",
180
+ className: "employee-menu__theme-option",
181
+ "aria-label": "Light",
182
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
183
+ closeOnClick: false,
184
+ children: [/* @__PURE__ */ jsx(SunIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
185
+ className: "sigvelo-visually-hidden",
186
+ children: "Light"
187
+ })]
188
+ })
189
+ }),
190
+ /* @__PURE__ */ jsx(MenuHint, {
191
+ hint: "Use a dark appearance.",
192
+ children: /* @__PURE__ */ jsxs(Menu.RadioItem, {
193
+ value: "dark",
194
+ className: "employee-menu__theme-option",
195
+ "aria-label": "Dark",
196
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
197
+ closeOnClick: false,
198
+ children: [/* @__PURE__ */ jsx(MoonIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
199
+ className: "sigvelo-visually-hidden",
200
+ children: "Dark"
201
+ })]
202
+ })
203
+ }),
204
+ /* @__PURE__ */ jsx(MenuHint, {
205
+ hint: "Match your device’s light or dark appearance automatically.",
206
+ children: /* @__PURE__ */ jsxs(Menu.RadioItem, {
207
+ value: "system",
208
+ className: "employee-menu__theme-option",
209
+ "aria-label": "System",
210
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
211
+ closeOnClick: false,
212
+ children: [/* @__PURE__ */ jsx(MonitorIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
213
+ className: "sigvelo-visually-hidden",
214
+ children: "System"
215
+ })]
216
+ })
217
+ })
218
+ ]
219
+ })]
220
+ }),
221
+ onSignOut ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsx(MenuHint, {
222
+ hint: "Sign out of your account on this device.",
223
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
224
+ onClick: onSignOut,
225
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
226
+ children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), "Sign out"]
227
+ })
228
+ })] }) : null
229
+ ]
230
+ })
174
231
  }) })] }), identity ? /* @__PURE__ */ jsx(IdentityDialog, {
175
232
  identity,
176
233
  open: identityOpen,
@@ -231,6 +288,7 @@ function EmployeeWorkbenchLinks({ view, renderLink, workbenchNavigation = [], na
231
288
  if (compact) return null;
232
289
  return /* @__PURE__ */ jsx(Fragment, { children: (navigation ?? [...WORKBENCH_NAVIGATION, ...workbenchNavigation]).map((item) => /* @__PURE__ */ jsx(AppTopBar.Link, {
233
290
  label: item.label,
291
+ tooltip: item.description,
234
292
  "aria-current": view === item.id ? "page" : void 0,
235
293
  "data-pressed": view === item.id ? "" : void 0,
236
294
  render: renderLink({
@@ -1,4 +1,4 @@
1
- import { c as EmployeeMenuProps } from "../../EmployeeChrome-C8eTGJWn.js";
1
+ import { c as EmployeeMenuProps } from "../../EmployeeChrome-B605rpVz.js";
2
2
  import { t as ThinkRoutine } from "../../ThinkRoutine-Cb1DdaHa.js";
3
3
  import { ThinkRoutineActionsRootProps } from "./ThinkRoutineActions.js";
4
4
  import * as React from "react";
@@ -1,4 +1,4 @@
1
- import { R as PencilIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
1
+ import { R as PencilIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.js";
2
2
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
3
  import { StatusScreen } from "../general-purpose/StatusScreen.js";
4
4
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
@@ -1,5 +1,5 @@
1
1
  import { J as PromptInputMessage } from "../../PromptInput-DGPrCTPl.js";
2
- import { a as EmployeeDestination, n as EmployeeBrand } from "../../EmployeeChrome-C8eTGJWn.js";
2
+ import { a as EmployeeDestination, n as EmployeeBrand } from "../../EmployeeChrome-B605rpVz.js";
3
3
  import { SetupChecklistGroupProps } from "../general-purpose/SetupChecklist.js";
4
4
  import { n as McpPluginCatalogProps } from "../../McpPluginCatalog-DNeHDrts.js";
5
5
  import { r as WorkspaceMountManagerProps } from "../../WorkspaceMountManager-CkLI1B-G.js";
@@ -1,10 +1,10 @@
1
- import { C as FolderIcon, G as SlackIcon, I as PaperclipIcon, c as BoxIcon, g as DiscordIcon } from "../../icons-cuEtsgj9.js";
2
- import { IconButton } from "../foundations/IconButton.js";
1
+ import { C as FolderIcon, G as SlackIcon, I as PaperclipIcon, c as BoxIcon, g as DiscordIcon } from "../../icons-CeGfXO21.js";
3
2
  import { Menu } from "../foundations/Menu.js";
3
+ import { IconButton } from "../foundations/IconButton.js";
4
4
  import { ActionGuideAction } from "../general-purpose/ActionGuide.js";
5
5
  import { AppIcon } from "../foundations/AppIcon.js";
6
6
  import { EmployeeChrome } from "./EmployeeChrome.js";
7
- import { t as SetupChecklistAction } from "../../SetupChecklist-BiWQkKEq.js";
7
+ import { t as SetupChecklistAction } from "../../SetupChecklist-DWyifWWg.js";
8
8
  import { McpServerPickerAction, McpServerPickerItems } from "./McpServerPicker.js";
9
9
  import { WorkspaceMountManager } from "./WorkspaceMountManager.js";
10
10
  import * as React from "react";