@mcp-b/react-components 0.35.0 → 0.36.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-mpacmRU1.d.ts → AgentChat-CVO7xyLC.d.ts} +1 -1
- package/dist/{CodeBlock-CM5gfmdq.js → CodeBlock-Bk4nn7l-.js} +4 -3
- package/dist/{CodeBlock-DzGhYyNe.d.ts → CodeBlock-C380GD5t.d.ts} +2 -5
- package/dist/{Dialog-DeOSJ0Oy.d.ts → Dialog-B_FhRWaz.d.ts} +22 -37
- package/dist/{Menu-DVmjBIuM.d.ts → Menu-yb6QXWA3.d.ts} +64 -75
- package/dist/{PromptInput-DOyee1kM.d.ts → PromptInput-BRX7FhjH.d.ts} +7 -272
- package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +68 -0
- package/dist/{Select-D96d09ww.d.ts → Select-RrceeEIe.d.ts} +17 -52
- package/dist/{ThinkChat-DbzqSTBt.js → ThinkChat-ByR-QT_D.js} +5 -7
- package/dist/{ThinkChatActivity-BZyN5MBg.d.ts → ThinkChatActivity-Dkmm2pIj.d.ts} +1 -1
- package/dist/{ToggleGroup-CSBWfPXo.d.ts → ToggleGroup-BrQZOQn_.d.ts} +4 -6
- package/dist/{WorkspaceFile-CVAzjTt6.d.ts → WorkspaceFile-BLaFmMrt.d.ts} +1 -1
- package/dist/{WorkspaceFileView-BmxSbhRu.js → WorkspaceFileView-DTHJLKW_.js} +9 -15
- package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
- package/dist/components/agents-sdk/AgentChat.js +27 -21
- package/dist/components/agents-sdk/BrowserLiveView.d.ts +47 -1
- package/dist/components/agents-sdk/BrowserReplay.d.ts +40 -1
- package/dist/components/agents-sdk/McpConnectionRequest.js +13 -14
- package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.js +16 -23
- package/dist/components/agents-sdk/McpServerPicker.d.ts +2 -2
- package/dist/components/agents-sdk/McpServerPicker.js +18 -16
- package/dist/components/agents-sdk/ModelSelector.d.ts +9 -9
- package/dist/components/agents-sdk/ModelSelector.js +504 -1
- package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkChat.d.ts +17 -107
- package/dist/components/agents-sdk/ThinkChat.js +2 -12
- package/dist/components/agents-sdk/ThinkChatActivity.d.ts +2 -4
- package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -1
- package/dist/components/agents-sdk/ThinkFullApp.d.ts +4 -4
- package/dist/components/agents-sdk/ThinkFullApp.js +7 -11
- package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +2 -3
- package/dist/components/agents-sdk/ThinkRoutineLibrary.js +1 -1
- package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -3
- package/dist/components/agents-sdk/ThinkThreadShell.d.ts +1 -1
- package/dist/components/agents-sdk/Workspace.d.ts +140 -2
- package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +32 -5
- package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -5
- package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/ai-sdk/Activity.d.ts +5 -0
- package/dist/components/ai-sdk/Activity.js +33 -13
- package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/Message.js +1 -5
- package/dist/components/ai-sdk/MessageScroller.d.ts +5 -0
- package/dist/components/ai-sdk/MessageScroller.js +18 -12
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +18 -10
- package/dist/components/ai-sdk/PromptInput.d.ts +2 -2
- package/dist/components/ai-sdk/PromptInput.js +123 -126
- package/dist/components/ai-sdk/Queue.js +1 -1
- package/dist/components/ai-sdk/Reasoning.d.ts +3 -4
- package/dist/components/ai-sdk/Reasoning.js +29 -13
- package/dist/components/ai-sdk/ToolInvocation.d.ts +3 -5
- package/dist/components/extension/ChatGptSignInScreen.js +2 -2
- package/dist/components/extension/CodexModelSelector.d.ts +1 -1
- package/dist/components/foundations/Accordion.d.ts +1 -3
- package/dist/components/foundations/Accordion.js +1 -3
- package/dist/components/foundations/AlertDialog.d.ts +16 -36
- package/dist/components/foundations/Autocomplete.d.ts +12 -33
- package/dist/components/foundations/Autocomplete.js +2 -1
- package/dist/components/foundations/Combobox.d.ts +119 -2
- package/dist/components/foundations/Combobox.js +6 -23
- package/dist/components/foundations/ContextMenu.d.ts +50 -57
- package/dist/components/foundations/ContextMenu.js +4 -28
- package/dist/components/foundations/DescriptionList.d.ts +34 -2
- package/dist/components/foundations/DescriptionList.js +33 -2
- package/dist/components/foundations/Dialog.d.ts +1 -1
- package/dist/components/foundations/Dialog.js +2 -1
- package/dist/components/foundations/Menu.d.ts +1 -1
- package/dist/components/foundations/Menu.js +3 -21
- package/dist/components/foundations/Menubar.d.ts +35 -64
- package/dist/components/foundations/Menubar.js +3 -22
- package/dist/components/foundations/Popover.d.ts +8 -21
- package/dist/components/foundations/Popover.js +3 -48
- package/dist/components/foundations/PreviewCard.d.ts +44 -29
- package/dist/components/foundations/PreviewCard.js +3 -6
- package/dist/components/foundations/RadioGroup.d.ts +4 -6
- package/dist/components/foundations/Select.d.ts +1 -1
- package/dist/components/foundations/Select.js +7 -21
- package/dist/components/foundations/Slider.d.ts +31 -44
- package/dist/components/foundations/Slider.js +26 -25
- package/dist/components/foundations/Stepper.d.ts +3 -3
- package/dist/components/foundations/Stepper.js +5 -6
- package/dist/components/foundations/ToggleGroup.d.ts +1 -1
- package/dist/components/foundations/Tooltip.d.ts +6 -8
- package/dist/components/foundations/Tooltip.js +4 -3
- package/dist/components/general-purpose/Commit.js +1 -1
- package/dist/components/general-purpose/EnvironmentVariables.js +1 -1
- package/dist/components/general-purpose/PricingBillingToggle.d.ts +2 -3
- package/dist/components/general-purpose/PricingBillingToggle.js +4 -22
- package/dist/components/general-purpose/PricingPage.d.ts +3 -4
- package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -67
- package/dist/components/general-purpose/SettingsFormDialog.d.ts +7 -2
- package/dist/components/general-purpose/SettingsFormDialog.js +17 -2
- package/dist/components/general-purpose/Terminal.js +3 -3
- package/dist/components/general-purpose/ThemeModeControl.js +1 -1
- package/dist/components/general-purpose/WebPreview.js +4 -4
- package/dist/components/nanites/AgentConnection.js +16 -11
- package/dist/components/nanites/AgentToolDetail.js +1 -1
- package/dist/{mcp-server-U71zhxFF.js → mcp-server-SD_S-IpB.js} +18 -2
- package/dist/message-scroller-C8cplcQO.js +32 -0
- package/dist/provider-logos-zjZycgV6.js +74 -0
- package/dist/styles/agent-chat.css +9 -0
- package/dist/styles/agent-connection.css +4 -31
- package/dist/styles/alert-dialog.css +0 -2
- package/dist/styles/base-ui-motion.css +7 -5
- package/dist/styles/chatgpt-sign-in-screen.css +5 -3
- package/dist/styles/dialog.css +0 -2
- package/dist/styles/model-selector.css +30 -12
- package/dist/styles/popover.css +0 -1
- package/dist/styles/preview-card.css +0 -4
- package/dist/styles/pricing-page.css +1 -13
- package/dist/styles/prompt-input.css +12 -10
- package/dist/styles/recipes.css +22 -14
- package/dist/styles/slider.css +2 -2
- package/dist/styles/tooltip.css +0 -1
- package/dist/utils/structured-code.d.ts +1 -1
- package/package.json +17 -7
- package/dist/BrowserLiveView-tJTWkoyu.d.ts +0 -48
- package/dist/BrowserReplay-B0BQZr-N.d.ts +0 -41
- package/dist/Combobox-WrrDDaEv.d.ts +0 -154
- package/dist/ModelSelector-DtBxWqRn.js +0 -504
- package/dist/Workspace-GTlqvcIn.d.ts +0 -278
- package/dist/WorkspaceExplorer-Cu044amt.d.ts +0 -32
- package/dist/components/foundations/DescriptionListParts.d.ts +0 -37
- package/dist/components/foundations/DescriptionListParts.js +0 -35
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { BrowserReplay } from "./BrowserReplay.js";
|
|
4
|
-
import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
|
|
5
|
-
import { isThinkChatActivityPart } from "./ThinkChatToolParts.js";
|
|
6
|
-
import { describeThinkChatActivityPart } from "./ThinkChatActivitySummary.js";
|
|
7
|
-
import { ThinkChatActivity, createThinkChatActivityRenderer, renderThinkChatActivityPart } from "./ThinkChatActivity.js";
|
|
8
|
-
import { ThinkRecoveryNotice } from "./ThinkRecoveryNotice.js";
|
|
9
|
-
import { a as thinkPendingExecutionApprovalsQueryOptions, i as ThinkChatRoot, n as ThinkChatMessages, o as useThinkChat, r as ThinkChatProvider, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-DbzqSTBt.js";
|
|
10
|
-
import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
|
|
11
|
-
import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
|
|
12
|
-
export { AgentToolRunsProvider, BrowserLiveView, BrowserReplay, ThinkChat, ThinkChatActivity, ThinkChatMessages, ThinkChatProvider, ThinkChatRoot, ThinkRecoveryNotice, WorkspaceExplorer, createThinkChatActivityRenderer, describeThinkChatActivityPart, inferWorkspaceLanguage, isThinkChatActivityPart, renderThinkChatActivityPart, thinkPendingExecutionApprovalsQueryOptions, useOptionalAgentToolRuns, useSourceScopedAgentToolEvents, useThinkChat, useThinkPendingExecutionApprovals, useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions };
|
|
1
|
+
import { a as thinkPendingExecutionApprovalsQueryOptions, i as ThinkChatRoot, n as ThinkChatMessages, o as useThinkChat, r as ThinkChatProvider, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-ByR-QT_D.js";
|
|
2
|
+
export { ThinkChat, ThinkChatMessages, ThinkChatProvider, ThinkChatRoot, thinkPendingExecutionApprovalsQueryOptions, useThinkChat, useThinkPendingExecutionApprovals };
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
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-BZyN5MBg.js";
|
|
4
|
-
export { ThinkChatActivity, ThinkChatActivityProps, ThinkChatActivityRendererOptions, ThinkChatToolRenderer, ThinkChatToolRenderers, createThinkChatActivityRenderer, describeThinkChatActivityPart, isThinkChatActivityPart, renderThinkChatActivityPart };
|
|
1
|
+
import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../../ThinkChatActivity-Dkmm2pIj.js";
|
|
2
|
+
export { ThinkChatActivity, ThinkChatActivityProps, ThinkChatActivityRendererOptions, ThinkChatToolRenderer, ThinkChatToolRenderers, createThinkChatActivityRenderer, renderThinkChatActivityPart };
|
|
@@ -225,4 +225,4 @@ function createThinkChatActivityRenderer({ excludeTools, renderAgentToolRunLink,
|
|
|
225
225
|
/** Default activity renderer — `createThinkChatActivityRenderer()` with no overrides. */
|
|
226
226
|
const renderThinkChatActivityPart = createThinkChatActivityRenderer();
|
|
227
227
|
//#endregion
|
|
228
|
-
export { ThinkChatActivity, createThinkChatActivityRenderer,
|
|
228
|
+
export { ThinkChatActivity, createThinkChatActivityRenderer, renderThinkChatActivityPart };
|
|
@@ -2,7 +2,7 @@ import { ActivityOutput, ActivityPanel } from "../ai-sdk/Activity.js";
|
|
|
2
2
|
import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
|
|
3
3
|
import { Tabs } from "../foundations/Tabs.js";
|
|
4
4
|
import { BrowserLiveView } from "./BrowserLiveView.js";
|
|
5
|
-
import { t as CodeBlock } from "../../CodeBlock-
|
|
5
|
+
import { t as CodeBlock } from "../../CodeBlock-Bk4nn7l-.js";
|
|
6
6
|
import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
|
|
7
7
|
import { displayUrl, isSessionContextToolFailure } from "./ThinkChatToolParts.js";
|
|
8
8
|
import * as React from "react";
|
|
@@ -6,10 +6,10 @@ import { IconButton } from "../foundations/IconButton.js";
|
|
|
6
6
|
import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
7
7
|
import { EmptyState } from "../foundations/EmptyState.js";
|
|
8
8
|
import { Menu } from "../foundations/Menu.js";
|
|
9
|
-
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
10
9
|
import { getThinkExecutionRunAccessibleName, getThinkExecutionRunId, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone, isSameThinkExecutionRun, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
|
|
11
10
|
import { ThinkExecutionRunSummary } from "./ThinkExecutionStatus.js";
|
|
12
11
|
import { ThinkExecutionDetail } from "./ThinkExecutionDetail.js";
|
|
12
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
13
13
|
import * as React from "react";
|
|
14
14
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
import { queryOptions, useMutation, useSuspenseQuery } from "@tanstack/react-query";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { l as WorkspaceNavigationAdapter } from "../../WorkspaceLink-DQogVe8E.js";
|
|
2
2
|
import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-BCVqCtJ1.js";
|
|
3
3
|
import { McpPluginCatalogProps } from "./McpPluginCatalog.js";
|
|
4
|
-
import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-CVAzjTt6.js";
|
|
5
|
-
import { a as WorkspaceSource } from "../../Workspace-GTlqvcIn.js";
|
|
6
4
|
import { ThinkChatMessagesProps } from "./ThinkChat.js";
|
|
7
5
|
import { t as ThinkExecutionRun } from "../../ThinkExecutionRun-lYYgyeE1.js";
|
|
8
6
|
import { ThinkExecutionWorkbenchProps } from "./ThinkExecutionWorkbench.js";
|
|
9
|
-
import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
|
|
10
7
|
import { ThinkFullAppView } from "./ThinkFullAppViewSwitch.js";
|
|
11
8
|
import { ThinkThreadStatusSummary } from "./ThinkThreadPicker.js";
|
|
9
|
+
import { ThinkThreadShell } from "./ThinkThreadShell.js";
|
|
10
|
+
import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-BLaFmMrt.js";
|
|
11
|
+
import { WorkspaceSource } from "./Workspace.js";
|
|
12
12
|
import { t as ThinkAgent } from "../../think-agent-Cip5KAPj.js";
|
|
13
13
|
import * as React from "react";
|
|
14
14
|
import { UIMessage } from "ai";
|
|
@@ -100,7 +100,7 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
|
|
|
100
100
|
* Optional parent-owned thread picker/sidebar rendered beside the selected child app.
|
|
101
101
|
* Use the render form to close the compact drawer after selecting a thread.
|
|
102
102
|
*/
|
|
103
|
-
threadSidebar?: React.ComponentProps<typeof
|
|
103
|
+
threadSidebar?: React.ComponentProps<typeof ThinkThreadShell>["sidebar"];
|
|
104
104
|
/** Whether the thread sidebar is open. Omit for internal state. */
|
|
105
105
|
threadSidebarOpen?: boolean;
|
|
106
106
|
/** Initial thread sidebar state when `threadSidebarOpen` is uncontrolled. */
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
2
|
import { $ as TerminalIcon, C as FileIcon, J as SpinnerIcon, c as BoxIcon, f as ChevronDownIcon } from "../../icons-B1Qw05te.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
-
import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
|
|
5
4
|
import { ScrollArea } from "../foundations/ScrollArea.js";
|
|
5
|
+
import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
|
|
6
6
|
import { McpPluginCatalog } from "./McpPluginCatalog.js";
|
|
7
7
|
import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DZeLe_jN.js";
|
|
8
|
-
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-
|
|
8
|
+
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-ByR-QT_D.js";
|
|
9
9
|
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
10
|
-
import { useWorkspace } from "./Workspace.js";
|
|
11
|
-
import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
|
|
12
10
|
import { ThinkExecutionWorkbench } from "./ThinkExecutionWorkbench.js";
|
|
13
11
|
import { ResizableSidePanel } from "../general-purpose/ResizableSidePanel.js";
|
|
14
|
-
import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
|
|
15
12
|
import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
|
|
16
13
|
import { ThinkThreadStatusIndicators } from "./ThinkThreadPicker.js";
|
|
14
|
+
import { ThinkThreadShell } from "./ThinkThreadShell.js";
|
|
15
|
+
import { useWorkspace } from "./Workspace.js";
|
|
16
|
+
import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
|
|
17
17
|
import * as React from "react";
|
|
18
18
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
19
19
|
//#region src/components/agents-sdk/ThinkFullApp.tsx
|
|
@@ -42,7 +42,7 @@ function WorkspacePanel({ config }) {
|
|
|
42
42
|
function PluginsPanel({ config }) {
|
|
43
43
|
return /* @__PURE__ */ jsxs(ScrollArea.Root, {
|
|
44
44
|
className: "think-full-app__workbench",
|
|
45
|
-
children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, { children: /* @__PURE__ */ jsx(McpPluginCatalog, { ...config }) }), /* @__PURE__ */ jsx(ScrollArea.Scrollbar, { children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {}) })]
|
|
45
|
+
children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, { children: /* @__PURE__ */ jsx(ScrollArea.Content, { children: /* @__PURE__ */ jsx(McpPluginCatalog, { ...config }) }) }), /* @__PURE__ */ jsx(ScrollArea.Scrollbar, { children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {}) })]
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
@@ -313,17 +313,13 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
|
|
|
313
313
|
}), appContent] })
|
|
314
314
|
}) : appContent;
|
|
315
315
|
if (!threadSidebar) return app;
|
|
316
|
-
return /* @__PURE__ */ jsx(
|
|
317
|
-
className: "think-thread-shell",
|
|
316
|
+
return /* @__PURE__ */ jsx(ThinkThreadShell, {
|
|
318
317
|
sidebar: threadSidebar,
|
|
319
|
-
sidebarLabel: "threads",
|
|
320
318
|
sidebarOpen: threadSidebarOpen,
|
|
321
319
|
defaultSidebarOpen: defaultThreadSidebarOpen,
|
|
322
320
|
onSidebarOpenChange: onThreadSidebarOpenChange,
|
|
323
321
|
"data-hide-app-bar-in-workbench": hideAppBarInWorkbench ? "" : void 0,
|
|
324
322
|
topBar: (controls) => renderAppTopBar(controls),
|
|
325
|
-
toolbarLabel: "Thread controls",
|
|
326
|
-
showMainLabel: "Show selected thread",
|
|
327
323
|
children: app
|
|
328
324
|
});
|
|
329
325
|
}
|
|
@@ -2,10 +2,10 @@ import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
|
2
2
|
import { J as SpinnerIcon } from "../../icons-B1Qw05te.js";
|
|
3
3
|
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
4
4
|
import { Button, buttonVariants } from "../foundations/Button.js";
|
|
5
|
-
import { Select } from "../foundations/Select.js";
|
|
6
5
|
import { Field } from "../foundations/Field.js";
|
|
7
6
|
import { Form } from "../foundations/Form.js";
|
|
8
7
|
import { Textarea } from "../foundations/Textarea.js";
|
|
8
|
+
import { Select } from "../foundations/Select.js";
|
|
9
9
|
import * as React from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
//#region src/components/agents-sdk/ThinkRoutineForm.tsx
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ThinkRoutine, ThinkRoutineCreateRequest, ThinkRoutineOwner, ThinkRoutineRunOf } from "./ThinkRoutine.js";
|
|
1
|
+
import { ThinkRoutine, ThinkRoutineRunOf } from "./ThinkRoutine.js";
|
|
3
2
|
import * as React from "react";
|
|
4
3
|
|
|
5
4
|
//#region src/components/agents-sdk/ThinkRoutineLibrary.d.ts
|
|
@@ -76,4 +75,4 @@ declare function ThinkRoutineLibrary<TRoutine extends ThinkRoutine = ThinkRoutin
|
|
|
76
75
|
ref?: React.Ref<HTMLDivElement>;
|
|
77
76
|
}): React.JSX.Element;
|
|
78
77
|
//#endregion
|
|
79
|
-
export {
|
|
78
|
+
export { ThinkRoutineLibrary, ThinkRoutineLibraryDetailRenderProps, ThinkRoutineLibraryProps };
|
|
@@ -6,8 +6,8 @@ import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
|
6
6
|
import { EmptyState } from "../foundations/EmptyState.js";
|
|
7
7
|
import { Menu } from "../foundations/Menu.js";
|
|
8
8
|
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
9
|
-
import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
|
|
10
9
|
import { AlertDialog } from "../foundations/AlertDialog.js";
|
|
10
|
+
import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
|
|
11
11
|
import { ThinkRoutineBrowser } from "./ThinkRoutineBrowser.js";
|
|
12
12
|
import { ThinkRoutineDetail } from "./ThinkRoutineDetail.js";
|
|
13
13
|
import * as React from "react";
|
|
@@ -186,8 +186,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onSelect, onDe
|
|
|
186
186
|
className: "think-thread-picker__scroll",
|
|
187
187
|
children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, {
|
|
188
188
|
className: "think-thread-picker__viewport",
|
|
189
|
-
|
|
190
|
-
children: visibleThreads.length ? /* @__PURE__ */ jsx("ul", {
|
|
189
|
+
children: /* @__PURE__ */ jsx(ScrollArea.Content, { children: visibleThreads.length ? /* @__PURE__ */ jsx("ul", {
|
|
191
190
|
className: "think-thread-picker__list",
|
|
192
191
|
children: visibleThreads.map((thread) => {
|
|
193
192
|
const timestamp = formatThreadTimestamp(thread);
|
|
@@ -251,7 +250,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onSelect, onDe
|
|
|
251
250
|
}) : /* @__PURE__ */ jsx(EmptyState, {
|
|
252
251
|
className: "think-thread-picker__empty",
|
|
253
252
|
description: threads.length ? "No matching threads." : "No threads yet."
|
|
254
|
-
})
|
|
253
|
+
}) })
|
|
255
254
|
}), /* @__PURE__ */ jsx(ScrollArea.Scrollbar, {
|
|
256
255
|
orientation: "vertical",
|
|
257
256
|
children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ResponsiveSidebarShell } from "
|
|
1
|
+
import { t as ResponsiveSidebarShell } from "../../ResponsiveSidebarShell-DWjULskY.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/agents-sdk/ThinkThreadShell.d.ts
|
|
@@ -1,2 +1,140 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
|
|
1
|
+
import { a as WorkspaceMediaInfo, i as WorkspaceFileState, r as WorkspaceFileAssetResolver, t as WorkspaceFileAsset } from "../../WorkspaceFile-BLaFmMrt.js";
|
|
2
|
+
import { DataTag, QueryKey, UnusedSkipTokenOptions } from "@tanstack/react-query";
|
|
3
|
+
import { WorkspaceLike } from "@cloudflare/think";
|
|
4
|
+
import { FileInfo, Workspace } from "@cloudflare/shell";
|
|
5
|
+
|
|
6
|
+
//#region src/components/agents-sdk/Workspace.d.ts
|
|
7
|
+
/** Workspace summary, as returned by `Workspace.getWorkspaceInfo()` upstream. */
|
|
8
|
+
type WorkspaceInfo = Awaited<ReturnType<Workspace["getWorkspaceInfo"]>>;
|
|
9
|
+
/** Whole upstream workspace shapes, accepted without narrowing or mirroring. */
|
|
10
|
+
type WorkspaceSource = Workspace | WorkspaceLike;
|
|
11
|
+
interface UseWorkspaceOptions {
|
|
12
|
+
/** Must be referentially stable (memoize in the app). */
|
|
13
|
+
source: WorkspaceSource;
|
|
14
|
+
/**
|
|
15
|
+
* Stable, non-secret identity for the endpoint/account/tenant/workspace
|
|
16
|
+
* behind `source`. Change it whenever that backing workspace changes.
|
|
17
|
+
*/
|
|
18
|
+
sourceKey: string;
|
|
19
|
+
/** Root directory to list first. Defaults to "/". */
|
|
20
|
+
root?: string;
|
|
21
|
+
/** Route-owned selected file path. */
|
|
22
|
+
selectedPath: string | null;
|
|
23
|
+
/** Called when a non-link browser asks the app to select a file. */
|
|
24
|
+
onSelectedPathChange?: (path: string | null) => void;
|
|
25
|
+
/**
|
|
26
|
+
* Optional host adapter called before text/binary reads. Return `null` for
|
|
27
|
+
* ordinary text files and prefer signed/range-friendly URLs for large media.
|
|
28
|
+
* The configured root scopes navigation; hosts must enforce authorization
|
|
29
|
+
* atomically when resolving assets across a trust boundary.
|
|
30
|
+
* Keep this resolver semantically stable for a given `sourceKey`; function
|
|
31
|
+
* identity is intentionally excluded from serializable query keys.
|
|
32
|
+
*/
|
|
33
|
+
resolveFileAsset?: WorkspaceFileAssetResolver;
|
|
34
|
+
/** Maximum size for the built-in buffered-byte fallback. Defaults to 32 MiB. */
|
|
35
|
+
maxInlineAssetBytes?: number;
|
|
36
|
+
}
|
|
37
|
+
interface WorkspaceState {
|
|
38
|
+
root: string;
|
|
39
|
+
/** Loaded directory listings, keyed by directory path. */
|
|
40
|
+
entriesByDirectory: Readonly<Record<string, readonly FileInfo[]>>;
|
|
41
|
+
/** Every loaded entry, keyed by its path. */
|
|
42
|
+
entryByPath: ReadonlyMap<string, FileInfo>;
|
|
43
|
+
expandedPaths: ReadonlySet<string>;
|
|
44
|
+
/** Update expansion; newly expanded directories load lazily. */
|
|
45
|
+
setExpandedPaths: (next: Set<string>) => void;
|
|
46
|
+
selectedPath: string | null;
|
|
47
|
+
/** Ask the route owner to select a file. */
|
|
48
|
+
selectFile: (path: string | null) => void;
|
|
49
|
+
/** The selected file once its read settles; null while loading. */
|
|
50
|
+
selectedFile: WorkspaceFileState | null;
|
|
51
|
+
/** Initial root/info load or explicit refresh in flight. */
|
|
52
|
+
isLoading: boolean;
|
|
53
|
+
/** Directory and file paths with a query in flight. */
|
|
54
|
+
loadingPaths: ReadonlySet<string>;
|
|
55
|
+
/** Root/directory listing failure. Per-file read errors live on the file state. */
|
|
56
|
+
error: string | null;
|
|
57
|
+
/** Workspace summary, when the source provides `getWorkspaceInfo`. */
|
|
58
|
+
info: WorkspaceInfo | null;
|
|
59
|
+
/** Reload the root, every expanded directory, and the selected file. */
|
|
60
|
+
refresh: () => void;
|
|
61
|
+
}
|
|
62
|
+
interface WorkspaceFileReadTarget {
|
|
63
|
+
requestedPath: string;
|
|
64
|
+
readPath: string;
|
|
65
|
+
info: FileInfo;
|
|
66
|
+
media: WorkspaceMediaInfo | null;
|
|
67
|
+
}
|
|
68
|
+
interface WorkspaceResolvedAsset {
|
|
69
|
+
asset: WorkspaceFileAsset;
|
|
70
|
+
media: WorkspaceMediaInfo;
|
|
71
|
+
}
|
|
72
|
+
type WorkspaceQueryOptions<TData, TQueryKey extends QueryKey> = UnusedSkipTokenOptions<TData, Error, TData, TQueryKey> & {
|
|
73
|
+
queryKey: DataTag<TQueryKey, TData, Error>;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Source/root prefix for cache inspection, cancellation, or removal.
|
|
77
|
+
* Do not broadly invalidate this prefix: active file queries must refresh in
|
|
78
|
+
* stat → resolver → content order. Use a resource option key or `refresh()`.
|
|
79
|
+
*/
|
|
80
|
+
declare function workspaceQueryKey(sourceKey: string, root: string): readonly ["workspace", string, string];
|
|
81
|
+
type WorkspaceQueryKey = ReturnType<typeof workspaceQueryKey>;
|
|
82
|
+
/** Directory-listing prefix for targeted cache invalidation. */
|
|
83
|
+
declare function workspaceDirectoryQueryPrefix(sourceKey: string, root: string): readonly ["workspace", string, string, "directory"];
|
|
84
|
+
/** Exact directory-listing key shared by query options and live hosts. */
|
|
85
|
+
declare function workspaceDirectoryQueryKey(sourceKey: string, root: string, path: string): readonly ["workspace", string, string, "directory", string];
|
|
86
|
+
type WorkspaceDirectoryQueryKey = ReturnType<typeof workspaceDirectoryQueryKey>;
|
|
87
|
+
declare function workspaceFileQueryKey(sourceKey: string, root: string, requestedPath: string): readonly ["workspace", string, string, "file", string];
|
|
88
|
+
type WorkspaceFileQueryKey = ReturnType<typeof workspaceFileQueryKey>;
|
|
89
|
+
declare function workspaceFileVersion(target: WorkspaceFileReadTarget): {
|
|
90
|
+
readonly path: string;
|
|
91
|
+
readonly name: string;
|
|
92
|
+
readonly type: import("@cloudflare/shell").EntryType;
|
|
93
|
+
readonly mimeType: string;
|
|
94
|
+
readonly size: number;
|
|
95
|
+
readonly createdAt: number;
|
|
96
|
+
readonly updatedAt: number;
|
|
97
|
+
readonly target: string | null;
|
|
98
|
+
};
|
|
99
|
+
type WorkspaceFileVersion = ReturnType<typeof workspaceFileVersion>;
|
|
100
|
+
type WorkspaceDirectoryQueryOptions = WorkspaceQueryOptions<readonly FileInfo[], WorkspaceDirectoryQueryKey>;
|
|
101
|
+
type WorkspaceInfoQueryKey = readonly [...WorkspaceQueryKey, "info"];
|
|
102
|
+
type WorkspaceInfoQueryOptions = WorkspaceQueryOptions<WorkspaceInfo | null, WorkspaceInfoQueryKey>;
|
|
103
|
+
type WorkspaceFileStatQueryKey = readonly [...WorkspaceFileQueryKey, "stat"];
|
|
104
|
+
type WorkspaceFileStatQueryOptions = WorkspaceQueryOptions<WorkspaceFileReadTarget, WorkspaceFileStatQueryKey>;
|
|
105
|
+
type WorkspaceFileAssetQueryKey = readonly [...WorkspaceFileQueryKey, "asset", WorkspaceFileVersion];
|
|
106
|
+
type WorkspaceFileAssetQueryOptions = WorkspaceQueryOptions<WorkspaceResolvedAsset | null, WorkspaceFileAssetQueryKey>;
|
|
107
|
+
type WorkspaceTextFileQueryKey = readonly [...WorkspaceFileQueryKey, "text", WorkspaceFileVersion];
|
|
108
|
+
type WorkspaceTextFileQueryOptions = WorkspaceQueryOptions<string | null, WorkspaceTextFileQueryKey>;
|
|
109
|
+
type WorkspaceBinaryFileQueryKey = readonly [...WorkspaceFileQueryKey, "bytes", WorkspaceFileVersion, {
|
|
110
|
+
readonly maxInlineAssetBytes: number;
|
|
111
|
+
}];
|
|
112
|
+
type WorkspaceBinaryFileQueryOptions = WorkspaceQueryOptions<WorkspaceResolvedAsset | null, WorkspaceBinaryFileQueryKey>;
|
|
113
|
+
/** Shared directory options for workspace components and route loaders. */
|
|
114
|
+
declare function workspaceDirectoryQueryOptions(source: WorkspaceSource, sourceKey: string, root: string, path: string): WorkspaceDirectoryQueryOptions;
|
|
115
|
+
/** Shared workspace-summary options for workspace components and route loaders. */
|
|
116
|
+
declare function workspaceInfoQueryOptions(source: WorkspaceSource, sourceKey: string, root: string): WorkspaceInfoQueryOptions;
|
|
117
|
+
/** Re-stat and validate a requested path before any resolver or file read. */
|
|
118
|
+
declare function workspaceFileStatQueryOptions(source: WorkspaceSource, sourceKey: string, root: string, requestedPath: string): WorkspaceFileStatQueryOptions;
|
|
119
|
+
/** Optional host asset resolution, scoped to the current stat result. */
|
|
120
|
+
declare function workspaceFileAssetQueryOptions(sourceKey: string, root: string, target: WorkspaceFileReadTarget, resolveFileAsset: WorkspaceFileAssetResolver): WorkspaceFileAssetQueryOptions;
|
|
121
|
+
/** Cached text read options, scoped to the validated stat result. */
|
|
122
|
+
declare function workspaceTextFileQueryOptions(source: WorkspaceSource, sourceKey: string, root: string, target: WorkspaceFileReadTarget): WorkspaceTextFileQueryOptions;
|
|
123
|
+
/** Active-file-only buffered asset options, scoped to the validated stat result. */
|
|
124
|
+
declare function workspaceBinaryFileQueryOptions(source: WorkspaceSource, sourceKey: string, root: string, target: WorkspaceFileReadTarget, maxInlineAssetBytes: number): WorkspaceBinaryFileQueryOptions;
|
|
125
|
+
/**
|
|
126
|
+
* Headless state for browsing a Think workspace. TanStack Query owns remote
|
|
127
|
+
* directory, metadata, resolver, text, and byte lifecycles; the route owns
|
|
128
|
+
* selection, while this hook only keeps local tree expansion state.
|
|
129
|
+
*/
|
|
130
|
+
declare function useWorkspace({
|
|
131
|
+
source,
|
|
132
|
+
sourceKey,
|
|
133
|
+
root,
|
|
134
|
+
selectedPath,
|
|
135
|
+
onSelectedPathChange,
|
|
136
|
+
resolveFileAsset,
|
|
137
|
+
maxInlineAssetBytes
|
|
138
|
+
}: UseWorkspaceOptions): WorkspaceState;
|
|
139
|
+
//#endregion
|
|
140
|
+
export { UseWorkspaceOptions, WorkspaceBinaryFileQueryKey, WorkspaceBinaryFileQueryOptions, WorkspaceDirectoryQueryKey, WorkspaceDirectoryQueryOptions, WorkspaceFileAssetQueryKey, WorkspaceFileAssetQueryOptions, WorkspaceFileQueryKey, WorkspaceFileReadTarget, WorkspaceFileStatQueryKey, WorkspaceFileStatQueryOptions, WorkspaceFileVersion, WorkspaceInfo, WorkspaceInfoQueryKey, WorkspaceInfoQueryOptions, WorkspaceQueryKey, WorkspaceResolvedAsset, WorkspaceSource, WorkspaceState, WorkspaceTextFileQueryKey, WorkspaceTextFileQueryOptions, useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions };
|
|
@@ -1,5 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { l as WorkspaceNavigationAdapter } from "../../WorkspaceLink-DQogVe8E.js";
|
|
2
|
+
import { WorkspaceState } from "./Workspace.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/agents-sdk/WorkspaceExplorer.d.ts
|
|
6
|
+
interface WorkspaceExplorerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
7
|
+
workspace: WorkspaceState;
|
|
8
|
+
/** Host-owned URL/history adapter shared by chat links and the file explorer. */
|
|
9
|
+
navigation: WorkspaceNavigationAdapter;
|
|
10
|
+
/** Header label. Defaults to "Workspace". */
|
|
11
|
+
title?: React.ReactNode;
|
|
12
|
+
/** Leading workspace control, such as a host-owned Back to chat button. */
|
|
13
|
+
leading?: React.ReactNode;
|
|
14
|
+
/** Extra header actions, rendered next to the built-in refresh button. */
|
|
15
|
+
actions?: React.ReactNode;
|
|
16
|
+
/** Show the file filter input. Hidden by default to keep the browser compact. */
|
|
17
|
+
showFilter?: boolean;
|
|
18
|
+
filterPlaceholder?: string;
|
|
19
|
+
emptyState?: React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Convenience workspace application composed from `WorkspaceBrowser` and
|
|
23
|
+
* `WorkspaceFileView`. The host adapter owns URLs and history; the explorer
|
|
24
|
+
* only restores presentation state for stable navigation entry keys.
|
|
25
|
+
*/
|
|
26
|
+
declare function WorkspaceExplorer({
|
|
27
|
+
...props
|
|
28
|
+
}: WorkspaceExplorerProps & {
|
|
29
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
30
|
+
}): React.JSX.Element;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { WorkspaceExplorer, WorkspaceExplorerProps };
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
2
|
import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
|
|
3
|
-
import {
|
|
4
|
-
import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationProvider, o as useRequiredWorkspaceNavigationRestoration, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "../../WorkspaceLink-DZeLe_jN.js";
|
|
3
|
+
import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationProvider, o as useRequiredWorkspaceNavigationRestoration, r as resolveWorkspaceLink } from "../../WorkspaceLink-DZeLe_jN.js";
|
|
5
4
|
import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
|
|
6
|
-
import { t as WorkspaceFileView } from "../../WorkspaceFileView-
|
|
7
|
-
import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
|
|
5
|
+
import { t as WorkspaceFileView } from "../../WorkspaceFileView-DTHJLKW_.js";
|
|
8
6
|
import * as React from "react";
|
|
9
7
|
import { jsx } from "react/jsx-runtime";
|
|
10
8
|
//#region src/components/agents-sdk/WorkspaceExplorer.tsx
|
|
@@ -123,4 +121,4 @@ function WorkspaceExplorerContent({ workspace, navigation, className, title = "W
|
|
|
123
121
|
});
|
|
124
122
|
}
|
|
125
123
|
//#endregion
|
|
126
|
-
export { WorkspaceExplorer
|
|
124
|
+
export { WorkspaceExplorer };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as parseWorkspaceSkill, a as WorkspaceMediaInfo, c as WorkspaceMediaTrackKind, d as inferWorkspaceLanguage, f as inferWorkspaceMedia, g as isWorkspaceSkillPath, h as isWorkspaceMediaPath, i as WorkspaceFileState, l as WorkspaceSkillDocument, m as isWorkspaceMarkdownPath, n as WorkspaceFileAssetRequest, o as WorkspaceMediaKind, p as inferWorkspaceMimeType, r as WorkspaceFileAssetResolver, s as WorkspaceMediaTrack, t as WorkspaceFileAsset, u as getWorkspaceBasename } from "../../WorkspaceFile-
|
|
1
|
+
import { _ as parseWorkspaceSkill, a as WorkspaceMediaInfo, c as WorkspaceMediaTrackKind, d as inferWorkspaceLanguage, f as inferWorkspaceMedia, g as isWorkspaceSkillPath, h as isWorkspaceMediaPath, i as WorkspaceFileState, l as WorkspaceSkillDocument, m as isWorkspaceMarkdownPath, n as WorkspaceFileAssetRequest, o as WorkspaceMediaKind, p as inferWorkspaceMimeType, r as WorkspaceFileAssetResolver, s as WorkspaceMediaTrack, t as WorkspaceFileAsset, u as getWorkspaceBasename } from "../../WorkspaceFile-BLaFmMrt.js";
|
|
2
2
|
export { WorkspaceFileAsset, WorkspaceFileAssetRequest, WorkspaceFileAssetResolver, WorkspaceFileState, WorkspaceMediaInfo, WorkspaceMediaKind, WorkspaceMediaTrack, WorkspaceMediaTrackKind, WorkspaceSkillDocument, getWorkspaceBasename, inferWorkspaceLanguage, inferWorkspaceMedia, inferWorkspaceMimeType, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as WorkspaceFileView } from "../../WorkspaceFileView-
|
|
1
|
+
import { t as WorkspaceFileView } from "../../WorkspaceFileView-DTHJLKW_.js";
|
|
2
2
|
export { WorkspaceFileView };
|
|
@@ -37,6 +37,8 @@ declare function Activity({
|
|
|
37
37
|
className,
|
|
38
38
|
isStreaming,
|
|
39
39
|
defaultOpen,
|
|
40
|
+
open: controlledOpen,
|
|
41
|
+
onOpenChange,
|
|
40
42
|
stateKey,
|
|
41
43
|
ref,
|
|
42
44
|
...props
|
|
@@ -130,6 +132,9 @@ declare function ActivityItemGroup({
|
|
|
130
132
|
detail,
|
|
131
133
|
icon,
|
|
132
134
|
children,
|
|
135
|
+
defaultOpen,
|
|
136
|
+
open: controlledOpen,
|
|
137
|
+
onOpenChange,
|
|
133
138
|
stateKey,
|
|
134
139
|
ref,
|
|
135
140
|
...props
|
|
@@ -2,9 +2,27 @@ import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
|
2
2
|
import { m as ChevronRightIcon } from "../../icons-B1Qw05te.js";
|
|
3
3
|
import { Collapsible } from "../foundations/Collapsible.js";
|
|
4
4
|
import { useExpansionState } from "./ExpansionState.js";
|
|
5
|
-
import "react";
|
|
5
|
+
import * as React from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/ai-sdk/Activity.tsx
|
|
8
|
+
function usePersistedActivityOpenProps({ defaultOpen = false, open: controlledOpen, onOpenChange, stateKey }) {
|
|
9
|
+
const [persistedOpen, setPersistedOpen] = useExpansionState(stateKey, defaultOpen);
|
|
10
|
+
const handleOpenChange = React.useCallback((nextOpen, eventDetails) => {
|
|
11
|
+
onOpenChange?.(nextOpen, eventDetails);
|
|
12
|
+
if (!eventDetails.isCanceled) setPersistedOpen(nextOpen);
|
|
13
|
+
}, [onOpenChange, setPersistedOpen]);
|
|
14
|
+
if (controlledOpen !== void 0) return {
|
|
15
|
+
open: controlledOpen,
|
|
16
|
+
onOpenChange
|
|
17
|
+
};
|
|
18
|
+
return stateKey === void 0 ? {
|
|
19
|
+
defaultOpen,
|
|
20
|
+
onOpenChange
|
|
21
|
+
} : {
|
|
22
|
+
open: persistedOpen,
|
|
23
|
+
onOpenChange: handleOpenChange
|
|
24
|
+
};
|
|
25
|
+
}
|
|
8
26
|
/**
|
|
9
27
|
* A collapsible activity line that aggregates agent activity (tool calls,
|
|
10
28
|
* file edits, searches) instead of rendering every call as its own block.
|
|
@@ -25,12 +43,13 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
25
43
|
* </Activity>
|
|
26
44
|
* ```
|
|
27
45
|
*/
|
|
28
|
-
function Activity({ className, isStreaming = false, defaultOpen = false, stateKey, ref, ...props }) {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
open,
|
|
32
|
-
onOpenChange
|
|
33
|
-
|
|
46
|
+
function Activity({ className, isStreaming = false, defaultOpen = false, open: controlledOpen, onOpenChange, stateKey, ref, ...props }) {
|
|
47
|
+
const openProps = usePersistedActivityOpenProps({
|
|
48
|
+
defaultOpen,
|
|
49
|
+
open: controlledOpen,
|
|
50
|
+
onOpenChange,
|
|
51
|
+
stateKey
|
|
52
|
+
});
|
|
34
53
|
return /* @__PURE__ */ jsx(Collapsible.Root, {
|
|
35
54
|
ref,
|
|
36
55
|
className: cx("activity", className),
|
|
@@ -110,12 +129,13 @@ function ActivityContent({ className, children, ref, ...props }) {
|
|
|
110
129
|
* like a plain ActivityItem; expanding reveals chrome-free detail (shell
|
|
111
130
|
* output or a thought trace) flush inside the outer Activity log.
|
|
112
131
|
*/
|
|
113
|
-
function ActivityItemGroup({ className, action, detail, icon, children, stateKey, ref, ...props }) {
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
open,
|
|
117
|
-
onOpenChange
|
|
118
|
-
|
|
132
|
+
function ActivityItemGroup({ className, action, detail, icon, children, defaultOpen = false, open: controlledOpen, onOpenChange, stateKey, ref, ...props }) {
|
|
133
|
+
const openProps = usePersistedActivityOpenProps({
|
|
134
|
+
defaultOpen,
|
|
135
|
+
open: controlledOpen,
|
|
136
|
+
onOpenChange,
|
|
137
|
+
stateKey
|
|
138
|
+
});
|
|
119
139
|
return /* @__PURE__ */ jsxs(Collapsible.Root, {
|
|
120
140
|
ref,
|
|
121
141
|
className: cx("activity__group", className),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as CodeBlockLanguageSelectorValueProps, D as CODE_BLOCK_LANGUAGES, E as CodeBlockTitleProps, O as CodeBlockLanguage, S as CodeBlockLanguageSelectorValue, T as CodeBlockTitle, _ as CodeBlockLanguageSelectorItem, a as CodeBlockContainerProps, b as CodeBlockLanguageSelectorTrigger, c as CodeBlockCopyButton, d as CodeBlockFilenameProps, f as CodeBlockHeader, g as CodeBlockLanguageSelectorContentProps, h as CodeBlockLanguageSelectorContent, i as CodeBlockContainer, l as CodeBlockCopyButtonProps, m as CodeBlockLanguageSelector, n as CodeBlockActions, o as CodeBlockContent, p as CodeBlockHeaderProps, r as CodeBlockActionsProps, s as CodeBlockContentProps, t as CodeBlock, u as CodeBlockFilename, v as CodeBlockLanguageSelectorItemProps, w as CodeBlockProps, x as CodeBlockLanguageSelectorTriggerProps, y as CodeBlockLanguageSelectorProps } from "../../CodeBlock-
|
|
1
|
+
import { C as CodeBlockLanguageSelectorValueProps, D as CODE_BLOCK_LANGUAGES, E as CodeBlockTitleProps, O as CodeBlockLanguage, S as CodeBlockLanguageSelectorValue, T as CodeBlockTitle, _ as CodeBlockLanguageSelectorItem, a as CodeBlockContainerProps, b as CodeBlockLanguageSelectorTrigger, c as CodeBlockCopyButton, d as CodeBlockFilenameProps, f as CodeBlockHeader, g as CodeBlockLanguageSelectorContentProps, h as CodeBlockLanguageSelectorContent, i as CodeBlockContainer, l as CodeBlockCopyButtonProps, m as CodeBlockLanguageSelector, n as CodeBlockActions, o as CodeBlockContent, p as CodeBlockHeaderProps, r as CodeBlockActionsProps, s as CodeBlockContentProps, t as CodeBlock, u as CodeBlockFilename, v as CodeBlockLanguageSelectorItemProps, w as CodeBlockProps, x as CodeBlockLanguageSelectorTriggerProps, y as CodeBlockLanguageSelectorProps } from "../../CodeBlock-C380GD5t.js";
|
|
2
2
|
export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockActionsProps, CodeBlockContainer, CodeBlockContainerProps, CodeBlockContent, CodeBlockContentProps, CodeBlockCopyButton, CodeBlockCopyButtonProps, CodeBlockFilename, CodeBlockFilenameProps, CodeBlockHeader, CodeBlockHeaderProps, type CodeBlockLanguage, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorContentProps, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorItemProps, CodeBlockLanguageSelectorProps, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorTriggerProps, CodeBlockLanguageSelectorValue, CodeBlockLanguageSelectorValueProps, CodeBlockProps, CodeBlockTitle, CodeBlockTitleProps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as CODE_BLOCK_LANGUAGES, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../../CodeBlock-
|
|
1
|
+
import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as CODE_BLOCK_LANGUAGES, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../../CodeBlock-Bk4nn7l-.js";
|
|
2
2
|
export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorValue, CodeBlockTitle };
|
|
@@ -8,8 +8,6 @@ import * as React from "react";
|
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { cjk } from "@streamdown/cjk";
|
|
10
10
|
import { code } from "@streamdown/code";
|
|
11
|
-
import { math } from "@streamdown/math";
|
|
12
|
-
import { mermaid } from "@streamdown/mermaid";
|
|
13
11
|
import { Streamdown } from "streamdown";
|
|
14
12
|
//#region src/components/ai-sdk/Message.tsx
|
|
15
13
|
/**
|
|
@@ -56,9 +54,7 @@ function MessageContent({ className, children, ref, ...props }) {
|
|
|
56
54
|
}
|
|
57
55
|
const streamdownPlugins = {
|
|
58
56
|
cjk,
|
|
59
|
-
code
|
|
60
|
-
math,
|
|
61
|
-
mermaid
|
|
57
|
+
code
|
|
62
58
|
};
|
|
63
59
|
const messageResponseComponents = { img: "img" };
|
|
64
60
|
const MessageResponse = React.memo(function MessageResponse({ className, components, ...props }) {
|
|
@@ -21,11 +21,16 @@ declare function MessageScroller({
|
|
|
21
21
|
...props
|
|
22
22
|
}: MessageScrollerProps): React.JSX.Element;
|
|
23
23
|
declare function MessageScrollerViewport({
|
|
24
|
+
"aria-label": ariaLabel,
|
|
24
25
|
className,
|
|
26
|
+
role,
|
|
27
|
+
tabIndex,
|
|
25
28
|
...props
|
|
26
29
|
}: MessageScrollerViewportProps): React.JSX.Element;
|
|
27
30
|
declare function MessageScrollerContent({
|
|
31
|
+
"aria-relevant": ariaRelevant,
|
|
28
32
|
className,
|
|
33
|
+
role,
|
|
29
34
|
...props
|
|
30
35
|
}: MessageScrollerContentProps): React.JSX.Element;
|
|
31
36
|
declare function MessageScrollerItem({
|