@mcp-b/react-components 0.49.0 → 0.50.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 (196) hide show
  1. package/dist/{AgentChatQueue-C_Jaw3Ia.d.ts → AgentChatQueue-MrHhV901.d.ts} +1 -1
  2. package/dist/AgentMessageParts-C7L-Mv9U.d.ts +46 -0
  3. package/dist/AppTopBar-CVkLRdk7.d.ts +99 -0
  4. package/dist/{CodeBlock-g8sADidM.js → CodeBlock-BMK6CW9D.js} +1 -1
  5. package/dist/Dialog-88GF7_Th.d.ts +107 -0
  6. package/dist/{FileTree-H8mMg4rV.js → FileTree-okaLnS5j.js} +20 -9
  7. package/dist/Form-CM7GNTwR.d.ts +91 -0
  8. package/dist/ManagerOffice-5pEFpoV3.js +1146 -0
  9. package/dist/McpConnectorForm--HB0MEGC.d.ts +39 -0
  10. package/dist/{Menu-yb6QXWA3.d.ts → Menu-CgfUZhZd.d.ts} +1 -1
  11. package/dist/Popover-CgHG5DtS.d.ts +220 -0
  12. package/dist/{PromptInput-C4Mofitz.d.ts → PromptInput-DGPrCTPl.d.ts} +3 -2
  13. package/dist/ResponsiveSidebarShell-CAmmtQTR.d.ts +128 -0
  14. package/dist/SessionCompaction-CmTJFpzj.d.ts +89 -0
  15. package/dist/SetupChecklist-O6qmgwz4.js +77 -0
  16. package/dist/ThinkChatActivity-DENkintt.d.ts +77 -0
  17. package/dist/ThinkChatContext-COIgzkYp.d.ts +28 -0
  18. package/dist/ThinkRoutine-Cb1DdaHa.d.ts +30 -0
  19. package/dist/ThinkThreadPicker-yetGX_s5.d.ts +91 -0
  20. package/dist/{WorkspaceFileView-DYPtRVpM.js → WorkspaceFileView-ncZuIWhC.js} +2 -2
  21. package/dist/WorkspaceMessageResponse-8lOSAbw_.d.ts +48 -0
  22. package/dist/codex-model-catalog-BBN_gWcc.d.ts +155 -0
  23. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  24. package/dist/components/agents-sdk/AgentChat.d.ts +3 -3
  25. package/dist/components/agents-sdk/AgentChat.js +8 -8
  26. package/dist/components/agents-sdk/AgentChatQueue.d.ts +1 -1
  27. package/dist/components/agents-sdk/AgentEvent.js +2 -2
  28. package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
  29. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  30. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  31. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  32. package/dist/components/agents-sdk/DiscordConnectionDialog.d.ts +20 -0
  33. package/dist/components/agents-sdk/DiscordConnectionDialog.js +65 -0
  34. package/dist/components/agents-sdk/EmployeeApp.d.ts +49 -0
  35. package/dist/components/agents-sdk/EmployeeApp.js +57 -0
  36. package/dist/components/agents-sdk/EmployeeChat.d.ts +63 -0
  37. package/dist/components/agents-sdk/EmployeeChat.js +84 -0
  38. package/dist/components/agents-sdk/EmployeeChrome.d.ts +10 -2
  39. package/dist/components/agents-sdk/EmployeeChrome.js +26 -16
  40. package/dist/components/agents-sdk/EmployeeSchedules.d.ts +24 -0
  41. package/dist/components/agents-sdk/EmployeeSchedules.js +105 -0
  42. package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +43 -0
  43. package/dist/components/agents-sdk/EmployeeStartScreen.js +133 -0
  44. package/dist/components/agents-sdk/ManagerAccountActions.d.ts +29 -0
  45. package/dist/components/agents-sdk/ManagerAccountActions.js +62 -0
  46. package/dist/components/agents-sdk/ManagerOffice.d.ts +1 -1
  47. package/dist/components/agents-sdk/ManagerOffice.js +1 -1145
  48. package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +49 -0
  49. package/dist/components/agents-sdk/ManagerOfficeScreens.js +198 -0
  50. package/dist/components/agents-sdk/McpConnectionRequest.d.ts +1 -1
  51. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  52. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  53. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  54. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +3 -3
  55. package/dist/components/agents-sdk/McpPluginCatalog.js +4 -4
  56. package/dist/components/agents-sdk/McpServerIcon.d.ts +1 -1
  57. package/dist/components/agents-sdk/McpServerPicker.d.ts +4 -4
  58. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  59. package/dist/components/agents-sdk/ModelEndpointDialog.d.ts +31 -0
  60. package/dist/components/agents-sdk/ModelEndpointDialog.js +118 -0
  61. package/dist/components/agents-sdk/ModelSelector.d.ts +1 -1
  62. package/dist/components/agents-sdk/ModelSelector.js +4 -4
  63. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  64. package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
  65. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  66. package/dist/components/agents-sdk/SessionCompaction.d.ts +1 -88
  67. package/dist/components/agents-sdk/SlackConnectionDialog.d.ts +18 -0
  68. package/dist/components/agents-sdk/SlackConnectionDialog.js +48 -0
  69. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  70. package/dist/components/agents-sdk/SubagentRunPanel.js +1 -1
  71. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  72. package/dist/components/agents-sdk/ThinkChat.d.ts +6 -6
  73. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -76
  74. package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
  75. package/dist/components/agents-sdk/ThinkChatContext.d.ts +1 -27
  76. package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
  77. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
  78. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  79. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +1 -1
  80. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
  81. package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +1 -1
  82. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  83. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -29
  84. package/dist/components/agents-sdk/ThinkRoutineActions.d.ts +2 -2
  85. package/dist/components/agents-sdk/ThinkRoutineActions.js +1 -1
  86. package/dist/components/agents-sdk/ThinkRoutineBrowser.d.ts +1 -1
  87. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +3 -3
  88. package/dist/components/agents-sdk/ThinkRoutineDetail.d.ts +1 -1
  89. package/dist/components/agents-sdk/ThinkRoutineForm.js +4 -4
  90. package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
  91. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -90
  92. package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
  93. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  94. package/dist/components/agents-sdk/WorkspaceCorrespondence.js +6 -6
  95. package/dist/components/agents-sdk/WorkspaceExecution.js +7 -7
  96. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  97. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  98. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  99. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -47
  100. package/dist/components/agents-sdk/WorkspaceMountManager.js +2 -2
  101. package/dist/components/agents-sdk/WorkspaceProject.js +4 -4
  102. package/dist/components/agents-sdk/WorkspaceUserScript.js +4 -4
  103. package/dist/components/ai-sdk/Activity.js +1 -1
  104. package/dist/components/ai-sdk/AgentChatMessageEditor.js +5 -1
  105. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
  106. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  107. package/dist/components/ai-sdk/AgentMessageParts.d.ts +1 -45
  108. package/dist/components/ai-sdk/Approval.js +2 -2
  109. package/dist/components/ai-sdk/Artifact.js +1 -1
  110. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  111. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  112. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  113. package/dist/components/ai-sdk/ComposerLink.js +1 -1
  114. package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
  115. package/dist/components/ai-sdk/Context.d.ts +1 -1
  116. package/dist/components/ai-sdk/Context.js +1 -1
  117. package/dist/components/ai-sdk/Conversation.js +1 -1
  118. package/dist/components/ai-sdk/Goal.js +1 -1
  119. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  120. package/dist/components/ai-sdk/Message.js +2 -2
  121. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  122. package/dist/components/ai-sdk/MessageScrollerVirtual.js +2 -1
  123. package/dist/components/ai-sdk/Plan.d.ts +1 -1
  124. package/dist/components/ai-sdk/Plan.js +1 -1
  125. package/dist/components/ai-sdk/PromptInput.d.ts +1 -1
  126. package/dist/components/ai-sdk/PromptInput.js +7 -7
  127. package/dist/components/ai-sdk/Queue.js +1 -1
  128. package/dist/components/ai-sdk/Reasoning.js +1 -1
  129. package/dist/components/ai-sdk/Sources.js +1 -1
  130. package/dist/components/ai-sdk/Task.js +1 -1
  131. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  132. package/dist/components/extension/CodexModelSelector.d.ts +2 -2
  133. package/dist/components/extension/CodexModelSelector.js +3 -3
  134. package/dist/components/extension/ConversationTabPicker.js +2 -2
  135. package/dist/components/foundations/Checkbox.js +1 -1
  136. package/dist/components/foundations/Collapsible.js +1 -1
  137. package/dist/components/foundations/ContextMenu.d.ts +10 -23
  138. package/dist/components/foundations/ContextMenu.js +3 -2
  139. package/dist/components/foundations/Dialog.d.ts +1 -106
  140. package/dist/components/foundations/Form.d.ts +1 -90
  141. package/dist/components/foundations/Menu.d.ts +1 -1
  142. package/dist/components/foundations/Menubar.d.ts +1 -1
  143. package/dist/components/foundations/Menubar.js +1 -1
  144. package/dist/components/foundations/Popover.d.ts +1 -219
  145. package/dist/components/foundations/PreviewCard.d.ts +1 -1
  146. package/dist/components/foundations/SearchField.js +1 -1
  147. package/dist/components/foundations/Select.js +1 -1
  148. package/dist/components/foundations/Stepper.js +1 -1
  149. package/dist/components/foundations/Toast.js +1 -1
  150. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  151. package/dist/components/foundations/ToggleGroup.js +1 -1
  152. package/dist/components/foundations/Tooltip.d.ts +1 -1
  153. package/dist/components/foundations/icons.js +1 -1
  154. package/dist/components/general-purpose/AccountSignInDialog.d.ts +26 -0
  155. package/dist/components/general-purpose/AccountSignInDialog.js +25 -0
  156. package/dist/components/general-purpose/AppTopBar.d.ts +1 -98
  157. package/dist/components/general-purpose/Commit.js +2 -2
  158. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  159. package/dist/components/general-purpose/FileTree.js +1 -1
  160. package/dist/components/general-purpose/NotificationPrompt.d.ts +13 -0
  161. package/dist/components/general-purpose/NotificationPrompt.js +18 -0
  162. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  163. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  164. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -127
  165. package/dist/components/general-purpose/ResponsiveSidebarShell.js +124 -72
  166. package/dist/components/general-purpose/SettingsFormDialog.d.ts +2 -2
  167. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  168. package/dist/components/general-purpose/SetupChecklist.js +1 -76
  169. package/dist/components/general-purpose/StatusScreen.d.ts +10 -0
  170. package/dist/components/general-purpose/StatusScreen.js +13 -0
  171. package/dist/components/general-purpose/Terminal.js +2 -2
  172. package/dist/components/general-purpose/TestResults.js +1 -1
  173. package/dist/components/general-purpose/ThemeModeControl.js +2 -2
  174. package/dist/components/general-purpose/WebPreview.js +2 -2
  175. package/dist/components/nanites/AgentConnection.js +2 -2
  176. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  177. package/dist/components/nanites/AgentToolDetail.js +4 -4
  178. package/dist/{copy-button-CSDuDfdP.js → copy-button-Dk2vRe9j.js} +1 -1
  179. package/dist/mcp-server-catalog-D9p4gGeJ.d.ts +1112 -0
  180. package/dist/styles/accessibility.css +20 -0
  181. package/dist/styles/agent-chat.css +1 -1
  182. package/dist/styles/base.css +0 -8
  183. package/dist/styles/codex-model-selector.css +4 -0
  184. package/dist/styles/color-contrast.test.ts +212 -0
  185. package/dist/styles/employee-app.css +29 -0
  186. package/dist/styles/file-tree.css +5 -1
  187. package/dist/styles/index.css +2 -0
  188. package/dist/styles/manager-office.css +5 -5
  189. package/dist/styles/manager-work.css +93 -0
  190. package/dist/styles/responsive-sidebar-shell.css +1 -1
  191. package/dist/utils/codex-model-catalog.d.ts +1 -135
  192. package/dist/utils/codex-model-catalog.js +22 -5
  193. package/dist/utils/mcp-server-catalog.d.ts +1 -1111
  194. package/dist/{workspace-assets-Bg7XhPsk.js → workspace-assets-wW_lQLYK.js} +2 -2
  195. package/package.json +3 -3
  196. package/dist/{icons-cuEtsgj9.js → icons-CeGfXO21.js} +1 -1
