@mcp-b/react-components 0.44.0 → 0.45.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/{AgentToolRunsContext-daY67hFM.d.ts → AgentToolRunsContext-jtmveaRE.d.ts} +8 -7
- package/dist/{CodeBlock-Dl7a3Wqo.js → CodeBlock-8K1p1BDU.js} +1 -1
- package/dist/{FileTree-Uu3ZnW1u.js → FileTree-QTP57Qz4.js} +1 -1
- package/dist/{ResponsiveSidebarShell-DOXd5T-d.d.ts → ResponsiveSidebarShell-BTVPxLJK.d.ts} +12 -0
- package/dist/{SetupChecklist-DOp-zqjh.js → SetupChecklist-CZeToAbu.js} +1 -1
- package/dist/{ThinkChat-BES_3Mb-.js → ThinkChat-CWMcl79Q.js} +3 -21
- package/dist/{Workspace-F3raHdYV.d.ts → Workspace-jdVZ9S0a.d.ts} +1 -1
- package/dist/{WorkspaceFile-BLaFmMrt.d.ts → WorkspaceFile-Dq-GC0_T.d.ts} +3 -1
- package/dist/{WorkspaceFileView-BublZXky.js → WorkspaceFileView-DJ8Oxz57.js} +3 -3
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.js +18 -13
- package/dist/components/agents-sdk/AgentEvent.d.ts +42 -0
- package/dist/components/agents-sdk/AgentEvent.js +96 -0
- package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
- package/dist/components/agents-sdk/AgentToolRunsContext.js +11 -7
- package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
- package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
- package/dist/components/agents-sdk/BrowserReplay.js +2 -2
- package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
- package/dist/components/agents-sdk/ManagerOffice.d.ts +104 -10
- package/dist/components/agents-sdk/ManagerOffice.js +1171 -147
- package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
- package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.js +4 -4
- package/dist/components/agents-sdk/McpServerPicker.js +3 -3
- package/dist/components/agents-sdk/ModelSelector.js +4 -4
- package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
- package/dist/components/agents-sdk/SubagentRunDetails.js +1 -1
- package/dist/components/agents-sdk/SubagentRunIndicator.d.ts +21 -3
- package/dist/components/agents-sdk/SubagentRunIndicator.js +56 -6
- package/dist/components/agents-sdk/SubagentRunSelector.js +5 -12
- package/dist/components/agents-sdk/ThinkChat.d.ts +1 -2
- package/dist/components/agents-sdk/ThinkChat.js +1 -1
- package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
- package/dist/components/agents-sdk/ThinkChatActivitySummary.js +1 -1
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +3 -3
- package/dist/components/agents-sdk/ThinkExecutionRun.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
- package/dist/components/agents-sdk/ThinkFullApp.d.ts +15 -5
- package/dist/components/agents-sdk/ThinkFullApp.js +51 -5
- package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
- package/dist/components/agents-sdk/ThinkPendingApproval.js +1 -1
- package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +3 -3
- package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +4 -4
- package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineLibrary.js +4 -4
- package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
- package/dist/components/agents-sdk/ThinkSidepanel.d.ts +22 -4
- package/dist/components/agents-sdk/ThinkSidepanel.js +69 -30
- package/dist/components/agents-sdk/ThinkThreadPicker.js +5 -5
- package/dist/components/agents-sdk/Workspace.d.ts +1 -1
- package/dist/components/agents-sdk/Workspace.js +14 -4
- package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
- package/dist/components/agents-sdk/WorkspaceFile.d.ts +2 -2
- package/dist/components/agents-sdk/WorkspaceFile.js +18 -1
- package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
- package/dist/components/agents-sdk/WorkspaceMountManager.js +4 -21
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
- package/dist/components/ai-sdk/Approval.js +2 -2
- package/dist/components/ai-sdk/Artifact.js +1 -1
- package/dist/components/ai-sdk/ChainOfThought.js +1 -1
- package/dist/components/ai-sdk/Checkpoint.js +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
- package/dist/components/ai-sdk/Context.js +1 -1
- package/dist/components/ai-sdk/Conversation.js +1 -1
- package/dist/components/ai-sdk/Goal.js +2 -2
- package/dist/components/ai-sdk/InlineCitation.js +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.js +2 -2
- package/dist/components/ai-sdk/MessageScroller.js +1 -1
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
- package/dist/components/ai-sdk/Plan.js +2 -2
- package/dist/components/ai-sdk/PromptInput.js +3 -3
- package/dist/components/ai-sdk/Queue.js +2 -2
- package/dist/components/ai-sdk/Reasoning.js +2 -2
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.js +1 -1
- package/dist/components/ai-sdk/ToolInvocation.js +1 -1
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.js +2 -2
- package/dist/components/extension/ConversationTabPicker.js +2 -2
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/Collapsible.js +1 -1
- package/dist/components/foundations/ContextMenu.js +1 -1
- package/dist/components/foundations/Menubar.js +1 -1
- package/dist/components/foundations/SearchField.js +1 -1
- package/dist/components/foundations/Select.js +1 -1
- package/dist/components/foundations/Stepper.js +1 -1
- package/dist/components/foundations/Toast.js +1 -1
- package/dist/components/foundations/ToggleGroup.d.ts +1 -1
- package/dist/components/foundations/ToggleGroup.js +1 -1
- package/dist/components/foundations/icons.js +1 -1
- package/dist/components/general-purpose/Commit.js +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
- package/dist/components/general-purpose/PricingPlanCard.js +2 -2
- package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
- package/dist/components/general-purpose/ResizableSidePanel.js +1 -1
- package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -1
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +72 -22
- package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
- package/dist/components/general-purpose/SetupChecklist.js +1 -1
- package/dist/components/general-purpose/Terminal.js +2 -2
- package/dist/components/general-purpose/TestResults.js +1 -1
- package/dist/components/general-purpose/ThemeModeControl.js +2 -2
- package/dist/components/general-purpose/WebPreview.js +3 -3
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.js +4 -4
- package/dist/{copy-button-DHhf-J1d.js → copy-button-BpA7wQva.js} +1 -1
- package/dist/{format-DB2mX9DA.js → format-COCyV98Z.js} +23 -1
- package/dist/{progress-ring-BEocM1e3.js → progress-ring-Cgii90dC.js} +1 -1
- package/dist/styles/agent-event.css +14 -0
- package/dist/styles/avatar.css +2 -1
- package/dist/styles/base.css +4 -0
- package/dist/styles/button.css +10 -0
- package/dist/styles/index.css +1 -0
- package/dist/styles/manager-office.css +1303 -70
- package/dist/styles/message-scroller.css +5 -0
- package/dist/styles/responsive-sidebar-shell.css +47 -0
- package/dist/styles/subagent-run.css +29 -19
- package/dist/styles/think-full-app.css +139 -4
- package/dist/styles/think-sidepanel.css +0 -5
- package/dist/styles/think-thread-picker.css +13 -12
- package/dist/styles/workspace-mount-manager.css +0 -22
- package/package.json +8 -8
- package/dist/{icons-Dw-im7lg.js → icons-DbrksZyY.js} +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { A as McpIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-
|
|
2
|
+
import { A as McpIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
-
import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
5
4
|
import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
|
|
5
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
6
6
|
import { DescriptionList } from "../foundations/DescriptionList.js";
|
|
7
7
|
import { n as getMcpServerProjection } from "../../mcp-server-SD_S-IpB.js";
|
|
8
8
|
import * as React from "react";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CUSTOM_MCP_SERVER_CARD } from "../../utils/mcp-server-catalog.js";
|
|
2
2
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
-
import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
5
4
|
import { Field } from "../foundations/Field.js";
|
|
6
5
|
import { Form } from "../foundations/Form.js";
|
|
6
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
7
7
|
import { Fieldset } from "../foundations/Fieldset.js";
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { CUSTOM_MCP_SERVER_CARD } from "../../utils/mcp-server-catalog.js";
|
|
2
2
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
3
|
-
import { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-
|
|
3
|
+
import { V as PlusIcon, et as WarningIcon, nt as XIcon, o as ArrowUpRightIcon, q as SpinnerIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
|
|
4
4
|
import { Button } from "../foundations/Button.js";
|
|
5
|
+
import { AgentAttention, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
|
|
5
6
|
import { IconButton } from "../foundations/IconButton.js";
|
|
6
7
|
import { Dialog } from "../foundations/Dialog.js";
|
|
7
|
-
import {
|
|
8
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
8
9
|
import { Separator } from "../foundations/Separator.js";
|
|
9
|
-
import { AgentAttention, AgentAttentionBody, AgentAttentionHeader } from "../ai-sdk/AgentAttention.js";
|
|
10
10
|
import { AppIcon } from "../foundations/AppIcon.js";
|
|
11
|
-
import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
|
|
12
11
|
import { SearchField } from "../foundations/SearchField.js";
|
|
12
|
+
import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
|
|
13
13
|
import { McpServerSetupDialog } from "./McpServerPicker.js";
|
|
14
14
|
import * as React from "react";
|
|
15
15
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-
|
|
2
|
+
import { N as MinusIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { buttonVariants } from "../foundations/Button.js";
|
|
4
|
-
import { Dialog } from "../foundations/Dialog.js";
|
|
5
|
-
import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
6
4
|
import { Menu } from "../foundations/Menu.js";
|
|
5
|
+
import { Dialog } from "../foundations/Dialog.js";
|
|
6
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
7
7
|
import { PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger } from "../ai-sdk/PromptInput.js";
|
|
8
8
|
import { n as getMcpServerProjection, t as McpServerIcon } from "../../mcp-server-SD_S-IpB.js";
|
|
9
9
|
import { McpConnectorForm } from "./McpConnectorForm.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { W as SearchIcon, f as ChevronDownIcon } from "../../icons-
|
|
2
|
+
import { W as SearchIcon, f as ChevronDownIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
+
import { Autocomplete } from "../foundations/Autocomplete.js";
|
|
4
5
|
import { Dialog } from "../foundations/Dialog.js";
|
|
5
|
-
import {
|
|
6
|
+
import { c as titleCase } from "../../format-COCyV98Z.js";
|
|
6
7
|
import { Separator } from "../foundations/Separator.js";
|
|
7
|
-
import { EmptyState } from "../foundations/EmptyState.js";
|
|
8
8
|
import { ScrollArea } from "../foundations/ScrollArea.js";
|
|
9
|
-
import { Autocomplete } from "../foundations/Autocomplete.js";
|
|
10
9
|
import { t as ProviderLogo } from "../../provider-logos-zjZycgV6.js";
|
|
10
|
+
import { EmptyState } from "../foundations/EmptyState.js";
|
|
11
11
|
import * as React from "react";
|
|
12
12
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { createPortal } from "react-dom";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { ThinkExecutionApproval, ThinkPendingApproval, getPausedExecution } from "./ThinkPendingApproval.js";
|
|
3
2
|
import { ToolApproval } from "../ai-sdk/ToolApproval.js";
|
|
3
|
+
import { ThinkExecutionApproval, ThinkPendingApproval, getPausedExecution } from "./ThinkPendingApproval.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
import { isToolUIPart } from "ai";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as McpIcon, c as BoxIcon } from "../../icons-
|
|
1
|
+
import { A as McpIcon, c as BoxIcon } from "../../icons-DbrksZyY.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
//#region src/components/agents-sdk/PromptInputCommands.tsx
|
|
4
4
|
/** Project whole upstream Agents MCP state into composer mention commands. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { n as clamp } from "../../format-
|
|
2
|
+
import { n as clamp } from "../../format-COCyV98Z.js";
|
|
3
3
|
import { Progress } from "../foundations/Progress.js";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -3,8 +3,15 @@ import { AgentToolRunPart, AgentToolRunState } from "agents/agent-tools";
|
|
|
3
3
|
|
|
4
4
|
//#region src/components/agents-sdk/SubagentRunIndicator.d.ts
|
|
5
5
|
declare function getSubagentRunName(run: AgentToolRunState): string;
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* One line of status for a retained run, derived from upstream's whole
|
|
8
|
+
* record: the latest progress report or streamed text while it runs, the
|
|
9
|
+
* report's first line once it finished, the failure otherwise. Rendered under
|
|
10
|
+
* the run's name wherever the run labels itself, and as its tooltip. Every
|
|
11
|
+
* source is cut in one place here, because a host's progress message, error,
|
|
12
|
+
* and report are all unbounded prose.
|
|
13
|
+
*/
|
|
14
|
+
declare function getSubagentRunStatusText(run: AgentToolRunState): string;
|
|
8
15
|
interface SubagentRunIndicatorProps<Part extends AgentToolRunPart = AgentToolRunPart> extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
9
16
|
/** Complete retained-run state returned by `useAgentToolEvents()`. */
|
|
10
17
|
run: AgentToolRunState<Part>;
|
|
@@ -18,5 +25,16 @@ declare function SubagentRunIndicator<Part extends AgentToolRunPart = AgentToolR
|
|
|
18
25
|
}: SubagentRunIndicatorProps<Part> & {
|
|
19
26
|
ref?: React.Ref<HTMLSpanElement>;
|
|
20
27
|
}): React.JSX.Element;
|
|
28
|
+
/**
|
|
29
|
+
* How a run labels itself anywhere it appears: its Nanite, its name over its
|
|
30
|
+
* live status line, and its status mark. The selector chip and the drill-in's
|
|
31
|
+
* top bar share this so what a person clicks and what they land on read the
|
|
32
|
+
* same. The caller owns the surrounding row (a link, a bar title).
|
|
33
|
+
*/
|
|
34
|
+
declare function SubagentRunLabel<Part extends AgentToolRunPart = AgentToolRunPart>({
|
|
35
|
+
run
|
|
36
|
+
}: {
|
|
37
|
+
/** Complete retained-run state returned by `useAgentToolEvents()`. */run: AgentToolRunState<Part>;
|
|
38
|
+
}): React.JSX.Element;
|
|
21
39
|
//#endregion
|
|
22
|
-
export { SubagentRunIndicator, SubagentRunIndicatorProps, getSubagentRunName,
|
|
40
|
+
export { SubagentRunIndicator, SubagentRunIndicatorProps, SubagentRunLabel, getSubagentRunName, getSubagentRunStatusText };
|
|
@@ -1,21 +1,48 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { Y as StopIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-
|
|
2
|
+
import { Y as StopIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
|
|
3
|
+
import { r as firstLine, s as textLines } from "../../format-COCyV98Z.js";
|
|
4
|
+
import { NaniteMark } from "../nanites/NaniteScene.js";
|
|
3
5
|
import "react";
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
7
|
//#region src/components/agents-sdk/SubagentRunIndicator.tsx
|
|
6
8
|
function getSubagentRunName(run) {
|
|
7
9
|
return run.display?.name ?? run.agentType;
|
|
8
10
|
}
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The last thing the child said, read off the run's live stream projection —
|
|
13
|
+
* what a running run shows before (or between) its progress reports. The
|
|
14
|
+
* projection's part type only guarantees `type`, so the text is narrowed here
|
|
15
|
+
* rather than assumed.
|
|
16
|
+
*/
|
|
17
|
+
function lastStreamedLine(run) {
|
|
18
|
+
for (let index = run.parts.length - 1; index >= 0; index -= 1) {
|
|
19
|
+
const part = run.parts[index];
|
|
20
|
+
if (part.type !== "text" || !("text" in part) || typeof part.text !== "string") continue;
|
|
21
|
+
const line = textLines(part.text).at(-1);
|
|
22
|
+
if (line) return line;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Where a run's status line comes from, before it is cut to one line. */
|
|
26
|
+
function statusSource(run) {
|
|
11
27
|
switch (run.status) {
|
|
12
|
-
case "running": return run.progress?.message ?? run.progress?.phase ?? "Running";
|
|
28
|
+
case "running": return run.progress?.message ?? run.progress?.phase ?? lastStreamedLine(run) ?? "Running";
|
|
13
29
|
case "completed": return run.summary ?? "Completed";
|
|
14
30
|
case "error": return run.error ?? "Agent run failed";
|
|
15
31
|
case "aborted": return run.error ?? "Agent run stopped";
|
|
16
32
|
case "interrupted": return run.error ?? (run.childStillRunning ? "Interrupted · agent may still be running" : "Interrupted");
|
|
17
33
|
}
|
|
18
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* One line of status for a retained run, derived from upstream's whole
|
|
37
|
+
* record: the latest progress report or streamed text while it runs, the
|
|
38
|
+
* report's first line once it finished, the failure otherwise. Rendered under
|
|
39
|
+
* the run's name wherever the run labels itself, and as its tooltip. Every
|
|
40
|
+
* source is cut in one place here, because a host's progress message, error,
|
|
41
|
+
* and report are all unbounded prose.
|
|
42
|
+
*/
|
|
43
|
+
function getSubagentRunStatusText(run) {
|
|
44
|
+
return firstLine(statusSource(run));
|
|
45
|
+
}
|
|
19
46
|
/** Decorative status mark derived from a whole upstream retained-run record. */
|
|
20
47
|
function SubagentRunIndicator({ className, run, ref, ...props }) {
|
|
21
48
|
const icon = run.status === "running" ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : run.status === "completed" ? /* @__PURE__ */ jsx(CheckIcon, {}) : run.status === "aborted" ? /* @__PURE__ */ jsx(StopIcon, {}) : /* @__PURE__ */ jsx(WarningIcon, {});
|
|
@@ -29,5 +56,28 @@ function SubagentRunIndicator({ className, run, ref, ...props }) {
|
|
|
29
56
|
children: icon
|
|
30
57
|
});
|
|
31
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* How a run labels itself anywhere it appears: its Nanite, its name over its
|
|
61
|
+
* live status line, and its status mark. The selector chip and the drill-in's
|
|
62
|
+
* top bar share this so what a person clicks and what they land on read the
|
|
63
|
+
* same. The caller owns the surrounding row (a link, a bar title).
|
|
64
|
+
*/
|
|
65
|
+
function SubagentRunLabel({ run }) {
|
|
66
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
67
|
+
/* @__PURE__ */ jsx(NaniteMark, { index: run.order }),
|
|
68
|
+
/* @__PURE__ */ jsxs("span", {
|
|
69
|
+
className: "subagent-run__text",
|
|
70
|
+
"data-status": run.status,
|
|
71
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
72
|
+
className: "subagent-run__title sigvelo-truncate",
|
|
73
|
+
children: getSubagentRunName(run)
|
|
74
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
75
|
+
className: "subagent-run__status sigvelo-truncate",
|
|
76
|
+
children: getSubagentRunStatusText(run)
|
|
77
|
+
})]
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ jsx(SubagentRunIndicator, { run })
|
|
80
|
+
] });
|
|
81
|
+
}
|
|
32
82
|
//#endregion
|
|
33
|
-
export { SubagentRunIndicator, getSubagentRunName,
|
|
83
|
+
export { SubagentRunIndicator, SubagentRunLabel, getSubagentRunName, getSubagentRunStatusText };
|
|
@@ -2,8 +2,7 @@ import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
|
2
2
|
import { buttonVariants } from "../foundations/Button.js";
|
|
3
3
|
import { Tooltip } from "../foundations/Tooltip.js";
|
|
4
4
|
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
5
|
-
import {
|
|
6
|
-
import { NaniteMark } from "../nanites/NaniteScene.js";
|
|
5
|
+
import { SubagentRunLabel, getSubagentRunName, getSubagentRunStatusText } from "./SubagentRunIndicator.js";
|
|
7
6
|
import "react";
|
|
8
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
8
|
//#region src/components/agents-sdk/SubagentRunSelector.tsx
|
|
@@ -19,10 +18,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
19
18
|
*/
|
|
20
19
|
function SubagentRunSelector({ className, render, run, tooltip, ref, "aria-label": ariaLabel, ...props }) {
|
|
21
20
|
const name = getSubagentRunName(run);
|
|
22
|
-
const link = /* @__PURE__ */
|
|
21
|
+
const link = /* @__PURE__ */ jsx(NavigationLink, {
|
|
23
22
|
ref,
|
|
24
23
|
render,
|
|
25
24
|
"data-slot": "subagent-run-selector",
|
|
25
|
+
"data-status": run.status,
|
|
26
26
|
className: cx(buttonVariants({
|
|
27
27
|
variant: "ghost",
|
|
28
28
|
color: "neutral",
|
|
@@ -30,16 +30,9 @@ function SubagentRunSelector({ className, render, run, tooltip, ref, "aria-label
|
|
|
30
30
|
}), "subagent-run__selector", className),
|
|
31
31
|
"aria-label": ariaLabel ?? `Open ${name}, ${run.status}`,
|
|
32
32
|
...props,
|
|
33
|
-
children:
|
|
34
|
-
/* @__PURE__ */ jsx(NaniteMark, { index: run.order }),
|
|
35
|
-
/* @__PURE__ */ jsx("span", {
|
|
36
|
-
className: "subagent-run__title sigvelo-truncate",
|
|
37
|
-
children: name
|
|
38
|
-
}),
|
|
39
|
-
/* @__PURE__ */ jsx(SubagentRunIndicator, { run })
|
|
40
|
-
]
|
|
33
|
+
children: /* @__PURE__ */ jsx(SubagentRunLabel, { run })
|
|
41
34
|
});
|
|
42
|
-
const tooltipContent = tooltip === false ? null : tooltip ??
|
|
35
|
+
const tooltipContent = tooltip === false ? null : tooltip ?? getSubagentRunStatusText(run);
|
|
43
36
|
if (!tooltipContent) return link;
|
|
44
37
|
return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
|
|
45
38
|
render: link,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as AgentMessageRenderPartContext } from "../../AgentMessageParts-C7L-Mv9U.js";
|
|
2
2
|
import { K as PromptInputMessage } from "../../PromptInput-BRX7FhjH.js";
|
|
3
3
|
import { r as AgentChatProps } from "../../AgentChat-Bibfj7u1.js";
|
|
4
|
-
import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-
|
|
4
|
+
import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-jtmveaRE.js";
|
|
5
5
|
import { o as UseSessionCompactionResult } from "../../SessionCompaction-CmTJFpzj.js";
|
|
6
6
|
import { o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, t as ThinkChatActivity } from "../../ThinkChatActivity-CgvmTXXB.js";
|
|
7
7
|
import { i as ThinkChatValue } from "../../ThinkChatContext-COIgzkYp.js";
|
|
@@ -124,7 +124,6 @@ declare function ThinkChatRoot<State = unknown, MessageT extends UIMessage = UIM
|
|
|
124
124
|
* card) — see README "App-specific tools" and the Custom Tool Panel story.
|
|
125
125
|
*/
|
|
126
126
|
declare function ThinkChatMessages<State = unknown, MessageT extends UIMessage = UIMessage>({
|
|
127
|
-
composerHeader,
|
|
128
127
|
draft,
|
|
129
128
|
loading,
|
|
130
129
|
renderPart,
|
|
@@ -1,2 +1,2 @@
|
|
|
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-
|
|
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-CWMcl79Q.js";
|
|
2
2
|
export { ThinkChat, ThinkChatMessages, ThinkChatProvider, ThinkChatRoot, thinkPendingExecutionApprovalsQueryOptions, useThinkChat, useThinkPendingExecutionApprovals };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
|
|
2
|
-
import { Button } from "../foundations/Button.js";
|
|
3
|
-
import { MessageResponse } from "../ai-sdk/Message.js";
|
|
4
1
|
import { useExpansionState } from "../ai-sdk/ExpansionState.js";
|
|
5
2
|
import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "../ai-sdk/Activity.js";
|
|
3
|
+
import { Button } from "../foundations/Button.js";
|
|
4
|
+
import { MessageResponse } from "../ai-sdk/Message.js";
|
|
6
5
|
import { useOptionalAgentToolRuns } from "./AgentToolRunsContext.js";
|
|
6
|
+
import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
|
|
7
7
|
import { SubagentRunList } from "./SubagentRunList.js";
|
|
8
8
|
import { useOptionalThinkChatLive } from "./ThinkChatContext.js";
|
|
9
9
|
import { isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartWorking, isSessionContextToolPart, isSkillToolPart, isThinkChatActivityPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as capitalize } from "../../format-
|
|
1
|
+
import { t as capitalize } from "../../format-COCyV98Z.js";
|
|
2
2
|
import { getToolDisplayName } from "../ai-sdk/ToolPart.js";
|
|
3
3
|
import { t as summarizeToolInput } from "../../summarize-tool-input-CqTcGRYy.js";
|
|
4
4
|
import { displayUrl, isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartFailed, isPartWorking, isSessionContextToolFailure, isSessionContextToolPart, isSkillToolPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
|
|
2
1
|
import { ActivityOutput, ActivityPanel } from "../ai-sdk/Activity.js";
|
|
3
2
|
import { Tabs } from "../foundations/Tabs.js";
|
|
3
|
+
import { o as formatUnknownValue } from "../../format-COCyV98Z.js";
|
|
4
|
+
import { t as CodeBlock } from "../../CodeBlock-8K1p1BDU.js";
|
|
4
5
|
import { BrowserLiveView } from "./BrowserLiveView.js";
|
|
5
|
-
import { t as CodeBlock } from "../../CodeBlock-Dl7a3Wqo.js";
|
|
6
6
|
import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
|
|
7
7
|
import { displayUrl, isSessionContextToolFailure } from "./ThinkChatToolParts.js";
|
|
8
8
|
import * as React from "react";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { S as FileIcon, T as InfoIcon } from "../../icons-
|
|
3
|
-
import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
|
|
2
|
+
import { S as FileIcon, T as InfoIcon } from "../../icons-DbrksZyY.js";
|
|
4
3
|
import { Activity, ActivityContent, ActivityItemGroup, ActivityOutput, ActivityTrigger } from "../ai-sdk/Activity.js";
|
|
5
|
-
import {
|
|
4
|
+
import { o as formatUnknownValue } from "../../format-COCyV98Z.js";
|
|
6
5
|
import { DescriptionList } from "../foundations/DescriptionList.js";
|
|
6
|
+
import { EmptyState } from "../foundations/EmptyState.js";
|
|
7
7
|
import { formatThinkExecutionTimestamp, getThinkExecutionRunError, getThinkExecutionRunId, getThinkExecutionRunKindLabel, getThinkExecutionRunProgressedAt, getThinkExecutionRunProgressedLabel, getThinkExecutionRunTitle, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
|
|
8
8
|
import { ThinkExecutionStatus } from "./ThinkExecutionStatus.js";
|
|
9
9
|
import "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as capitalize } from "../../format-
|
|
1
|
+
import { t as capitalize } from "../../format-COCyV98Z.js";
|
|
2
2
|
//#region src/components/agents-sdk/ThinkExecutionRun.ts
|
|
3
3
|
/** Narrows the direct upstream execution union without wrapping either record. */
|
|
4
4
|
function isThinkSubmissionRun(run) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { R as PauseIcon, T as InfoIcon, d as CheckIcon, nt as XIcon, q as SpinnerIcon } from "../../icons-
|
|
2
|
+
import { R as PauseIcon, T as InfoIcon, d as CheckIcon, nt as XIcon, q as SpinnerIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { Tooltip } from "../foundations/Tooltip.js";
|
|
4
4
|
import { formatThinkExecutionRunProgress, formatThinkExecutionStatus, getThinkExecutionRunKindLabel, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone, getThinkExecutionRunTitle } from "./ThinkExecutionRun.js";
|
|
5
5
|
import "react";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { U as RefreshIcon, et as WarningIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-
|
|
2
|
+
import { U as RefreshIcon, et as WarningIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { buttonVariants } from "../foundations/Button.js";
|
|
4
4
|
import { IconButton } from "../foundations/IconButton.js";
|
|
5
|
-
import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
6
|
-
import { EmptyState } from "../foundations/EmptyState.js";
|
|
7
5
|
import { Menu } from "../foundations/Menu.js";
|
|
6
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
8
7
|
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
8
|
+
import { EmptyState } from "../foundations/EmptyState.js";
|
|
9
9
|
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
10
10
|
import { getThinkExecutionRunAccessibleName, getThinkExecutionRunId, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
|
|
11
11
|
import { ThinkExecutionRunSummary } from "./ThinkExecutionStatus.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { l as WorkspaceNavigationAdapter } from "../../WorkspaceLink-Bh9-Jo1r.js";
|
|
2
|
-
import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-
|
|
2
|
+
import { n as AgentToolEventsValue } from "../../AgentToolRunsContext-jtmveaRE.js";
|
|
3
|
+
import { n as ResponsiveSidebarShell, t as AppBarSlots } from "../../ResponsiveSidebarShell-BTVPxLJK.js";
|
|
3
4
|
import { n as McpPluginCatalogProps } from "../../McpPluginCatalog-mbGw8FTu.js";
|
|
4
5
|
import { ThinkChatMessagesProps } from "./ThinkChat.js";
|
|
5
|
-
import { n as ResponsiveSidebarShell, t as AppBarSlots } from "../../ResponsiveSidebarShell-DOXd5T-d.js";
|
|
6
6
|
import { ThinkThreadStatusSummary } from "./ThinkThreadPicker.js";
|
|
7
|
-
import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-
|
|
8
|
-
import { v as WorkspaceSource } from "../../Workspace-
|
|
7
|
+
import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-Dq-GC0_T.js";
|
|
8
|
+
import { v as WorkspaceSource } from "../../Workspace-jdVZ9S0a.js";
|
|
9
9
|
import { t as ThinkAgent } from "../../think-agent-Cip5KAPj.js";
|
|
10
10
|
import * as React from "react";
|
|
11
11
|
import { UIMessage } from "ai";
|
|
@@ -70,8 +70,11 @@ interface ThinkFullAppConversation<AgentT extends ThinkFullAppAgent<State>, Stat
|
|
|
70
70
|
* The app owns the subscription — mounted beside the `useAgent` call, since
|
|
71
71
|
* the server replays retained runs once per socket connect — so a run-detail
|
|
72
72
|
* route can read the same projection. ThinkFullApp never subscribes itself.
|
|
73
|
+
*
|
|
74
|
+
* Omit it for a connection that spawns no runs — a delegated run's own
|
|
75
|
+
* socket carries none — rather than passing an empty stand-in projection.
|
|
73
76
|
*/
|
|
74
|
-
agentTools
|
|
77
|
+
agentTools?: AgentToolEventsValue<MessageT["parts"][number]>;
|
|
75
78
|
}
|
|
76
79
|
interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unknown, MessageT extends UIMessage = UIMessage> extends React.HTMLAttributes<HTMLDivElement> {
|
|
77
80
|
/**
|
|
@@ -106,6 +109,12 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
|
|
|
106
109
|
* Use the render form to close the compact drawer after selecting a thread.
|
|
107
110
|
*/
|
|
108
111
|
threadSidebar?: React.ComponentProps<typeof ResponsiveSidebarShell>["sidebar"];
|
|
112
|
+
/**
|
|
113
|
+
* Place the wide-layout thread toggle. The thread rail owns it by default;
|
|
114
|
+
* hosts that compose their own rail header may keep the shell fallback in
|
|
115
|
+
* the main bar and render `closeSidebar` themselves.
|
|
116
|
+
*/
|
|
117
|
+
sidebarTogglePlacement?: React.ComponentProps<typeof ResponsiveSidebarShell>["sidebarTogglePlacement"];
|
|
109
118
|
/**
|
|
110
119
|
* Visible surface. Omit for internal state. A controlled `view` naming a
|
|
111
120
|
* panel that does not exist renders the conversation alone — it is never
|
|
@@ -135,6 +144,7 @@ declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = u
|
|
|
135
144
|
ref,
|
|
136
145
|
renderAgentToolRunLink,
|
|
137
146
|
sourceKey,
|
|
147
|
+
sidebarTogglePlacement,
|
|
138
148
|
style,
|
|
139
149
|
threadSidebar,
|
|
140
150
|
threadStatusSummary,
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { S as FileIcon, c as BoxIcon } from "../../icons-
|
|
2
|
+
import { S as FileIcon, c as BoxIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-DbrksZyY.js";
|
|
3
|
+
import { IconButton } from "../foundations/IconButton.js";
|
|
4
|
+
import { Menu } from "../foundations/Menu.js";
|
|
3
5
|
import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
|
|
4
6
|
import { ResizableSidePanel } from "../general-purpose/ResizableSidePanel.js";
|
|
5
7
|
import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
|
|
6
|
-
import { McpPluginCatalog } from "./McpPluginCatalog.js";
|
|
7
8
|
import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DtH66bAY.js";
|
|
8
|
-
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-
|
|
9
|
+
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-CWMcl79Q.js";
|
|
10
|
+
import { McpPluginCatalog } from "./McpPluginCatalog.js";
|
|
9
11
|
import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
|
|
10
12
|
import { ThinkThreadStatusIndicators } from "./ThinkThreadPicker.js";
|
|
11
13
|
import { useWorkspace } from "./Workspace.js";
|
|
@@ -28,6 +30,29 @@ function compactBreakPx(el) {
|
|
|
28
30
|
function isCompactApp(el) {
|
|
29
31
|
return el.getBoundingClientRect().width <= compactBreakPx(el);
|
|
30
32
|
}
|
|
33
|
+
function ThinkFullAppCompactViewMenu({ activeView, onViewChange, views }) {
|
|
34
|
+
return /* @__PURE__ */ jsx("div", {
|
|
35
|
+
className: "think-full-app__compact-view-menu",
|
|
36
|
+
children: /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(IconButton, {
|
|
37
|
+
label: "More views",
|
|
38
|
+
tooltip: "More views",
|
|
39
|
+
render: /* @__PURE__ */ jsx(Menu.Trigger, { unstyled: true }),
|
|
40
|
+
variant: "ghost",
|
|
41
|
+
color: "neutral",
|
|
42
|
+
size: "sm",
|
|
43
|
+
children: /* @__PURE__ */ jsx(EllipsisIcon, {})
|
|
44
|
+
}), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
45
|
+
side: "bottom",
|
|
46
|
+
align: "end",
|
|
47
|
+
sideOffset: 4,
|
|
48
|
+
children: /* @__PURE__ */ jsx(Menu.Popup, { children: views.map((view) => /* @__PURE__ */ jsxs(Menu.Item, {
|
|
49
|
+
"aria-current": activeView === view.id ? "page" : void 0,
|
|
50
|
+
onClick: () => onViewChange(view.id),
|
|
51
|
+
children: [view.icon, view.label]
|
|
52
|
+
}, view.id)) })
|
|
53
|
+
}) })] })
|
|
54
|
+
});
|
|
55
|
+
}
|
|
31
56
|
function WorkspacePanel({ config }) {
|
|
32
57
|
const selectedPath = config.navigation.current.destination.kind === "file" ? config.navigation.current.destination.path : null;
|
|
33
58
|
return /* @__PURE__ */ jsx(WorkspaceExplorer, {
|
|
@@ -83,7 +108,7 @@ function ThinkFullAppThreadChat({ agent, agentTools, chat, messages, renderAgent
|
|
|
83
108
|
/** Combines ThinkChat with a resizable workbench. Wide apps with a workspace
|
|
84
109
|
* open Files beside the conversation; compact (extension) widths stay on chat
|
|
85
110
|
* until a view is selected. */
|
|
86
|
-
function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewProp, messages, onViewChange, plugins, ref, renderAgentToolRunLink, sourceKey, style, threadSidebar, threadStatusSummary, view, workbenchPanels, workspace, ...props }) {
|
|
111
|
+
function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewProp, messages, onViewChange, plugins, ref, renderAgentToolRunLink, sourceKey, sidebarTogglePlacement = "sidebar", style, threadSidebar, threadStatusSummary, view, workbenchPanels, workspace, ...props }) {
|
|
87
112
|
const appRef = React.useRef(null);
|
|
88
113
|
const workbenchPanelRef = React.useRef(null);
|
|
89
114
|
const pendingPanelFocusRef = React.useRef(null);
|
|
@@ -155,7 +180,26 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
|
|
|
155
180
|
"aria-label": "App views",
|
|
156
181
|
onValueChange: (next) => updateView(next ?? "chat")
|
|
157
182
|
}) : bar?.views ?? null;
|
|
158
|
-
const
|
|
183
|
+
const compactViewMenu = bar?.views === void 0 && availableWorkbenchPanels.length ? /* @__PURE__ */ jsx(ThinkFullAppCompactViewMenu, {
|
|
184
|
+
activeView: activePanel?.id,
|
|
185
|
+
views: availableWorkbenchPanels,
|
|
186
|
+
onViewChange: updateView
|
|
187
|
+
}) : null;
|
|
188
|
+
const appBarActions = bar?.actions || compactViewMenu || viewSwitch ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
189
|
+
bar?.actions,
|
|
190
|
+
compactViewMenu,
|
|
191
|
+
viewSwitch
|
|
192
|
+
] }) : void 0;
|
|
193
|
+
const compactLeading = bar?.compactLeading !== void 0 ? bar.compactLeading : activePanel ? /* @__PURE__ */ jsx(IconButton, {
|
|
194
|
+
type: "button",
|
|
195
|
+
label: "Back to chat",
|
|
196
|
+
tooltip: "Back to chat",
|
|
197
|
+
variant: "ghost",
|
|
198
|
+
color: "neutral",
|
|
199
|
+
size: "sm",
|
|
200
|
+
onClick: () => updateView("chat"),
|
|
201
|
+
children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
|
|
202
|
+
}) : void 0;
|
|
159
203
|
const appContent = /* @__PURE__ */ jsxs(ResizableSidePanel.Root, {
|
|
160
204
|
ref: mergeRefs(appRef, ref),
|
|
161
205
|
className: cx("think-full-app", className),
|
|
@@ -228,10 +272,12 @@ function ThinkFullApp({ bar, className, conversation, defaultView: defaultViewPr
|
|
|
228
272
|
className: "think-full-app-shell",
|
|
229
273
|
sidebar: threadSidebar,
|
|
230
274
|
sidebarLabel: "threads",
|
|
275
|
+
sidebarTogglePlacement,
|
|
231
276
|
showMainLabel: "Show selected thread",
|
|
232
277
|
bar: {
|
|
233
278
|
...bar,
|
|
234
279
|
actions: appBarActions,
|
|
280
|
+
compactLeading,
|
|
235
281
|
primary: bar?.primary,
|
|
236
282
|
className: "think-full-app__app-bar",
|
|
237
283
|
label: "Workbench controls",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
3
2
|
import { ToggleGroup } from "../foundations/ToggleGroup.js";
|
|
3
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/agents-sdk/ThinkFullAppViewSwitch.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as titleCase, o as formatUnknownValue } from "../../format-COCyV98Z.js";
|
|
2
2
|
import { Approval, ApprovalCount, ApprovalDecision, ApprovalHeader, ApprovalInputPreview, ApprovalPreview, ApprovalPreviewRow, ApprovalQuestion } from "../ai-sdk/Approval.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TransitionSurface } from "../foundations/TransitionSurface.js";
|
|
2
1
|
import { AgentChatTurnError } from "../ai-sdk/AgentChatTurnError.js";
|
|
2
|
+
import { TransitionSurface } from "../foundations/TransitionSurface.js";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/agents-sdk/ThinkRecoveryNotice.tsx
|
|
5
5
|
function connectionReason(error) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { V as PlusIcon } from "../../icons-
|
|
2
|
+
import { V as PlusIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { buttonVariants } from "../foundations/Button.js";
|
|
4
4
|
import { Tooltip } from "../foundations/Tooltip.js";
|
|
5
|
-
import { t as capitalize } from "../../format-
|
|
6
|
-
import { EmptyState } from "../foundations/EmptyState.js";
|
|
5
|
+
import { t as capitalize } from "../../format-COCyV98Z.js";
|
|
7
6
|
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
7
|
+
import { EmptyState } from "../foundations/EmptyState.js";
|
|
8
8
|
import { SearchField } from "../foundations/SearchField.js";
|
|
9
9
|
import { ToggleGroup } from "../foundations/ToggleGroup.js";
|
|
10
10
|
import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
|
|
3
2
|
import { Switch } from "../foundations/Switch.js";
|
|
3
|
+
import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
|
|
4
4
|
import { ThinkRoutineRuns } from "./ThinkRoutineRuns.js";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, q as SpinnerIcon, r as ArrowLeftIcon } from "../../icons-
|
|
2
|
+
import { d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, q as SpinnerIcon, r as ArrowLeftIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
-
import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
|
|
5
4
|
import { Field } from "../foundations/Field.js";
|
|
6
5
|
import { Form } from "../foundations/Form.js";
|
|
7
6
|
import { Textarea } from "../foundations/Textarea.js";
|
|
8
|
-
import {
|
|
9
|
-
import { Fieldset } from "../foundations/Fieldset.js";
|
|
7
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
10
8
|
import { Select } from "../foundations/Select.js";
|
|
11
9
|
import { Checkbox } from "../foundations/Checkbox.js";
|
|
12
10
|
import { CheckboxGroup } from "../foundations/CheckboxGroup.js";
|
|
13
11
|
import { Combobox } from "../foundations/Combobox.js";
|
|
12
|
+
import { Fieldset } from "../foundations/Fieldset.js";
|
|
14
13
|
import { NumberField } from "../foundations/NumberField.js";
|
|
14
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
15
15
|
import * as React from "react";
|
|
16
16
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
17
17
|
//#region src/components/agents-sdk/ThinkRoutineForm.tsx
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { $ as TrashIcon, B as PlayIcon, q as SpinnerIcon, z as PencilIcon } from "../../icons-
|
|
2
|
+
import { $ as TrashIcon, B as PlayIcon, q as SpinnerIcon, z as PencilIcon } from "../../icons-DbrksZyY.js";
|
|
3
3
|
import { buttonVariants } from "../foundations/Button.js";
|
|
4
|
-
import {
|
|
5
|
-
import { EmptyState } from "../foundations/EmptyState.js";
|
|
4
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
6
5
|
import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
6
|
+
import { AlertDialog } from "../foundations/AlertDialog.js";
|
|
7
|
+
import { EmptyState } from "../foundations/EmptyState.js";
|
|
7
8
|
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
8
9
|
import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
|
|
9
|
-
import { AlertDialog } from "../foundations/AlertDialog.js";
|
|
10
10
|
import { ThinkRoutineBrowser } from "./ThinkRoutineBrowser.js";
|
|
11
11
|
import { ThinkRoutineDetail } from "./ThinkRoutineDetail.js";
|
|
12
12
|
import * as React from "react";
|