@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.
- package/dist/{AgentChatQueue-C_Jaw3Ia.d.ts → AgentChatQueue-MrHhV901.d.ts} +1 -1
- package/dist/AgentMessageParts-C7L-Mv9U.d.ts +46 -0
- package/dist/AppTopBar-CVkLRdk7.d.ts +99 -0
- package/dist/{CodeBlock-g8sADidM.js → CodeBlock-BMK6CW9D.js} +1 -1
- package/dist/Dialog-88GF7_Th.d.ts +107 -0
- package/dist/{FileTree-H8mMg4rV.js → FileTree-okaLnS5j.js} +20 -9
- package/dist/Form-CM7GNTwR.d.ts +91 -0
- package/dist/ManagerOffice-5pEFpoV3.js +1146 -0
- package/dist/McpConnectorForm--HB0MEGC.d.ts +39 -0
- package/dist/{Menu-yb6QXWA3.d.ts → Menu-CgfUZhZd.d.ts} +1 -1
- package/dist/Popover-CgHG5DtS.d.ts +220 -0
- package/dist/{PromptInput-C4Mofitz.d.ts → PromptInput-DGPrCTPl.d.ts} +3 -2
- package/dist/ResponsiveSidebarShell-CAmmtQTR.d.ts +128 -0
- package/dist/SessionCompaction-CmTJFpzj.d.ts +89 -0
- package/dist/SetupChecklist-O6qmgwz4.js +77 -0
- package/dist/ThinkChatActivity-DENkintt.d.ts +77 -0
- package/dist/ThinkChatContext-COIgzkYp.d.ts +28 -0
- package/dist/ThinkRoutine-Cb1DdaHa.d.ts +30 -0
- package/dist/ThinkThreadPicker-yetGX_s5.d.ts +91 -0
- package/dist/{WorkspaceFileView-DYPtRVpM.js → WorkspaceFileView-ncZuIWhC.js} +2 -2
- package/dist/WorkspaceMessageResponse-8lOSAbw_.d.ts +48 -0
- package/dist/codex-model-catalog-BBN_gWcc.d.ts +155 -0
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.d.ts +3 -3
- package/dist/components/agents-sdk/AgentChat.js +8 -8
- package/dist/components/agents-sdk/AgentChatQueue.d.ts +1 -1
- package/dist/components/agents-sdk/AgentEvent.js +2 -2
- package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
- package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
- package/dist/components/agents-sdk/BrowserReplay.js +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
- package/dist/components/agents-sdk/DiscordConnectionDialog.d.ts +20 -0
- package/dist/components/agents-sdk/DiscordConnectionDialog.js +65 -0
- package/dist/components/agents-sdk/EmployeeApp.d.ts +49 -0
- package/dist/components/agents-sdk/EmployeeApp.js +57 -0
- package/dist/components/agents-sdk/EmployeeChat.d.ts +63 -0
- package/dist/components/agents-sdk/EmployeeChat.js +84 -0
- package/dist/components/agents-sdk/EmployeeChrome.d.ts +10 -2
- package/dist/components/agents-sdk/EmployeeChrome.js +26 -16
- package/dist/components/agents-sdk/EmployeeSchedules.d.ts +24 -0
- package/dist/components/agents-sdk/EmployeeSchedules.js +105 -0
- package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +43 -0
- package/dist/components/agents-sdk/EmployeeStartScreen.js +133 -0
- package/dist/components/agents-sdk/ManagerAccountActions.d.ts +29 -0
- package/dist/components/agents-sdk/ManagerAccountActions.js +62 -0
- package/dist/components/agents-sdk/ManagerOffice.d.ts +1 -1
- package/dist/components/agents-sdk/ManagerOffice.js +1 -1145
- package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +49 -0
- package/dist/components/agents-sdk/ManagerOfficeScreens.js +198 -0
- package/dist/components/agents-sdk/McpConnectionRequest.d.ts +1 -1
- package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
- package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
- package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.d.ts +3 -3
- package/dist/components/agents-sdk/McpPluginCatalog.js +4 -4
- package/dist/components/agents-sdk/McpServerIcon.d.ts +1 -1
- package/dist/components/agents-sdk/McpServerPicker.d.ts +4 -4
- package/dist/components/agents-sdk/McpServerPicker.js +2 -2
- package/dist/components/agents-sdk/ModelEndpointDialog.d.ts +31 -0
- package/dist/components/agents-sdk/ModelEndpointDialog.js +118 -0
- package/dist/components/agents-sdk/ModelSelector.d.ts +1 -1
- package/dist/components/agents-sdk/ModelSelector.js +4 -4
- package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
- package/dist/components/agents-sdk/SessionCompaction.d.ts +1 -88
- package/dist/components/agents-sdk/SlackConnectionDialog.d.ts +18 -0
- package/dist/components/agents-sdk/SlackConnectionDialog.js +48 -0
- package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
- package/dist/components/agents-sdk/SubagentRunPanel.js +1 -1
- package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
- package/dist/components/agents-sdk/ThinkChat.d.ts +6 -6
- package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -76
- package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
- package/dist/components/agents-sdk/ThinkChatContext.d.ts +1 -27
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
- package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -29
- package/dist/components/agents-sdk/ThinkRoutineActions.d.ts +2 -2
- package/dist/components/agents-sdk/ThinkRoutineActions.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +3 -3
- package/dist/components/agents-sdk/ThinkRoutineDetail.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +4 -4
- package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
- package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -90
- package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceCorrespondence.js +6 -6
- package/dist/components/agents-sdk/WorkspaceExecution.js +7 -7
- package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
- package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -47
- package/dist/components/agents-sdk/WorkspaceMountManager.js +2 -2
- package/dist/components/agents-sdk/WorkspaceProject.js +4 -4
- package/dist/components/agents-sdk/WorkspaceUserScript.js +4 -4
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentChatMessageEditor.js +5 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
- package/dist/components/ai-sdk/AgentMessageParts.d.ts +1 -45
- package/dist/components/ai-sdk/Approval.js +2 -2
- package/dist/components/ai-sdk/Artifact.js +1 -1
- package/dist/components/ai-sdk/ChainOfThought.js +1 -1
- package/dist/components/ai-sdk/Checkpoint.js +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/ComposerLink.js +1 -1
- package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
- package/dist/components/ai-sdk/Context.d.ts +1 -1
- package/dist/components/ai-sdk/Context.js +1 -1
- package/dist/components/ai-sdk/Conversation.js +1 -1
- package/dist/components/ai-sdk/Goal.js +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.js +2 -2
- package/dist/components/ai-sdk/MessageScroller.js +1 -1
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +2 -1
- package/dist/components/ai-sdk/Plan.d.ts +1 -1
- package/dist/components/ai-sdk/Plan.js +1 -1
- package/dist/components/ai-sdk/PromptInput.d.ts +1 -1
- package/dist/components/ai-sdk/PromptInput.js +7 -7
- package/dist/components/ai-sdk/Queue.js +1 -1
- package/dist/components/ai-sdk/Reasoning.js +1 -1
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.js +1 -1
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.d.ts +2 -2
- package/dist/components/extension/CodexModelSelector.js +3 -3
- package/dist/components/extension/ConversationTabPicker.js +2 -2
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/Collapsible.js +1 -1
- package/dist/components/foundations/ContextMenu.d.ts +10 -23
- package/dist/components/foundations/ContextMenu.js +3 -2
- package/dist/components/foundations/Dialog.d.ts +1 -106
- package/dist/components/foundations/Form.d.ts +1 -90
- package/dist/components/foundations/Menu.d.ts +1 -1
- package/dist/components/foundations/Menubar.d.ts +1 -1
- package/dist/components/foundations/Menubar.js +1 -1
- package/dist/components/foundations/Popover.d.ts +1 -219
- package/dist/components/foundations/PreviewCard.d.ts +1 -1
- package/dist/components/foundations/SearchField.js +1 -1
- package/dist/components/foundations/Select.js +1 -1
- package/dist/components/foundations/Stepper.js +1 -1
- package/dist/components/foundations/Toast.js +1 -1
- package/dist/components/foundations/ToggleGroup.d.ts +1 -1
- package/dist/components/foundations/ToggleGroup.js +1 -1
- package/dist/components/foundations/Tooltip.d.ts +1 -1
- package/dist/components/foundations/icons.js +1 -1
- package/dist/components/general-purpose/AccountSignInDialog.d.ts +26 -0
- package/dist/components/general-purpose/AccountSignInDialog.js +25 -0
- package/dist/components/general-purpose/AppTopBar.d.ts +1 -98
- package/dist/components/general-purpose/Commit.js +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/NotificationPrompt.d.ts +13 -0
- package/dist/components/general-purpose/NotificationPrompt.js +18 -0
- package/dist/components/general-purpose/PricingPlanCard.js +2 -2
- package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
- package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -127
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +124 -72
- package/dist/components/general-purpose/SettingsFormDialog.d.ts +2 -2
- package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
- package/dist/components/general-purpose/SetupChecklist.js +1 -76
- package/dist/components/general-purpose/StatusScreen.d.ts +10 -0
- package/dist/components/general-purpose/StatusScreen.js +13 -0
- package/dist/components/general-purpose/Terminal.js +2 -2
- package/dist/components/general-purpose/TestResults.js +1 -1
- package/dist/components/general-purpose/ThemeModeControl.js +2 -2
- package/dist/components/general-purpose/WebPreview.js +2 -2
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
- package/dist/components/nanites/AgentToolDetail.js +4 -4
- package/dist/{copy-button-CSDuDfdP.js → copy-button-Dk2vRe9j.js} +1 -1
- package/dist/mcp-server-catalog-D9p4gGeJ.d.ts +1112 -0
- package/dist/styles/accessibility.css +20 -0
- package/dist/styles/agent-chat.css +1 -1
- package/dist/styles/base.css +0 -8
- package/dist/styles/codex-model-selector.css +4 -0
- package/dist/styles/color-contrast.test.ts +212 -0
- package/dist/styles/employee-app.css +29 -0
- package/dist/styles/file-tree.css +5 -1
- package/dist/styles/index.css +2 -0
- package/dist/styles/manager-office.css +5 -5
- package/dist/styles/manager-work.css +93 -0
- package/dist/styles/responsive-sidebar-shell.css +1 -1
- package/dist/utils/codex-model-catalog.d.ts +1 -135
- package/dist/utils/codex-model-catalog.js +22 -5
- package/dist/utils/mcp-server-catalog.d.ts +1 -1111
- package/dist/{workspace-assets-Bg7XhPsk.js → workspace-assets-wW_lQLYK.js} +2 -2
- package/package.json +3 -3
- 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-
|
|
1
|
+
import { J as PromptInputMessage } from "../../PromptInput-DGPrCTPl.js";
|
|
2
2
|
import { n as AgentToolRunValue } from "../../AgentToolRunsContext-GMe_hSnD.js";
|
|
3
|
-
import {
|
|
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-
|
|
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
|
|
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 };
|