@@ -0,0 +1,57 @@
1
+ import { K as SpinnerIcon, et as WarningIcon } from "../../icons-CeGfXO21.js";
2
+ import "../foundations/icons.js";
3
+ import { StatusScreen } from "../general-purpose/StatusScreen.js";
4
+ import { EmployeeChrome } from "./EmployeeChrome.js";
5
+ import { ThinkFullApp } from "./ThinkFullApp.js";
6
+ import "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/components/agents-sdk/EmployeeApp.tsx
9
+ /**
10
+ * Canonical employee screen. Hosts keep chat providers mounted above it and
11
+ * supply live content; this component owns admission, navigation and layout.
12
+ */
13
+ function EmployeeApp({ status, brand, modelSetup, connectingLabel, conversationLoading, conversationRun, workbench, live, schedules, report, shell, ref, children, ...chrome }) {
14
+ if (status !== "ready") return /* @__PURE__ */ jsx("div", {
15
+ className: "employee-app",
16
+ "data-view": chrome.view,
17
+ ref,
18
+ children: /* @__PURE__ */ jsx(EmployeeChrome.Gate, {
19
+ status,
20
+ brand,
21
+ identity: chrome.identity,
22
+ modelSetup,
23
+ connectingLabel
24
+ })
25
+ });
26
+ const run = conversationRun;
27
+ const content = chrome.view === "live" ? live : /* @__PURE__ */ jsxs(ThinkFullApp.Root, {
28
+ workbenchOpen: Boolean(workbench),
29
+ children: [
30
+ /* @__PURE__ */ jsxs(ThinkFullApp.Conversation, {
31
+ "data-workspace-restoration-scope": "chat",
32
+ children: [report, run?.state === "unavailable" || run?.state === "error" ? /* @__PURE__ */ jsx(StatusScreen, {
33
+ role: "alert",
34
+ icon: /* @__PURE__ */ jsx(WarningIcon, {}),
35
+ title: run.state === "unavailable" ? "Delegated run unavailable" : "Could not open this run",
36
+ description: run.state === "error" ? run.error : "This run is no longer available. The parent conversation keeps its history and controls."
37
+ }) : conversationLoading ? /* @__PURE__ */ jsx(StatusScreen, {
38
+ icon: /* @__PURE__ */ jsx(SpinnerIcon, {}),
39
+ description: conversationLoading
40
+ }) : children]
41
+ }),
42
+ /* @__PURE__ */ jsx(ThinkFullApp.ResizeHandle, {}),
43
+ /* @__PURE__ */ jsx(ThinkFullApp.Workbench, { children: workbench })
44
+ ]
45
+ });
46
+ return /* @__PURE__ */ jsx("div", {
47
+ className: "employee-app",
48
+ "data-view": chrome.view,
49
+ ref,
50
+ children: chrome.view === "schedules" ? schedules : shell({
51
+ ...chrome,
52
+ children: content
53
+ })
54
+ });
55
+ }
56
+ //#endregion
57
+ export { EmployeeApp };
@@ -0,0 +1,63 @@
1
+ import { E as PromptInputCommandComposerProps, F as PromptInputDictationProps, M as PromptInputContextSelectorProps } from "../../PromptInput-DGPrCTPl.js";
2
+ import { AgentChatTranscriptProps } from "./AgentChat.js";
3
+ import { ContextProps } from "../ai-sdk/Context.js";
4
+ import { CodexModelSelectorProps } from "../extension/CodexModelSelector.js";
5
+ import { ThinkChatMessageContentProps } from "./ThinkChat.js";
6
+ import * as React from "react";
7
+
8
+ //#region src/components/agents-sdk/EmployeeChat.d.ts
9
+ interface EmployeeComposerProps {
10
+ commands: PromptInputCommandComposerProps["commands"];
11
+ mentionCommands?: PromptInputCommandComposerProps["mentionCommands"];
12
+ onCompact?: () => Promise<{
13
+ compacted: boolean;
14
+ }>;
15
+ placeholder?: string;
16
+ disabled?: boolean;
17
+ /** Additional connection/personalization menu entries, using shared menu components. */
18
+ menu?: React.ReactNode;
19
+ tools?: React.ReactNode;
20
+ contextSelector?: PromptInputContextSelectorProps;
21
+ tabs?: React.ReactNode;
22
+ model?: CodexModelSelectorProps;
23
+ dictation?: PromptInputDictationProps;
24
+ context?: ContextProps;
25
+ }
26
+ /** One composer anatomy for the app and its examples; capabilities remain explicit. */
27
+ declare function EmployeeComposer({
28
+ menu,
29
+ tools,
30
+ contextSelector,
31
+ tabs,
32
+ model,
33
+ dictation,
34
+ context,
35
+ onCompact,
36
+ placeholder,
37
+ disabled,
38
+ ...input
39
+ }: EmployeeComposerProps): React.JSX.Element;
40
+ interface EmployeeTranscriptProps extends Omit<ThinkChatMessageContentProps, "message"> {
41
+ readOnly?: boolean;
42
+ scrollAnchor?: AgentChatTranscriptProps["scrollAnchor"];
43
+ }
44
+ /** Shared message content and actions, including the same read-only run behavior. */
45
+ declare function EmployeeTranscript({
46
+ readOnly,
47
+ scrollAnchor,
48
+ ...content
49
+ }: EmployeeTranscriptProps): React.JSX.Element;
50
+ /** Common dock ordering. Hosts supply the runtime-backed notices and composer. */
51
+ declare function EmployeeChatDock({
52
+ recovery,
53
+ notices,
54
+ readOnly,
55
+ children
56
+ }: {
57
+ recovery?: React.ReactNode;
58
+ notices?: React.ReactNode;
59
+ readOnly?: boolean;
60
+ children?: React.ReactNode;
61
+ }): React.JSX.Element;
62
+ //#endregion
63
+ export { EmployeeChatDock, EmployeeComposer, EmployeeComposerProps, EmployeeTranscript, EmployeeTranscriptProps };
@@ -0,0 +1,84 @@
1
+ import { PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, 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";
4
+ import { AgentChat, useAgentChatCompaction } from "./AgentChat.js";
5
+ import { ThinkChat } from "./ThinkChat.js";
6
+ import "react";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/components/agents-sdk/EmployeeChat.tsx
9
+ function CommandInput(props) {
10
+ return /* @__PURE__ */ jsx(PromptInputBody, { children: /* @__PURE__ */ jsx(PromptInputCommandComposer, {
11
+ "aria-label": "Message",
12
+ ...props
13
+ }) });
14
+ }
15
+ function CompactingInput({ onCompact, ...props }) {
16
+ const compaction = useAgentChatCompaction(onCompact);
17
+ return /* @__PURE__ */ jsxs(Fragment, { children: [compaction.notice ? /* @__PURE__ */ jsx(AgentChat.Notice, { children: compaction.notice }) : null, /* @__PURE__ */ jsx(CommandInput, {
18
+ ...props,
19
+ commands: compaction.command ? [compaction.command, ...props.commands] : props.commands,
20
+ onCommandSelect: (command) => {
21
+ if (command.id === compaction.command?.id) compaction.run();
22
+ }
23
+ })] });
24
+ }
25
+ /** One composer anatomy for the app and its examples; capabilities remain explicit. */
26
+ function EmployeeComposer({ menu, tools, contextSelector, tabs, model, dictation, context, onCompact, placeholder = "How can I help you today?", disabled, ...input }) {
27
+ const inputProps = {
28
+ ...input,
29
+ placeholder,
30
+ disabled
31
+ };
32
+ return /* @__PURE__ */ jsxs(AgentChat.Composer, {
33
+ disabled,
34
+ children: [
35
+ /* @__PURE__ */ jsx(PromptInputAttachments, {}),
36
+ onCompact ? /* @__PURE__ */ jsx(CompactingInput, {
37
+ ...inputProps,
38
+ onCompact
39
+ }) : /* @__PURE__ */ jsx(CommandInput, { ...inputProps }),
40
+ /* @__PURE__ */ jsxs(PromptInputFooter, { children: [/* @__PURE__ */ jsxs(PromptInputTools, { children: [
41
+ /* @__PURE__ */ jsxs(PromptInputActionMenu, { children: [/* @__PURE__ */ jsx(PromptInputActionMenuTrigger, { disabled }), /* @__PURE__ */ jsxs(PromptInputActionMenuContent, { children: [/* @__PURE__ */ jsx(PromptInputActionAddAttachments, {}), menu] })] }),
42
+ contextSelector ? /* @__PURE__ */ jsx(PromptInputContextSelector, { ...contextSelector }) : null,
43
+ tools
44
+ ] }), /* @__PURE__ */ jsxs(PromptInputFooterEnd, { children: [
45
+ tabs,
46
+ model ? /* @__PURE__ */ jsx(CodexModelSelector, { ...model }) : null,
47
+ dictation ? /* @__PURE__ */ jsx(PromptInputDictation, { ...dictation }) : null,
48
+ context ? /* @__PURE__ */ jsxs(Context, {
49
+ ...context,
50
+ children: [/* @__PURE__ */ jsx(ContextTrigger, {}), /* @__PURE__ */ jsxs(ContextContent, { children: [/* @__PURE__ */ jsx(ContextContentHeader, {}), /* @__PURE__ */ jsx(ContextContentBody, {})] })]
51
+ }) : null,
52
+ /* @__PURE__ */ jsx(AgentChat.Submit, {})
53
+ ] })] })
54
+ ]
55
+ });
56
+ }
57
+ /** Shared message content and actions, including the same read-only run behavior. */
58
+ function EmployeeTranscript({ readOnly, scrollAnchor, ...content }) {
59
+ return /* @__PURE__ */ jsx(AgentChat.Transcript, {
60
+ scrollAnchor,
61
+ children: ({ message, messageIndex }) => /* @__PURE__ */ jsxs(AgentChat.Message, {
62
+ message,
63
+ messageIndex,
64
+ children: [/* @__PURE__ */ jsx(ThinkChat.MessageContent, {
65
+ ...content,
66
+ message
67
+ }), /* @__PURE__ */ jsxs(AgentChat.Actions, { children: [
68
+ /* @__PURE__ */ jsx(AgentChat.CopyAction, {}),
69
+ readOnly ? null : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AgentChat.RetryAction, {}), /* @__PURE__ */ jsx(AgentChat.EditAction, {})] }),
70
+ /* @__PURE__ */ jsx(AgentChat.Timestamp, {})
71
+ ] })]
72
+ })
73
+ });
74
+ }
75
+ /** Common dock ordering. Hosts supply the runtime-backed notices and composer. */
76
+ function EmployeeChatDock({ recovery, notices, readOnly, children }) {
77
+ return /* @__PURE__ */ jsxs(AgentChat.Dock, { children: [recovery, readOnly ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
78
+ notices,
79
+ /* @__PURE__ */ jsx(AgentChat.Queue, {}),
80
+ children
81
+ ] })] });
82
+ }
83
+ //#endregion
84
+ export { EmployeeChatDock, EmployeeComposer, EmployeeTranscript };
@@ -1,6 +1,7 @@
1
- import { J as PromptInputMessage } from "../../PromptInput-C4Mofitz.js";
1
+ import { J as PromptInputMessage } from "../../PromptInput-DGPrCTPl.js";
2
2
  import { n as AgentToolRunValue } from "../../AgentToolRunsContext-GMe_hSnD.js";
