@mcp-b/react-components 0.21.0 → 0.23.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/{AgentChat-Dvkn8lce.d.ts → AgentChat-Bm1qYbOo.d.ts} +2 -2
- package/dist/{AgentChatStartScreen-CvXJBr4y.d.ts → AgentChatStartScreen-DDZ25aax.d.ts} +4 -1
- package/dist/{Button-yRInko9u.d.ts → Button-SBIz6Lqi.d.ts} +2 -1
- package/dist/{CodeBlock-ygtuzqJd.js → CodeBlock-Cp67Njo3.js} +1 -1
- package/dist/{CodeBlock-Bbls1CnA.d.ts → CodeBlock-yMpGqScn.d.ts} +1 -1
- package/dist/Dialog-BD8NBKaE.d.ts +122 -0
- package/dist/{FileTree-CdgfccsM.js → FileTree-DW60q1w7.js} +1 -1
- package/dist/IconButton-CFKhu6OR.d.ts +35 -0
- package/dist/{Message-DzuteocT.js → Message-_-bEYLAO.js} +9 -16
- package/dist/{ModelSelector-CEd8M9eK.js → ModelSelector-Brvj9Cab.js} +1 -1
- package/dist/{PromptInput-Cq-8RoXD.d.ts → PromptInput-BjoPWaaG.d.ts} +15 -2
- package/dist/{ThinkChatActivity-FY1VWXgh.d.ts → ThinkChatActivity-2BobmuvR.d.ts} +1 -1
- package/dist/{Workspace-CWtust-2.d.ts → Workspace-CIycQ4xE.d.ts} +1 -1
- package/dist/{WorkspaceExplorer-DGigwsgH.d.ts → WorkspaceExplorer-BCipn7Vd.d.ts} +1 -1
- package/dist/{WorkspaceFile-D8Un_xge.d.ts → WorkspaceFile-DMtRMwVv.d.ts} +1 -1
- package/dist/{WorkspaceFileView-Bxx4wEzJ.js → WorkspaceFileView-rUEN2iox.js} +4 -4
- package/dist/assets/think-browser-host.png +0 -0
- package/dist/components/ActionGuide.d.ts +85 -0
- package/dist/components/ActionGuide.js +94 -0
- package/dist/components/Activity.js +1 -1
- package/dist/components/AgentActivity.js +3 -11
- package/dist/components/AgentActivityPreview.js +15 -14
- package/dist/components/AgentAttention.d.ts +1 -1
- package/dist/components/AgentChat.d.ts +1 -1
- package/dist/components/AgentChat.js +33 -13
- package/dist/components/AgentChatStartScreen.d.ts +1 -1
- package/dist/components/AgentChatStartScreen.js +21 -15
- package/dist/components/AgentConnection.d.ts +1 -1
- package/dist/components/AgentConnection.js +2 -2
- package/dist/components/AgentMessageParts.js +1 -1
- package/dist/components/AgentToolDetail.js +1 -1
- package/dist/components/AlertDialog.d.ts +2 -1
- package/dist/components/AlertDialog.js +8 -2
- package/dist/components/AppIcon.d.ts +58 -0
- package/dist/components/AppIcon.js +51 -0
- package/dist/components/AppTopBar.js +9 -10
- package/dist/components/Approval.js +1 -1
- package/dist/components/Artifact.d.ts +3 -7
- package/dist/components/Artifact.js +12 -18
- package/dist/components/Avatar.d.ts +7 -2
- package/dist/components/Avatar.js +4 -2
- package/dist/components/BrowserLiveView.js +1 -1
- package/dist/components/BrowserReplay.js +4 -5
- package/dist/components/BrowserRunPanel.js +1 -1
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/ChainOfThought.d.ts +1 -1
- package/dist/components/ChainOfThought.js +1 -1
- package/dist/components/ChatGptSignInScreen.js +2 -2
- package/dist/components/Checkbox.js +1 -1
- package/dist/components/Checkpoint.js +1 -1
- package/dist/components/CodeBlock.d.ts +1 -1
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/CodexModelSelector.js +1 -1
- package/dist/components/Commit.d.ts +1 -1
- package/dist/components/Commit.js +3 -3
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/Conversation.d.ts +2 -2
- package/dist/components/Conversation.js +4 -5
- package/dist/components/Dialog.d.ts +1 -117
- package/dist/components/Dialog.js +9 -1
- package/dist/components/EnvironmentVariables.d.ts +1 -1
- package/dist/components/EnvironmentVariables.js +2 -2
- package/dist/components/FileTree.js +1 -1
- package/dist/components/IconButton.d.ts +1 -31
- package/dist/components/IconButton.js +2 -1
- package/dist/components/McpConnectionRequest.d.ts +1 -1
- package/dist/components/McpConnectionRequest.js +1 -1
- package/dist/components/McpPluginCatalog.d.ts +86 -0
- package/dist/components/McpPluginCatalog.js +364 -0
- package/dist/components/McpServerPicker.d.ts +2 -2
- package/dist/components/McpServerPicker.js +7 -13
- package/dist/components/MediaPreviewCard.js +1 -1
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Message.d.ts +4 -8
- package/dist/components/Message.js +1 -1
- package/dist/components/MessageScroller.d.ts +1 -1
- package/dist/components/MessageScroller.js +1 -1
- package/dist/components/ModelSelector.d.ts +2 -2
- package/dist/components/ModelSelector.js +1 -1
- package/dist/components/Plan.js +1 -1
- package/dist/components/PricingPlanCard.d.ts +1 -1
- package/dist/components/PricingPlanCard.js +10 -12
- package/dist/components/PromptInput.d.ts +2 -2
- package/dist/components/PromptInput.js +27 -10
- package/dist/components/Queue.d.ts +1 -1
- package/dist/components/Queue.js +2 -2
- package/dist/components/Reasoning.js +4 -9
- package/dist/components/ResponsiveSidebarShell.js +2 -1
- package/dist/components/ScrollArea.js +1 -0
- package/dist/components/SearchField.js +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Sources.js +1 -1
- package/dist/components/Stepper.js +1 -1
- package/dist/components/SubagentRunIndicator.js +1 -1
- package/dist/components/SubagentRunSelector.js +1 -1
- package/dist/components/Task.js +1 -1
- package/dist/components/Terminal.d.ts +3 -3
- package/dist/components/Terminal.js +7 -8
- package/dist/components/TestResults.js +1 -1
- package/dist/components/ThemeModeControl.js +1 -1
- package/dist/components/ThinkChat.d.ts +5 -5
- package/dist/components/ThinkChatActivity.d.ts +1 -1
- package/dist/components/ThinkChatActivity.js +1 -1
- package/dist/components/ThinkChatToolPanels.js +1 -1
- package/dist/components/ThinkExecutionDetail.js +1 -1
- package/dist/components/ThinkExecutionStatus.js +1 -1
- package/dist/components/ThinkExecutionWorkbench.js +14 -21
- package/dist/components/ThinkFullApp.d.ts +8 -4
- package/dist/components/ThinkFullApp.js +17 -2
- package/dist/components/ThinkRoutineBrowser.js +2 -2
- package/dist/components/ThinkRoutineForm.js +3 -3
- package/dist/components/ThinkRoutineLibrary.js +2 -2
- package/dist/components/ThinkRoutineRuns.js +1 -1
- package/dist/components/ThinkThreadPicker.js +2 -3
- package/dist/components/Toast.d.ts +12 -2
- package/dist/components/Toast.js +14 -4
- package/dist/components/Tooltip.d.ts +6 -4
- package/dist/components/Tooltip.js +11 -4
- package/dist/components/WebPreview.d.ts +13 -6
- package/dist/components/WebPreview.js +55 -50
- package/dist/components/Workspace.d.ts +1 -1
- package/dist/components/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/WorkspaceBrowser.js +1 -1
- package/dist/components/WorkspaceExplorer.d.ts +3 -3
- package/dist/components/WorkspaceExplorer.js +1 -1
- package/dist/components/WorkspaceFile.d.ts +1 -1
- package/dist/components/WorkspaceFileView.d.ts +1 -1
- package/dist/components/WorkspaceFileView.js +1 -1
- package/dist/components/WorkspaceHeader.js +1 -1
- package/dist/components/icons.d.ts +2 -2
- package/dist/components/icons.js +2 -2
- package/dist/{copy-button-BrvQ7z4W.d.ts → copy-button-EBv_B9F6.d.ts} +2 -2
- package/dist/{copy-button-vo1paUSi.js → copy-button-TWq8nZhc.js} +8 -8
- package/dist/{icons-DyOM0EJs.js → icons-ua6f_GH3.js} +3 -2
- package/dist/{icons-DkRtZmvT.d.ts → icons-wP1yFUXF.d.ts} +6 -1
- package/dist/mcp-server-catalog-DycejaJ5.d.ts +1077 -0
- package/dist/styles/action-guide.css +128 -0
- package/dist/styles/agent-activity-preview-overlay.css +13 -1
- package/dist/styles/agent-activity-preview.css +3 -34
- package/dist/styles/agent-chat.css +110 -75
- package/dist/styles/alert-dialog.css +0 -18
- package/dist/styles/app-icon.css +122 -0
- package/dist/styles/app-top-bar.css +0 -1
- package/dist/styles/avatar.css +13 -0
- package/dist/styles/base.css +0 -1
- package/dist/styles/button.css +14 -0
- package/dist/styles/description-list.css +2 -2
- package/dist/styles/dialog.css +6 -6
- package/dist/styles/index.css +3 -0
- package/dist/styles/mcp-plugin-catalog.css +296 -0
- package/dist/styles/mcp-server-picker.css +0 -26
- package/dist/styles/message-scroller.css +5 -1
- package/dist/styles/message.css +7 -0
- package/dist/styles/prompt-input.css +26 -14
- package/dist/styles/recipes.css +27 -5
- package/dist/styles/responsive-sidebar-shell.css +14 -8
- package/dist/styles/search-field.css +9 -0
- package/dist/styles/think-full-app.css +22 -2
- package/dist/styles/think-thread-picker.css +1 -11
- package/dist/styles/toast.css +0 -21
- package/dist/styles/tokens.css +6 -0
- package/dist/styles/web-preview.css +5 -0
- package/dist/utils/favicon.d.ts +10 -0
- package/dist/utils/favicon.js +18 -0
- package/dist/utils/mcp-server-catalog.d.ts +2 -1078
- package/dist/utils/mcp-server-catalog.js +3 -11
- package/dist/utils/structured-code.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { $ as WrenchIcon, C as FolderIcon, J as StopIcon, K as SpinnerIcon, L as PaperclipIcon, M as MicrophoneIcon, P as MonitorIcon, Q as WarningIcon, S as FileIcon, V as PlusIcon, a as ArrowUpIcon, d as ChevronDownIcon, et as XIcon, q as SquareIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
|
|
3
2
|
import { Button } from "./Button.js";
|
|
3
|
+
import { $ as WarningIcon, C as FileIcon, F as MonitorIcon, H as PlusIcon, J as SquareIcon, N as MicrophoneIcon, R as PaperclipIcon, Y as StopIcon, a as ArrowUpIcon, d as CheckIcon, et as WrenchIcon, f as ChevronDownIcon, q as SpinnerIcon, tt as XIcon, w as FolderIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import { Tooltip } from "./Tooltip.js";
|
|
5
|
+
import { IconButton } from "./IconButton.js";
|
|
5
6
|
import { t as AttachmentPreview } from "../attachment-preview-DIs50Q0h.js";
|
|
6
7
|
import { n as clamp, r as formatClock } from "../format-S6uWyoSb.js";
|
|
7
|
-
import { Menu } from "./Menu.js";
|
|
8
8
|
import { Combobox } from "./Combobox.js";
|
|
9
9
|
import { Kbd } from "./Kbd.js";
|
|
10
|
+
import { Menu } from "./Menu.js";
|
|
10
11
|
import { Select } from "./Select.js";
|
|
11
12
|
import { Tabs } from "./Tabs.js";
|
|
12
13
|
import { ThinkExecutionApproval, ThinkPendingApproval, getPausedExecution } from "./ThinkPendingApproval.js";
|
|
@@ -313,10 +314,12 @@ function PromptInputAttachment({ file, className, ref, ...props }) {
|
|
|
313
314
|
children: [isImage ? /* @__PURE__ */ jsx(AttachmentPreview, {
|
|
314
315
|
url: file.url,
|
|
315
316
|
filename: file.filename,
|
|
316
|
-
children: /* @__PURE__ */ jsx(
|
|
317
|
-
type: "button",
|
|
317
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
318
318
|
className: "prompt-input__attachment-zoom",
|
|
319
319
|
"aria-label": `Preview ${name}`,
|
|
320
|
+
color: "neutral",
|
|
321
|
+
size: "sm",
|
|
322
|
+
variant: "ghost",
|
|
320
323
|
children: /* @__PURE__ */ jsx("img", {
|
|
321
324
|
className: "prompt-input__attachment-thumb",
|
|
322
325
|
src: file.url,
|
|
@@ -326,12 +329,14 @@ function PromptInputAttachment({ file, className, ref, ...props }) {
|
|
|
326
329
|
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FileIcon, { className: "prompt-input__attachment-icon" }), /* @__PURE__ */ jsx("span", {
|
|
327
330
|
className: "prompt-input__attachment-name sigvelo-truncate",
|
|
328
331
|
children: name
|
|
329
|
-
})] }), /* @__PURE__ */ jsx(
|
|
330
|
-
type: "button",
|
|
332
|
+
})] }), /* @__PURE__ */ jsx(IconButton, {
|
|
331
333
|
className: "prompt-input__attachment-remove",
|
|
332
|
-
"
|
|
334
|
+
color: "neutral",
|
|
335
|
+
label: `Remove ${name}`,
|
|
336
|
+
size: "xs",
|
|
337
|
+
variant: "ghost",
|
|
333
338
|
onClick: () => attachments.remove(file.id),
|
|
334
|
-
children: /* @__PURE__ */ jsx(XIcon, {
|
|
339
|
+
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
335
340
|
})]
|
|
336
341
|
});
|
|
337
342
|
}
|
|
@@ -366,6 +371,16 @@ function PromptInputFooter({ className, children, ref, ...props }) {
|
|
|
366
371
|
children
|
|
367
372
|
});
|
|
368
373
|
}
|
|
374
|
+
/** Supporting controls or queued work tucked behind a PromptInput edge. */
|
|
375
|
+
function PromptInputTray({ side, className, ref, ...props }) {
|
|
376
|
+
return /* @__PURE__ */ jsx("div", {
|
|
377
|
+
ref,
|
|
378
|
+
"data-slot": "prompt-input-tray",
|
|
379
|
+
"data-side": side,
|
|
380
|
+
className: cx("prompt-input__tray", className),
|
|
381
|
+
...props
|
|
382
|
+
});
|
|
383
|
+
}
|
|
369
384
|
function PromptInputTools({ className, children, ref, ...props }) {
|
|
370
385
|
return /* @__PURE__ */ jsx("div", {
|
|
371
386
|
ref,
|
|
@@ -1276,7 +1291,9 @@ async function resolveSubmittedFile(file) {
|
|
|
1276
1291
|
}
|
|
1277
1292
|
async function blobUrlToDataUrl(url) {
|
|
1278
1293
|
try {
|
|
1279
|
-
const
|
|
1294
|
+
const response = await fetch(url);
|
|
1295
|
+
if (!response.ok) return null;
|
|
1296
|
+
const blob = await response.blob();
|
|
1280
1297
|
return await new Promise((resolve) => {
|
|
1281
1298
|
const reader = new FileReader();
|
|
1282
1299
|
reader.onloadend = () => resolve(typeof reader.result === "string" ? reader.result : null);
|
|
@@ -1328,4 +1345,4 @@ function createId() {
|
|
|
1328
1345
|
return globalThis.crypto?.randomUUID?.() ?? `prompt-input-${Date.now()}-${Math.random()}`;
|
|
1329
1346
|
}
|
|
1330
1347
|
//#endregion
|
|
1331
|
-
export { PromptInput, PromptInputActionAddAttachments, PromptInputActionAddScreenshot, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuItem, PromptInputActionMenuTrigger, PromptInputApproval, PromptInputAttachment, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommand, PromptInputCommandComposer, PromptInputCommandEmpty, PromptInputCommandGroup, PromptInputCommandGroupLabel, PromptInputCommandInput, PromptInputCommandItem, PromptInputCommandList, PromptInputCommandSeparator, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputHoverCard, PromptInputHoverCardContent, PromptInputHoverCardTrigger, PromptInputPermissionSelector, PromptInputProvider, PromptInputReferences, PromptInputSelect, PromptInputSubmit, PromptInputTab, PromptInputTabBody, PromptInputTabItem, PromptInputTabLabel, PromptInputTabsList, PromptInputTextarea, PromptInputTools, getApprovalRequestId, getApprovalStateKey, getPendingToolApprovals, usePromptInputAttachments, usePromptInputController, useProviderAttachments };
|
|
1348
|
+
export { PromptInput, PromptInputActionAddAttachments, PromptInputActionAddScreenshot, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuItem, PromptInputActionMenuTrigger, PromptInputApproval, PromptInputAttachment, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommand, PromptInputCommandComposer, PromptInputCommandEmpty, PromptInputCommandGroup, PromptInputCommandGroupLabel, PromptInputCommandInput, PromptInputCommandItem, PromptInputCommandList, PromptInputCommandSeparator, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputHoverCard, PromptInputHoverCardContent, PromptInputHoverCardTrigger, PromptInputPermissionSelector, PromptInputProvider, PromptInputReferences, PromptInputSelect, PromptInputSubmit, PromptInputTab, PromptInputTabBody, PromptInputTabItem, PromptInputTabLabel, PromptInputTabsList, PromptInputTextarea, PromptInputTools, PromptInputTray, getApprovalRequestId, getApprovalStateKey, getPendingToolApprovals, usePromptInputAttachments, usePromptInputController, useProviderAttachments };
|
package/dist/components/Queue.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { Collapsible } from "./Collapsible.js";
|
|
3
|
-
import { S as FileIcon, _ as DotIcon, p as ChevronRightIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
|
|
4
2
|
import { Button } from "./Button.js";
|
|
3
|
+
import { Collapsible } from "./Collapsible.js";
|
|
4
|
+
import { C as FileIcon, d as CheckIcon, m as ChevronRightIcon, v as DotIcon } from "../icons-ua6f_GH3.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
6
6
|
import { ScrollArea } from "./ScrollArea.js";
|
|
7
7
|
import "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
2
|
import { Collapsible } from "./Collapsible.js";
|
|
3
|
-
import {
|
|
3
|
+
import { q as SpinnerIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import { ActivityContent, ActivityText, ActivityTrigger } from "./Activity.js";
|
|
5
|
-
import { f as MessageResponse } from "../Message-
|
|
5
|
+
import { f as MessageResponse } from "../Message-_-bEYLAO.js";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/Reasoning.tsx
|
|
@@ -36,11 +36,10 @@ function Reasoning({ className, isStreaming = false, duration, open, defaultOpen
|
|
|
36
36
|
const previousStreamingRef = React.useRef(isStreaming);
|
|
37
37
|
const startTimeRef = React.useRef(isStreaming ? Date.now() : null);
|
|
38
38
|
const hasEverStreamedRef = React.useRef(isStreaming);
|
|
39
|
-
const [hasAutoClosed, setHasAutoClosed] = React.useState(false);
|
|
40
39
|
const isControlled = open !== void 0;
|
|
41
40
|
const currentOpen = isControlled ? open : internalOpen;
|
|
42
41
|
const preventAutoOpen = defaultOpen === false;
|
|
43
|
-
const resolvedDuration = duration ?? internalDuration;
|
|
42
|
+
const resolvedDuration = duration ?? (isStreaming || startTimeRef.current !== null ? void 0 : internalDuration);
|
|
44
43
|
const setOpenState = React.useCallback((next) => {
|
|
45
44
|
if (next === currentOpen) return;
|
|
46
45
|
if (!isControlled) setInternalOpen(next);
|
|
@@ -53,8 +52,6 @@ function Reasoning({ className, isStreaming = false, duration, open, defaultOpen
|
|
|
53
52
|
React.useEffect(() => {
|
|
54
53
|
if (isStreaming) {
|
|
55
54
|
hasEverStreamedRef.current = true;
|
|
56
|
-
setHasAutoClosed(false);
|
|
57
|
-
if (duration === void 0) setInternalDuration(void 0);
|
|
58
55
|
if (startTimeRef.current === null) startTimeRef.current = Date.now();
|
|
59
56
|
return;
|
|
60
57
|
}
|
|
@@ -66,10 +63,9 @@ function Reasoning({ className, isStreaming = false, duration, open, defaultOpen
|
|
|
66
63
|
React.useEffect(() => {
|
|
67
64
|
const wasStreaming = previousStreamingRef.current;
|
|
68
65
|
if (isStreaming && !currentOpen && !preventAutoOpen) setOpenState(true);
|
|
69
|
-
if (!isStreaming && wasStreaming && hasEverStreamedRef.current && currentOpen
|
|
66
|
+
if (!isStreaming && wasStreaming && hasEverStreamedRef.current && currentOpen) {
|
|
70
67
|
const closeTimer = window.setTimeout(() => {
|
|
71
68
|
setOpenState(false);
|
|
72
|
-
setHasAutoClosed(true);
|
|
73
69
|
}, AUTO_CLOSE_DELAY_MS);
|
|
74
70
|
previousStreamingRef.current = isStreaming;
|
|
75
71
|
return () => window.clearTimeout(closeTimer);
|
|
@@ -77,7 +73,6 @@ function Reasoning({ className, isStreaming = false, duration, open, defaultOpen
|
|
|
77
73
|
previousStreamingRef.current = isStreaming;
|
|
78
74
|
}, [
|
|
79
75
|
currentOpen,
|
|
80
|
-
hasAutoClosed,
|
|
81
76
|
isStreaming,
|
|
82
77
|
preventAutoOpen,
|
|
83
78
|
setOpenState
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { G as SidebarIcon } from "../icons-DyOM0EJs.js";
|
|
3
2
|
import { Button } from "./Button.js";
|
|
3
|
+
import { K as SidebarIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import { t as capitalize } from "../format-S6uWyoSb.js";
|
|
5
5
|
import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
|
|
6
6
|
import { AppTopBar } from "./AppTopBar.js";
|
|
@@ -118,6 +118,7 @@ function ResponsiveSidebarShell({ sidebar, topBar, sidebarLabel, sidebarOpen, de
|
|
|
118
118
|
/* @__PURE__ */ jsx("div", {
|
|
119
119
|
ref: mainRef,
|
|
120
120
|
className: "responsive-sidebar-shell__main",
|
|
121
|
+
"data-recipe": "application-plane",
|
|
121
122
|
tabIndex: -1,
|
|
122
123
|
children
|
|
123
124
|
}),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { G as SearchIcon } from "../icons-ua6f_GH3.js";
|
|
3
3
|
import { Field } from "./Field.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/SearchField.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { a as ArrowUpIcon,
|
|
2
|
+
import { a as ArrowUpIcon, d as CheckIcon, n as ArrowDownIcon } from "../icons-ua6f_GH3.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Select as Select$1 } from "@base-ui/react/select";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
2
|
import { Collapsible } from "./Collapsible.js";
|
|
3
|
-
import {
|
|
3
|
+
import { k as LinkIcon, m as ChevronRightIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/Sources.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { d as CheckIcon, q as SpinnerIcon } from "../icons-ua6f_GH3.js";
|
|
3
3
|
import { Tabs } from "./Tabs.js";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { $ as WarningIcon, Y as StopIcon, d as CheckIcon, q as SpinnerIcon } from "../icons-ua6f_GH3.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/SubagentRunIndicator.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
3
2
|
import { buttonVariants } from "./Button.js";
|
|
3
|
+
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
4
|
import { Tooltip } from "./Tooltip.js";
|
|
5
5
|
import { NaniteMark } from "./NaniteScene.js";
|
|
6
6
|
import { SubagentRunIndicator, getSubagentRunName, getSubagentRunTooltip } from "./SubagentRunIndicator.js";
|
package/dist/components/Task.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
2
|
import { Collapsible } from "./Collapsible.js";
|
|
3
|
-
import {
|
|
3
|
+
import { C as FileIcon, G as SearchIcon, m as ChevronRightIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/Task.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as CopyButtonProps } from "../copy-button-
|
|
1
|
+
import { n as IconButtonProps } from "../IconButton-CFKhu6OR.js";
|
|
2
|
+
import { t as CopyButtonProps } from "../copy-button-EBv_B9F6.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/Terminal.d.ts
|
|
@@ -103,7 +103,7 @@ declare function TerminalCopyButton({
|
|
|
103
103
|
onClick,
|
|
104
104
|
...props
|
|
105
105
|
}: TerminalCopyButtonProps): React.JSX.Element;
|
|
106
|
-
interface TerminalClearButtonProps extends Omit<
|
|
106
|
+
interface TerminalClearButtonProps extends Omit<IconButtonProps, "children" | "label" | "tooltip" | "variant" | "size" | "color" | "onClick"> {
|
|
107
107
|
label?: string;
|
|
108
108
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
109
109
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { t as CopyButton } from "../copy-button-vo1paUSi.js";
|
|
2
|
+
import { Z as TerminalIcon, tt as XIcon } from "../icons-ua6f_GH3.js";
|
|
3
|
+
import { IconButton } from "./IconButton.js";
|
|
4
|
+
import { t as CopyButton } from "../copy-button-TWq8nZhc.js";
|
|
6
5
|
import { Badge } from "./Badge.js";
|
|
7
6
|
import { ScrollArea } from "./ScrollArea.js";
|
|
8
7
|
import * as React from "react";
|
|
@@ -217,16 +216,16 @@ function TerminalClearButton({ className, label = "Clear terminal", onClick, ...
|
|
|
217
216
|
onClear?.();
|
|
218
217
|
onClick?.(e);
|
|
219
218
|
}, [onClear, onClick]);
|
|
220
|
-
return /* @__PURE__ */
|
|
219
|
+
return /* @__PURE__ */ jsx(IconButton, {
|
|
220
|
+
label,
|
|
221
221
|
variant: "ghost",
|
|
222
|
+
color: "neutral",
|
|
222
223
|
size: "sm",
|
|
223
|
-
iconOnly: true,
|
|
224
|
-
"aria-label": label,
|
|
225
224
|
className: cx("terminal__clear", className),
|
|
226
225
|
...props,
|
|
227
226
|
onClick: handleClick,
|
|
228
227
|
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
229
|
-
})
|
|
228
|
+
});
|
|
230
229
|
}
|
|
231
230
|
const ANSI_REGEX = /\u001b\[[0-9;?]*[a-zA-Z]/g;
|
|
232
231
|
function stripAnsi(input) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
2
|
import { Collapsible } from "./Collapsible.js";
|
|
3
|
-
import {
|
|
3
|
+
import { d as CheckIcon, m as ChevronRightIcon, q as SpinnerIcon, tt as XIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import { Progress } from "./Progress.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
6
6
|
import * as React from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as
|
|
1
|
+
import { F as MonitorIcon, I as MoonIcon, X as SunIcon } from "../icons-ua6f_GH3.js";
|
|
2
2
|
import { Radio, RadioGroup } from "./RadioGroup.js";
|
|
3
3
|
import { useTheme } from "./ThemeProvider.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { i as AgentMessageRenderPartContext } from "../AgentMessageParts-CyD2UB3V.js";
|
|
2
|
-
import { r as AgentChatProps } from "../AgentChat-
|
|
2
|
+
import { r as AgentChatProps } from "../AgentChat-Bm1qYbOo.js";
|
|
3
3
|
import { i as useOptionalAgentToolRuns, n as AgentToolRunsProvider, r as AgentToolRunsProviderProps, t as AgentToolEventsValue } from "../AgentToolRunsContext-BVe4stgw.js";
|
|
4
4
|
import { S as isThinkChatActivityPart } from "../ThinkChatToolParts-CSzVwMXf.js";
|
|
5
5
|
import { u as describeThinkChatActivityPart } from "../ThinkChatActivitySummary-kr5fE0wg.js";
|
|
6
|
-
import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-
|
|
6
|
+
import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-2BobmuvR.js";
|
|
7
7
|
import { n as ThinkChatValue } from "../ThinkChatContext-DrsZqdaO.js";
|
|
8
8
|
import { n as ThinkRecoveryNoticeProps, t as ThinkRecoveryNotice } from "../ThinkRecoveryNotice-DFIcG9UX.js";
|
|
9
9
|
import { n as BrowserLiveViewProps, t as BrowserLiveView } from "../BrowserLiveView-BV5qgFgI.js";
|
|
10
10
|
import { n as BrowserReplayProps, t as BrowserReplay } from "../BrowserReplay-xWvRjRAC.js";
|
|
11
|
-
import { d as inferWorkspaceLanguage, i as WorkspaceFileState } from "../WorkspaceFile-
|
|
12
|
-
import { a as WorkspaceSource, c as workspaceBinaryFileQueryOptions, d as workspaceFileStatQueryOptions, f as workspaceInfoQueryOptions, i as WorkspaceQueryKey, l as workspaceDirectoryQueryOptions, m as workspaceTextFileQueryOptions, n as WorkspaceFileReadTarget, o as WorkspaceState, p as workspaceQueryKey, r as WorkspaceInfo, s as useWorkspace, t as UseWorkspaceOptions, u as workspaceFileAssetQueryOptions } from "../Workspace-
|
|
13
|
-
import { n as WorkspaceExplorerProps, t as WorkspaceExplorer } from "../WorkspaceExplorer-
|
|
11
|
+
import { d as inferWorkspaceLanguage, i as WorkspaceFileState } from "../WorkspaceFile-DMtRMwVv.js";
|
|
12
|
+
import { a as WorkspaceSource, c as workspaceBinaryFileQueryOptions, d as workspaceFileStatQueryOptions, f as workspaceInfoQueryOptions, i as WorkspaceQueryKey, l as workspaceDirectoryQueryOptions, m as workspaceTextFileQueryOptions, n as WorkspaceFileReadTarget, o as WorkspaceState, p as workspaceQueryKey, r as WorkspaceInfo, s as useWorkspace, t as UseWorkspaceOptions, u as workspaceFileAssetQueryOptions } from "../Workspace-CIycQ4xE.js";
|
|
13
|
+
import { n as WorkspaceExplorerProps, t as WorkspaceExplorer } from "../WorkspaceExplorer-BCipn7Vd.js";
|
|
14
14
|
import * as React from "react";
|
|
15
15
|
import { UIMessage } from "ai";
|
|
16
16
|
import { UseAgentOptions } from "agents/react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { S as isThinkChatActivityPart } from "../ThinkChatToolParts-CSzVwMXf.js";
|
|
2
2
|
import { u as describeThinkChatActivityPart } from "../ThinkChatActivitySummary-kr5fE0wg.js";
|
|
3
|
-
import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-
|
|
3
|
+
import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-2BobmuvR.js";
|
|
4
4
|
export { ThinkChatActivity, ThinkChatActivityProps, ThinkChatActivityRendererOptions, ThinkChatToolRenderer, ThinkChatToolRenderers, createThinkChatActivityRenderer, describeThinkChatActivityPart, isThinkChatActivityPart, renderThinkChatActivityPart };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "./Activity.js";
|
|
2
2
|
import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
|
|
3
|
-
import { f as MessageResponse } from "../Message-
|
|
3
|
+
import { f as MessageResponse } from "../Message-_-bEYLAO.js";
|
|
4
4
|
import { isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartWorking, isSessionContextToolPart, isSkillToolPart, isThinkChatActivityPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
|
|
5
5
|
import { useOptionalAgentToolRuns } from "./AgentToolRunsContext.js";
|
|
6
6
|
import { SubagentRunList } from "./SubagentRunList.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ActivityOutput, ActivityPanel } from "./Activity.js";
|
|
2
2
|
import { displayUrl, isSessionContextToolFailure } from "./ThinkChatToolParts.js";
|
|
3
3
|
import { Tabs } from "./Tabs.js";
|
|
4
|
-
import { t as CodeBlock } from "../CodeBlock-
|
|
4
|
+
import { t as CodeBlock } from "../CodeBlock-Cp67Njo3.js";
|
|
5
5
|
import { BrowserLiveView } from "./BrowserLiveView.js";
|
|
6
6
|
import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
|
|
7
7
|
import * as React from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { C as FileIcon, O as InfoIcon, W as RefreshIcon, Z as TerminalIcon, d as CheckIcon, n as ArrowDownIcon, tt as XIcon } from "../icons-ua6f_GH3.js";
|
|
3
3
|
import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityOutput, ActivityPanel, ActivityTrigger } from "./Activity.js";
|
|
4
4
|
import { formatThinkExecutionRunProgress, formatThinkExecutionStatus, formatThinkExecutionTimestamp, getThinkExecutionRunError, getThinkExecutionRunId, getThinkExecutionRunProgressedAt, getThinkExecutionRunProgressedLabel, getThinkExecutionRunStatus, getThinkExecutionRunTitle, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
|
|
5
5
|
import { ThinkExecutionStatus } from "./ThinkExecutionStatus.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { O as InfoIcon, d as CheckIcon, q as SpinnerIcon, tt as XIcon, z as PauseIcon } from "../icons-ua6f_GH3.js";
|
|
3
3
|
import { Tooltip } from "./Tooltip.js";
|
|
4
4
|
import { formatThinkExecutionStatus, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone } from "./ThinkExecutionRun.js";
|
|
5
5
|
import "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { buttonVariants } from "./Button.js";
|
|
3
|
+
import { W as RefreshIcon, b as EllipsisIcon } from "../icons-ua6f_GH3.js";
|
|
3
4
|
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
|
-
import {
|
|
5
|
-
import { Tooltip } from "./Tooltip.js";
|
|
5
|
+
import { IconButton } from "./IconButton.js";
|
|
6
6
|
import { EmptyState } from "./EmptyState.js";
|
|
7
7
|
import { Menu } from "./Menu.js";
|
|
8
8
|
import { AppTopBar } from "./AppTopBar.js";
|
|
@@ -32,24 +32,17 @@ function RunActions({ busy, onAction, run, source }) {
|
|
|
32
32
|
const statusTone = getThinkExecutionRunStatusTone(run);
|
|
33
33
|
const kind = isThinkSubmissionRun(run) ? "submission" : "workflow";
|
|
34
34
|
const action = (key, callback) => () => onAction(key, callback);
|
|
35
|
-
return /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
children: /* @__PURE__ */ jsx(EllipsisIcon, {})
|
|
47
|
-
})
|
|
48
|
-
}) }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
|
|
49
|
-
side: "top",
|
|
50
|
-
sideOffset: 6,
|
|
51
|
-
children: /* @__PURE__ */ jsx(Tooltip.Popup, { children: "Run actions" })
|
|
52
|
-
}) })] }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
35
|
+
return /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(IconButton, {
|
|
36
|
+
label: `Actions for ${kind} ${id}`,
|
|
37
|
+
tooltip: "Run actions",
|
|
38
|
+
render: /* @__PURE__ */ jsx(Menu.Trigger, { unstyled: true }),
|
|
39
|
+
variant: "ghost",
|
|
40
|
+
color: "neutral",
|
|
41
|
+
size: "sm",
|
|
42
|
+
className: "think-execution-workbench__run-actions",
|
|
43
|
+
disabled: busy,
|
|
44
|
+
children: /* @__PURE__ */ jsx(EllipsisIcon, {})
|
|
45
|
+
}), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
53
46
|
align: "end",
|
|
54
47
|
children: /* @__PURE__ */ jsx(Menu.Popup, { children: isThinkSubmissionRun(run) ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
55
48
|
isSubmissionCancelable(run.status) ? /* @__PURE__ */ jsx(Menu.Item, {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { l as WorkspaceNavigationAdapter } from "../WorkspaceLink-O-EBKUJ8.js";
|
|
2
|
-
import { r as WorkspaceFileAssetResolver } from "../WorkspaceFile-
|
|
3
|
-
import { a as WorkspaceSource } from "../Workspace-
|
|
2
|
+
import { r as WorkspaceFileAssetResolver } from "../WorkspaceFile-DMtRMwVv.js";
|
|
3
|
+
import { a as WorkspaceSource } from "../Workspace-CIycQ4xE.js";
|
|
4
4
|
import { ThinkChatMessagesProps } from "./ThinkChat.js";
|
|
5
5
|
import { t as ThinkAgent } from "../think-agent-Cip5KAPj.js";
|
|
6
|
+
import { McpPluginCatalogProps } from "./McpPluginCatalog.js";
|
|
6
7
|
import { t as ThinkExecutionRun } from "../ThinkExecutionRun-ChhWhOoU.js";
|
|
7
8
|
import { ThinkExecutionWorkbenchProps } from "./ThinkExecutionWorkbench.js";
|
|
8
9
|
import { ThinkFullAppView } from "./ThinkFullAppViewSwitch.js";
|
|
@@ -16,7 +17,7 @@ import { useAgent } from "agents/react";
|
|
|
16
17
|
//#region src/components/ThinkFullApp.d.ts
|
|
17
18
|
type ThinkFullAppMobileView = "chat" | "workbench";
|
|
18
19
|
type ThinkFullAppAgent<State = unknown> = ThinkAgent<State>;
|
|
19
|
-
type ThinkFullAppWorkbenchView = "files" | "execution" | (string & {});
|
|
20
|
+
type ThinkFullAppWorkbenchView = "files" | "execution" | "plugins" | (string & {});
|
|
20
21
|
interface ThinkFullAppWorkspaceConfig {
|
|
21
22
|
source: WorkspaceSource;
|
|
22
23
|
/**
|
|
@@ -49,6 +50,8 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
|
|
|
49
50
|
chat: ReturnType<typeof useAgentChat<State, MessageT>>;
|
|
50
51
|
/** Atomic workspace source, navigation, media, and header configuration. */
|
|
51
52
|
workspace?: ThinkFullAppWorkspaceConfig;
|
|
53
|
+
/** Plugin directory backed by the host's live Agents MCP state and connection callbacks. */
|
|
54
|
+
plugins?: McpPluginCatalogProps;
|
|
52
55
|
/** Product-specific actions rendered in the application top bar. */
|
|
53
56
|
appBarActions?: React.ReactNode;
|
|
54
57
|
/** Product-specific navigation rendered after the built-in sidebar control. */
|
|
@@ -76,7 +79,7 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
|
|
|
76
79
|
renderExecutionRunLink: ThinkExecutionWorkbenchProps["renderRunLink"];
|
|
77
80
|
/** Message rendering labels and approval overrides for ThinkChat. */
|
|
78
81
|
messages?: ThinkChatMessagesProps<MessageT>;
|
|
79
|
-
/** Extra workbench panels appended after the built-in
|
|
82
|
+
/** Extra workbench panels appended after the enabled built-in panels. */
|
|
80
83
|
workbenchPanels?: readonly ThinkFullAppPanel<AgentT, State, MessageT>[];
|
|
81
84
|
/** Show retained Agent Tool runs from the parent connection. Defaults to true. */
|
|
82
85
|
showAgentTools?: boolean;
|
|
@@ -126,6 +129,7 @@ declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = u
|
|
|
126
129
|
onMobileViewChange,
|
|
127
130
|
onThreadSidebarOpenChange,
|
|
128
131
|
onWorkbenchViewChange,
|
|
132
|
+
plugins,
|
|
129
133
|
ref,
|
|
130
134
|
renderAgentToolRunLink,
|
|
131
135
|
renderExecutionRunLink,
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { S as FileIcon, X as TerminalIcon, d as ChevronDownIcon } from "../icons-DyOM0EJs.js";
|
|
3
2
|
import { Button } from "./Button.js";
|
|
3
|
+
import { C as FileIcon, Z as TerminalIcon, c as BoxIcon, f as ChevronDownIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../WorkspaceLink-BYYeTQLf.js";
|
|
5
5
|
import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
|
|
6
6
|
import { AppTopBar } from "./AppTopBar.js";
|
|
7
7
|
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../ThinkChat-E_HrfH76.js";
|
|
8
8
|
import { useWorkspace } from "./Workspace.js";
|
|
9
9
|
import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
|
|
10
|
+
import { ScrollArea } from "./ScrollArea.js";
|
|
11
|
+
import { McpPluginCatalog } from "./McpPluginCatalog.js";
|
|
10
12
|
import { n as runViewTransition } from "../view-transitions-DyUP0lSg.js";
|
|
11
13
|
import { ResizableSidePanel } from "./ResizableSidePanel.js";
|
|
12
14
|
import { ThinkExecutionWorkbench } from "./ThinkExecutionWorkbench.js";
|
|
@@ -38,8 +40,14 @@ function WorkspacePanel({ config }) {
|
|
|
38
40
|
actions: config.actions
|
|
39
41
|
});
|
|
40
42
|
}
|
|
43
|
+
function PluginsPanel({ config }) {
|
|
44
|
+
return /* @__PURE__ */ jsxs(ScrollArea.Root, {
|
|
45
|
+
className: "think-full-app__workbench",
|
|
46
|
+
children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, { children: /* @__PURE__ */ jsx(McpPluginCatalog, { ...config }) }), /* @__PURE__ */ jsx(ScrollArea.Scrollbar, { children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {}) })]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
41
49
|
/** Combines ThinkChat with an optional resizable workbench shell. */
|
|
42
|
-
function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat, className, defaultMobileView, defaultWorkbenchView, defaultThreadSidebarOpen, hideAppBarInWorkbench = false, messages, mobileView, onMobileViewChange, onThreadSidebarOpenChange, onWorkbenchViewChange, ref, renderAgentToolRunLink, renderExecutionRunLink, selectedExecutionRun, showAgentTools = true, showExecutionWorkbench = true, showMobileViewSwitch = true, sourceKey, style, threadSidebar, threadSidebarOpen, threadStatusSummary, workbenchPanels, workbenchView, workspace, ...props }) {
|
|
50
|
+
function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat, className, defaultMobileView, defaultWorkbenchView, defaultThreadSidebarOpen, hideAppBarInWorkbench = false, messages, mobileView, onMobileViewChange, onThreadSidebarOpenChange, onWorkbenchViewChange, plugins, ref, renderAgentToolRunLink, renderExecutionRunLink, selectedExecutionRun, showAgentTools = true, showExecutionWorkbench = true, showMobileViewSwitch = true, sourceKey, style, threadSidebar, threadSidebarOpen, threadStatusSummary, workbenchPanels, workbenchView, workspace, ...props }) {
|
|
43
51
|
const appRef = React.useRef(null);
|
|
44
52
|
const viewScopeRef = React.useRef(null);
|
|
45
53
|
const workbenchPanelRef = React.useRef(null);
|
|
@@ -116,6 +124,12 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
|
|
|
116
124
|
renderRunLink: renderExecutionRunLink
|
|
117
125
|
})
|
|
118
126
|
});
|
|
127
|
+
if (plugins) availableWorkbenchPanels.push({
|
|
128
|
+
id: "plugins",
|
|
129
|
+
label: "Plugins",
|
|
130
|
+
icon: /* @__PURE__ */ jsx(BoxIcon, {}),
|
|
131
|
+
render: () => /* @__PURE__ */ jsx(PluginsPanel, { config: plugins })
|
|
132
|
+
});
|
|
119
133
|
if (workbenchPanels) availableWorkbenchPanels.push(...workbenchPanels);
|
|
120
134
|
const activePanel = availableWorkbenchPanels.find((panel) => panel.id === requestedWorkbenchView) ?? availableWorkbenchPanels[0];
|
|
121
135
|
const activeWorkbenchView = activePanel?.id;
|
|
@@ -219,6 +233,7 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
|
|
|
219
233
|
/* @__PURE__ */ jsxs("div", {
|
|
220
234
|
ref: viewScopeRef,
|
|
221
235
|
className: "think-full-app__view-scope",
|
|
236
|
+
"data-recipe": "application-plane",
|
|
222
237
|
children: [/* @__PURE__ */ jsx("section", {
|
|
223
238
|
className: "think-full-app__chat-surface",
|
|
224
239
|
"data-workspace-restoration-scope": "chat",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { V as PlusIcon } from "../icons-DyOM0EJs.js";
|
|
3
|
-
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
2
|
import { buttonVariants } from "./Button.js";
|
|
3
|
+
import { H as PlusIcon } from "../icons-ua6f_GH3.js";
|
|
4
|
+
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
5
5
|
import { Tooltip } from "./Tooltip.js";
|
|
6
6
|
import { t as capitalize } from "../format-S6uWyoSb.js";
|
|
7
7
|
import { SearchField } from "./SearchField.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon } from "../icons-DyOM0EJs.js";
|
|
3
|
-
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
2
|
import { Button, buttonVariants } from "./Button.js";
|
|
3
|
+
import { q as SpinnerIcon } from "../icons-ua6f_GH3.js";
|
|
4
|
+
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
5
|
+
import { Select } from "./Select.js";
|
|
5
6
|
import { Field } from "./Field.js";
|
|
6
7
|
import { Form } from "./Form.js";
|
|
7
8
|
import { Textarea } from "./Textarea.js";
|
|
8
|
-
import { Select } from "./Select.js";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
//#region src/components/ThinkRoutineForm.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { B as PlayIcon, K as SpinnerIcon, Q as WarningIcon, d as ChevronDownIcon, y as EllipsisIcon } from "../icons-DyOM0EJs.js";
|
|
3
|
-
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
2
|
import { Button, buttonVariants } from "./Button.js";
|
|
3
|
+
import { $ as WarningIcon, V as PlayIcon, b as EllipsisIcon, f as ChevronDownIcon, q as SpinnerIcon } from "../icons-ua6f_GH3.js";
|
|
4
|
+
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
5
5
|
import { Menu } from "./Menu.js";
|
|
6
6
|
import { AppTopBar } from "./AppTopBar.js";
|
|
7
7
|
import { AlertDialog } from "./AlertDialog.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
3
2
|
import { buttonVariants } from "./Button.js";
|
|
3
|
+
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
4
|
import { EmptyState } from "./EmptyState.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
6
6
|
import { formatThinkExecutionShortTimestamp, getThinkExecutionRunId, getThinkExecutionRunStatus, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon, Q as WarningIcon, V as PlusIcon, _ as DotIcon, t as ArchiveIcon } from "../icons-DyOM0EJs.js";
|
|
3
|
-
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
2
|
import { Button, buttonVariants } from "./Button.js";
|
|
3
|
+
import { $ as WarningIcon, H as PlusIcon, q as SpinnerIcon, t as ArchiveIcon, v as DotIcon } from "../icons-ua6f_GH3.js";
|
|
4
|
+
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
5
5
|
import { EmptyState } from "./EmptyState.js";
|
|
6
6
|
import { SearchField } from "./SearchField.js";
|
|
7
7
|
import { AlertDialog } from "./AlertDialog.js";
|
|
@@ -188,7 +188,6 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onDelete, clas
|
|
|
188
188
|
className: "think-thread-picker__scroll",
|
|
189
189
|
children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, {
|
|
190
190
|
className: "think-thread-picker__viewport",
|
|
191
|
-
"data-recipe": "scroll-fade-y",
|
|
192
191
|
"aria-label": "Thread list",
|
|
193
192
|
children: visibleThreads.length ? /* @__PURE__ */ jsx("ul", {
|
|
194
193
|
className: "think-thread-picker__list",
|