3
- import { ThinkThreadItem } from "./ThinkThreadPicker.js";
3
+ import { n as ResponsiveSidebarShell } from "../../ResponsiveSidebarShell-CAmmtQTR.js";
4
+ import { t as ThinkThreadItem } from "../../ThinkThreadPicker-yetGX_s5.js";
4
5
  import * as React from "react";
5
6
 
6
7
  //#region src/components/agents-sdk/EmployeeChrome.d.ts
@@ -149,6 +150,10 @@ interface EmployeeShellProps<Thread extends ThinkThreadItem = ThinkThreadItem> e
149
150
  appBarLeading?: React.ReactNode;
150
151
  /** Passed the whole history item after the thread picker confirms removal. */
151
152
  onDeleteThread?: (thread: Thread) => void | Promise<void>;
153
+ /** Shared manager shell supplies workforce navigation in place of thread-only navigation. */
154
+ sidebar?: React.ComponentProps<typeof ResponsiveSidebarShell>["sidebar"];
155
+ sidebarLabel?: string;
156
+ navigation?: readonly EmployeeWorkbenchItem[];
152
157
  children: React.ReactNode;
153
158
  }
154
159
  declare function EmployeeShell<Thread extends ThinkThreadItem = ThinkThreadItem>({
@@ -159,6 +164,9 @@ declare function EmployeeShell<Thread extends ThinkThreadItem = ThinkThreadItem>
159
164
  renderLink,
160
165
  appBarLeading,
161
166
  onDeleteThread,
167
+ sidebar,
168
+ sidebarLabel,
169
+ navigation,
162
170
  children,
163
171
  ...menu
164
172
  }: EmployeeShellProps<Thread>): React.JSX.Element;
@@ -1,25 +1,25 @@
1
1
  import { findCatalogMcpServerCard } from "../../utils/mcp-server-catalog.js";
2
- import { A as McpIcon, C as FolderIcon, K as SpinnerIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, V as QueueIcon, 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, K as SpinnerIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, V as QueueIcon, 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 { Dialog } from "../foundations/Dialog.js";
6
7
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
7
- import { SubagentRunLabel, getSubagentRunName } from "./SubagentRunIndicator.js";
8
- import { Menu } from "../foundations/Menu.js";
9
- import { EmptyState } from "../foundations/EmptyState.js";
10
- import { AgentChat } from "./AgentChat.js";
11
- import { Avatar } from "../foundations/Avatar.js";
12
- import { McpServerIcon } from "./McpServerIcon.js";
13
- import { ThinkThreadPicker } from "./ThinkThreadPicker.js";
14
8
  import { AgentChatStartScreen, AgentChatStartScreenComposer, AgentChatStartScreenPrimary, AgentChatStartScreenSuggestions, AgentChatStartScreenTray, AgentChatStarterList } from "../ai-sdk/AgentChatStartScreen.js";
15
- import { ChatGptSignInScreen } from "../extension/ChatGptSignInScreen.js";
16
9
  import { DescriptionList } from "../foundations/DescriptionList.js";
10
+ import { Avatar } from "../foundations/Avatar.js";
11
+ import { ChatGptSignInScreen } from "../extension/ChatGptSignInScreen.js";
12
+ import { EmptyState } from "../foundations/EmptyState.js";
17
13
  import { Switch } from "../foundations/Switch.js";
18
14
  import { useTheme } from "../foundations/ThemeProvider.js";
19
15
  import "../foundations/icons.js";
20
16
  import { ActionGuide, ActionGuideAction, ActionGuideList, ActionGuideSection } from "../general-purpose/ActionGuide.js";
21
17
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
22
18
  import { ResponsiveSidebarShell, useResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
19
+ import { SubagentRunLabel, getSubagentRunName } from "./SubagentRunIndicator.js";
20
+ import { AgentChat } from "./AgentChat.js";
21
+ import { McpServerIcon } from "./McpServerIcon.js";
22
+ import { ThinkThreadPicker } from "./ThinkThreadPicker.js";
23
23
  import * as React from "react";
24
24
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
25
25
  //#region src/components/agents-sdk/EmployeeChrome.tsx
@@ -265,7 +265,16 @@ function employeeShellLeading({ agentRun, view, hasThread, appBarLeading, back,
265
265
  if (!navigation && !appBarLeading) return null;
266
266
  return /* @__PURE__ */ jsxs(Fragment, { children: [navigation, appBarLeading] });
267
267
  }
268
- function employeeShellActions({ agentRun, view, renderLink, workbenchNavigation, focusedStop }) {
268
+ function employeeShellActions({ agentRun, view, renderLink, workbenchNavigation, focusedStop, navigation }) {
269
+ if (!agentRun && navigation) return /* @__PURE__ */ jsx(Fragment, { children: navigation.map((item) => /* @__PURE__ */ jsx(AppTopBar.Link, {
270
+ label: item.label,
271
+ "aria-current": view === item.id ? "page" : void 0,
272
+ render: renderLink({
273
+ kind: "view",
274
+ view: item.id
275
+ }),
276
+ children: item.icon
277
+ }, item.id)) });
269
278
  if (!agentRun) return /* @__PURE__ */ jsx(EmployeeWorkbenchLinks, {
270
279
  view,
271
280
  renderLink,
@@ -285,7 +294,7 @@ function employeeShellActions({ agentRun, view, renderLink, workbenchNavigation,
285
294
  children: /* @__PURE__ */ jsx(SquareIcon, {})
286
295
  });
287
296
  }
288
- function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLeading, onDeleteThread, children, ...menu }) {
297
+ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLeading, onDeleteThread, sidebar, sidebarLabel = "threads", navigation, children, ...menu }) {
289
298
  const history = threads ?? EMPTY_THREADS;
290
299
  const thread = history.find((candidate) => candidate.id === threadId);
291
300
  const { backRef, focusedStop } = useEmployeeRunStopFocus();
@@ -301,7 +310,7 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
301
310
  }),
302
311
  children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
303
312
  });
304
- if (view === "live") return /* @__PURE__ */ jsx("div", {
313
+ if (view === "live" && !sidebar) return /* @__PURE__ */ jsx("div", {
305
314
  className: "employee-shell",
306
315
  "data-view": view,
307
316
  children: /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
@@ -317,7 +326,7 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
317
326
  className: "employee-shell",
318
327
  "data-view": view,
319
328
  children: /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
320
- sidebarLabel: "threads",
329
+ sidebarLabel,
321
330
  sidebarTogglePlacement: "sidebar",
322
331
  showMainLabel: "Show selected thread",
323
332
  bar: {
@@ -340,7 +349,8 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
340
349
  view,
341
350
  renderLink,
342
351
  workbenchNavigation: menu.workbenchNavigation,
343
- focusedStop
352
+ focusedStop,
353
+ navigation
344
354
  }),
345
355
  primary: /* @__PURE__ */ jsx(EmployeeMenu, {
346
356
  ...menu,
@@ -348,7 +358,7 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
348
358
  follow: agentRun ? void 0 : menu.follow
349
359
  })
350
360
  },
351
- sidebar: agentRun ? void 0 : ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkThreadPicker, {
361
+ sidebar: sidebar ?? (agentRun ? void 0 : ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkThreadPicker, {
352
362
  threads: history,
353
363
  renderThreadLink: (item) => renderLink({
354
364
  kind: "thread",
@@ -357,7 +367,7 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
357
367
  createThreadLink: renderLink({ kind: "new-thread" }),
358
368
  onSelect: closeSidebarOnCompact,
359
369
  onDelete: onDeleteThread
360
- }),
370
+ })),
361
371
  children
362
372
  })
363
373
  });
@@ -0,0 +1,24 @@
1
+ import { EmployeeMenuProps } from "./EmployeeChrome.js";
2
+ import { t as ThinkRoutine } from "../../ThinkRoutine-Cb1DdaHa.js";
3
+ import { ThinkRoutineActionsRootProps } from "./ThinkRoutineActions.js";
4
+ import * as React from "react";
5
+
6
+ //#region src/components/agents-sdk/EmployeeSchedules.d.ts
7
+ interface EmployeeSchedulesProps<Routine extends ThinkRoutine = ThinkRoutine> extends EmployeeMenuProps, Pick<ThinkRoutineActionsRootProps<Routine>, "sourceKey" | "onRun" | "onEnabledChange" | "onDelete"> {
8
+ routines: readonly Routine[];
9
+ selectedRoutineId: string | null;
10
+ error?: React.ReactNode;
11
+ }
12
+ /** Schedule navigation, selection, empty states and controls shared by every host. */
13
+ declare function EmployeeSchedules<Routine extends ThinkRoutine>({
14
+ routines,
15
+ selectedRoutineId,
16
+ error,
17
+ sourceKey,
18
+ onRun,
19
+ onEnabledChange,
20
+ onDelete,
21
+ ...menu
22
+ }: EmployeeSchedulesProps<Routine>): React.JSX.Element;
23
+ //#endregion
24
+ export { EmployeeSchedules, EmployeeSchedulesProps };
@@ -0,0 +1,105 @@
1
+ import { R as PencilIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.js";
2
+ import { LinkButton } from "../foundations/LinkButton.js";
3
+ import "../foundations/icons.js";
4
+ import { AppTopBar } from "../general-purpose/AppTopBar.js";
5
+ import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
6
+ import { StatusScreen } from "../general-purpose/StatusScreen.js";
7
+ import { EmployeeChrome } from "./EmployeeChrome.js";
8
+ import { getThinkExecutionRunId } from "./ThinkExecutionRun.js";
9
+ import { ThinkRoutineActions, useThinkRoutineActions } from "./ThinkRoutineActions.js";
10
+ import { ThinkRoutineBrowser } from "./ThinkRoutineBrowser.js";
11
+ import { ThinkRoutineDetail } from "./ThinkRoutineDetail.js";
12
+ import "react";
13
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
+ //#region src/components/agents-sdk/EmployeeSchedules.tsx
15
+ function SelectedRoutine({ routine, renderLink }) {
16
+ return /* @__PURE__ */ jsx(ThinkRoutineDetail, {
17
+ routine,
18
+ showOwner: false,
19
+ ...useThinkRoutineActions(),
20
+ renderRunLink: (run) => renderLink({
21
+ kind: "routine-run",
22
+ routineId: routine.id,
23
+ runId: getThinkExecutionRunId(run)
24
+ })
25
+ });
26
+ }
27
+ /** Schedule navigation, selection, empty states and controls shared by every host. */
28
+ function EmployeeSchedules({ routines, selectedRoutineId, error, sourceKey, onRun, onEnabledChange, onDelete, ...menu }) {
29
+ const selected = routines.find((routine) => routine.id === selectedRoutineId);
30
+ const { renderLink } = menu;
31
+ const content = /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
32
+ sidebarLabel: "schedules",
33
+ showMainLabel: "Show selected schedule",
34
+ error,
35
+ bar: {
36
+ label: "Schedule controls",
37
+ title: selected?.name ?? "Schedules",
38
+ compactTitleTrigger: routines.length ? /* @__PURE__ */ jsx("span", { children: selected?.name ?? "Schedules" }) : void 0,
39
+ leading: /* @__PURE__ */ jsx(AppTopBar.Link, {
40
+ label: "Back to chat",
41
+ render: renderLink({
42
+ kind: "view",
43
+ view: "chat"
44
+ }),
45
+ children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
46
+ }),
47
+ primary: /* @__PURE__ */ jsx(EmployeeChrome.Menu, { ...menu }),
48
+ actions: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(EmployeeChrome.WorkbenchLinks, {
49
+ view: "schedules",
50
+ renderLink,
51
+ workbenchNavigation: menu.workbenchNavigation
52
+ }), selected ? /* @__PURE__ */ jsxs(Fragment, { children: [
53
+ /* @__PURE__ */ jsx(ThinkRoutineActions.Run, {}),
54
+ /* @__PURE__ */ jsx(AppTopBar.Link, {
55
+ label: "Edit schedule",
56
+ render: renderLink({
57
+ kind: "edit-routine",
58
+ routineId: selected.id
59
+ }),
60
+ children: /* @__PURE__ */ jsx(PencilIcon, {})
61
+ }),
62
+ /* @__PURE__ */ jsx(ThinkRoutineActions.Delete, {})
63
+ ] }) : null] })
64
+ },
65
+ sidebar: ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkRoutineBrowser, {
66
+ routines,
67
+ selectedRoutineId,
68
+ showOwner: false,
69
+ renderRoutineLink: (routine) => renderLink({
70
+ kind: "routine",
71
+ routineId: routine.id
72
+ }),
73
+ createRoutineLink: renderLink({ kind: "create-routine" }),
74
+ onRoutineLinkClick: closeSidebarOnCompact
75
+ }),
76
+ children: /* @__PURE__ */ jsx("main", {
77
+ className: "think-routine__main",
78
+ children: selected ? /* @__PURE__ */ jsxs(Fragment, { children: [
79
+ /* @__PURE__ */ jsx(ThinkRoutineActions.Error, {}),
80
+ /* @__PURE__ */ jsx(SelectedRoutine, {
81
+ routine: selected,
82
+ renderLink
83
+ }),
84
+ /* @__PURE__ */ jsx(ThinkRoutineActions.Status, {})
85
+ ] }) : /* @__PURE__ */ jsx(StatusScreen, {
86
+ title: selectedRoutineId ? "Schedule unavailable" : routines.length ? "Select a schedule" : "No schedules yet",
87
+ description: selectedRoutineId ? "Choose another schedule or create a new one." : "Create a schedule to run work automatically.",
88
+ children: /* @__PURE__ */ jsx(LinkButton, {
89
+ render: renderLink({ kind: "create-routine" }),
90
+ children: "Create schedule"
91
+ })
92
+ })
93
+ })
94
+ });
95
+ return selected ? /* @__PURE__ */ jsx(ThinkRoutineActions.Root, {
96
+ routine: selected,
97
+ sourceKey,
98
+ onRun,
99
+ onEnabledChange,
100
+ onDelete,
101
+ children: content
102
+ }) : content;
103
+ }
104
+ //#endregion
105
+ export { EmployeeSchedules };
@@ -0,0 +1,43 @@
1
+ import { J as PromptInputMessage } from "../../PromptInput-DGPrCTPl.js";
2
+ import { EmployeeBrand, EmployeeDestination } from "./EmployeeChrome.js";
3
+ import { SetupChecklistGroupProps } from "../general-purpose/SetupChecklist.js";
4
+ import { McpPluginCatalogProps } from "./McpPluginCatalog.js";
5
+ import { WorkspaceMountManagerProps } from "./WorkspaceMountManager.js";
6
+ import * as React from "react";
7
+
8
+ //#region src/components/agents-sdk/EmployeeStartScreen.d.ts
9
+ interface EmployeeStartConnection {
10
+ configured: boolean;
11
+ description?: string;
12
+ onSelect: () => void;
13
+ }
14
+ interface EmployeeStartActions<Id extends string = string> {
15
+ onSubmit: (message: PromptInputMessage) => void | Promise<void>;
16
+ suggestions?: readonly {
17
+ label: string;
18
+ value: string;
19
+ }[];
20
+ suggestionsError?: boolean;
21
+ onRetrySuggestions?: () => void;
22
+ hasConnectedApps?: boolean;
23
+ slack?: EmployeeStartConnection;
24
+ discord?: EmployeeStartConnection;
25
+ mounts?: Omit<WorkspaceMountManagerProps, "trigger">;
26
+ personalization?: Pick<SetupChecklistGroupProps<Id>, "entries" | "onSelect">;
27
+ }
28
+ /** Canonical welcome screen, including configured connection states and connection menus. */
29
+ declare function EmployeeStartScreen<Id extends string>({
30
+ brand,
31
+ start,
32
+ plugins,
33
+ renderLink,
34
+ children
35
+ }: {
36
+ brand: EmployeeBrand;
37
+ start: EmployeeStartActions<Id>;
38
+ plugins?: McpPluginCatalogProps;
39
+ renderLink: (destination: EmployeeDestination) => React.ReactElement;
40
+ children: React.ReactNode;
41
+ }): React.JSX.Element;
42
+ //#endregion
43
+ export { EmployeeStartActions, EmployeeStartConnection, EmployeeStartScreen };
@@ -0,0 +1,133 @@
1
+ import { C as FolderIcon, G as SlackIcon, I as PaperclipIcon, c as BoxIcon, g as DiscordIcon } from "../../icons-CeGfXO21.js";
2
+ import { Button } from "../foundations/Button.js";
3
+ import { Menu } from "../foundations/Menu.js";
4
+ import { AppIcon } from "../foundations/AppIcon.js";
5
+ import "../foundations/icons.js";
6
+ import { ActionGuideAction } from "../general-purpose/ActionGuide.js";
7
+ import { t as SetupChecklistAction } from "../../SetupChecklist-O6qmgwz4.js";
8
+ import { EmployeeChrome } from "./EmployeeChrome.js";
9
+ import { McpServerPickerAction, McpServerPickerItems } from "./McpServerPicker.js";
10
+ import { WorkspaceMountManager } from "./WorkspaceMountManager.js";
11
+ import "react";
12
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
+ //#region src/components/agents-sdk/EmployeeStartScreen.tsx
14
+ function SetupActions({ start }) {
15
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
16
+ start.slack && !start.slack.configured ? /* @__PURE__ */ jsx(ActionGuideAction, {
17
+ icon: /* @__PURE__ */ jsx(SlackIcon, {}),
18
+ onClick: start.slack.onSelect,
19
+ children: "Connect Slack"
20
+ }) : null,
21
+ start.discord && !start.discord.configured ? /* @__PURE__ */ jsx(ActionGuideAction, {
22
+ icon: /* @__PURE__ */ jsx(DiscordIcon, {}),
23
+ onClick: start.discord.onSelect,
24
+ children: "Connect Discord"
25
+ }) : null,
26
+ start.mounts ? /* @__PURE__ */ jsx(ActionGuideAction, {
27
+ icon: /* @__PURE__ */ jsx(FolderIcon, {}),
28
+ onClick: start.mounts.onAdd,
29
+ disabled: start.mounts.adding || start.mounts.busyMountId != null,
30
+ children: "Attach a local folder"
31
+ }) : null
32
+ ] });
33
+ }
34
+ function StartComposerTray({ plugins, renderLink, start }) {
35
+ const connections = [{
36
+ id: "discord",
37
+ name: "Discord",
38
+ icon: /* @__PURE__ */ jsx(DiscordIcon, {}),
39
+ connection: start.discord
40
+ }, {
41
+ id: "slack",
42
+ name: "Slack",
43
+ icon: /* @__PURE__ */ jsx(SlackIcon, {}),
44
+ connection: start.slack
45
+ }].flatMap(({ id, name, icon, connection }) => connection ? [{
46
+ id,
47
+ icon,
48
+ label: connection.configured ? name : `Connect ${name}`,
49
+ description: connection.description ?? (connection.configured ? "Connected" : `Talk to this employee from ${name}`),
50
+ onSelect: connection.onSelect
51
+ }] : []);
52
+ const hasPluginMenu = Boolean(plugins || connections.length);
53
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
54
+ start.personalization ? /* @__PURE__ */ jsx(SetupChecklistAction, {
55
+ actionLabel: "Prompts",
56
+ label: "Prompts",
57
+ entries: start.personalization.entries,
58
+ onSelect: start.personalization.onSelect
59
+ }) : null,
60
+ start.mounts ? /* @__PURE__ */ jsx(WorkspaceMountManager, {
61
+ ...start.mounts,
62
+ trigger: /* @__PURE__ */ jsxs(Button, {
63
+ variant: "ghost",
64
+ color: "neutral",
65
+ size: "sm",
66
+ children: [/* @__PURE__ */ jsx(PaperclipIcon, {}), "Attach folder"]
67
+ })
68
+ }) : null,
69
+ hasPluginMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsxs(Button, {
70
+ type: "button",
71
+ variant: "ghost",
72
+ color: "neutral",
73
+ size: "sm",
74
+ render: /* @__PURE__ */ jsx(Menu.Trigger, { unstyled: true }),
75
+ "aria-label": "Connect plugins",
76
+ children: [/* @__PURE__ */ jsx("span", { children: "Connect plugins" }), /* @__PURE__ */ jsxs(AppIcon.Stack, {
77
+ "aria-hidden": "true",
78
+ children: [/* @__PURE__ */ jsx(AppIcon.Root, {
79
+ size: "xs",
80
+ variant: "surface",
81
+ children: /* @__PURE__ */ jsx(SlackIcon, {})
82
+ }), /* @__PURE__ */ jsx(AppIcon.Root, {
83
+ size: "xs",
84
+ variant: "surface",
85
+ children: /* @__PURE__ */ jsx(DiscordIcon, {})
86
+ })]
87
+ })]
88
+ }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
89
+ side: "bottom",
90
+ align: "start",
91
+ sideOffset: 4,
92
+ children: /* @__PURE__ */ jsxs(Menu.Popup, {
93
+ "aria-label": "Plugins",
94
+ "data-recipe": "wide-scroll-picker",
95
+ children: [/* @__PURE__ */ jsx(McpServerPickerItems, {
96
+ actions: connections,
97
+ servers: plugins?.servers ?? [],
98
+ mcp: plugins?.mcp,
99
+ onConnect: plugins?.onConnect,
100
+ onDisconnect: plugins?.onDisconnect
101
+ }), /* @__PURE__ */ jsx(McpServerPickerAction, {
102
+ icon: /* @__PURE__ */ jsx(BoxIcon, {}),
103
+ label: "Browse plugins",
104
+ description: plugins?.onConnect ? "Find and connect supported tools" : "See what this browser is connected to",
105
+ render: renderLink({
106
+ kind: "view",
107
+ view: "plugins"
108
+ })
109
+ })]
110
+ })
111
+ }) })] }) : null
112
+ ] });
113
+ }
114
+ /** Canonical welcome screen, including configured connection states and connection menus. */
115
+ function EmployeeStartScreen({ brand, start, plugins, renderLink, children }) {
116
+ return /* @__PURE__ */ jsx(EmployeeChrome.Welcome, {
117
+ brand,
118
+ suggestions: start.suggestions,
119
+ suggestionsError: start.suggestionsError,
120
+ onRetrySuggestions: start.onRetrySuggestions,
121
+ onSubmit: start.onSubmit,
122
+ hasConnectedApps: start.hasConnectedApps,
123
+ setupActions: /* @__PURE__ */ jsx(SetupActions, { start }),
124
+ tray: /* @__PURE__ */ jsx(StartComposerTray, {
125
+ start,
126
+ plugins,
127
+ renderLink
128
+ }),
129
+ children
130
+ });
131
+ }
132
+ //#endregion
133
+ export { EmployeeStartScreen };