@mcp-b/react-components 0.40.0 → 0.41.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-CVO7xyLC.d.ts → AgentChat-DVr2giwD.d.ts} +1 -1
- package/dist/{AgentToolRunsContext-BCVqCtJ1.d.ts → AgentToolRunsContext-daY67hFM.d.ts} +12 -0
- package/dist/AppTopBar-ZdgmB_Lu.d.ts +97 -0
- package/dist/{CodeBlock-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
- package/dist/{FileTree-xqHYBw4g.js → FileTree-DMYRdT6R.js} +1 -1
- package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
- package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
- package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-DyGHj01E.d.ts} +1 -1
- package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
- package/dist/{ToggleGroup-_pQMyHGM.d.ts → ToggleGroup-BrQZOQn_.d.ts} +1 -1
- package/dist/Toolbar-CBOseBQr.d.ts +152 -0
- package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-D0yFwoDr.js} +2 -2
- package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
- package/dist/components/agents-sdk/AgentChat.js +41 -18
- package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
- package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
- package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
- package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
- package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
- package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
- package/dist/components/agents-sdk/BrowserReplay.js +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.js +6 -12
- package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
- package/dist/components/agents-sdk/ManagerOffice.js +662 -0
- package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
- package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
- package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
- package/dist/components/agents-sdk/McpPluginCatalog.js +80 -62
- package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
- package/dist/components/agents-sdk/McpServerPicker.js +2 -2
- package/dist/components/agents-sdk/ModelSelector.js +2 -2
- package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
- package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
- package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
- package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
- package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
- package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
- package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
- package/dist/components/agents-sdk/ThinkChat.js +1 -1
- package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
- package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
- package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
- package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +42 -37
- package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
- package/dist/components/agents-sdk/ThinkFullApp.js +113 -145
- package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineDetail.js +5 -16
- package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineLibrary.js +69 -89
- package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
- package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -2
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
- package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
- package/dist/components/ai-sdk/Approval.js +1 -1
- package/dist/components/ai-sdk/Artifact.js +1 -1
- package/dist/components/ai-sdk/ChainOfThought.d.ts +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/Conversation.js +1 -1
- package/dist/components/ai-sdk/Goal.js +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.d.ts +2 -2
- package/dist/components/ai-sdk/Message.js +25 -3
- 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 +1 -1
- package/dist/components/ai-sdk/PromptInput.js +1 -1
- package/dist/components/ai-sdk/Queue.d.ts +4 -4
- package/dist/components/ai-sdk/Queue.js +6 -15
- package/dist/components/ai-sdk/Reasoning.js +1 -1
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.d.ts +2 -2
- package/dist/components/ai-sdk/Task.js +2 -2
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.js +1 -1
- package/dist/components/extension/ConversationTabPicker.js +1 -1
- package/dist/components/foundations/Avatar.d.ts +1 -10
- package/dist/components/foundations/Avatar.js +1 -10
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/CheckboxGroup.js +1 -0
- package/dist/components/foundations/ContextMenu.js +1 -1
- package/dist/components/foundations/LinkButton.d.ts +12 -10
- package/dist/components/foundations/LinkButton.js +15 -11
- 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/Toolbar.d.ts +1 -151
- package/dist/components/foundations/icons.d.ts +2 -2
- package/dist/components/foundations/icons.js +2 -2
- package/dist/components/general-purpose/AppTopBar.d.ts +1 -90
- package/dist/components/general-purpose/AppTopBar.js +2 -1
- package/dist/components/general-purpose/Commit.d.ts +2 -2
- package/dist/components/general-purpose/Commit.js +5 -13
- package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/PricingBillingToggle.js +5 -10
- package/dist/components/general-purpose/PricingPlanCard.js +15 -14
- package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
- package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
- package/dist/components/general-purpose/SetupChecklist.js +1 -1
- package/dist/components/general-purpose/Terminal.d.ts +1 -1
- package/dist/components/general-purpose/Terminal.js +4 -12
- package/dist/components/general-purpose/TestResults.d.ts +1 -1
- package/dist/components/general-purpose/TestResults.js +8 -21
- package/dist/components/general-purpose/ThemeModeControl.js +1 -1
- package/dist/components/general-purpose/WebPreview.d.ts +1 -1
- package/dist/components/general-purpose/WebPreview.js +4 -12
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
- package/dist/components/nanites/AgentToolDetail.js +7 -7
- package/dist/components/nanites/NaniteScene.js +11 -11
- package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
- package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
- package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
- package/dist/styles/agent-attention.css +5 -5
- package/dist/styles/agent-chat.css +47 -12
- package/dist/styles/agent-tool-detail.css +2 -12
- package/dist/styles/app-icon.css +12 -18
- package/dist/styles/app-top-bar.css +32 -6
- package/dist/styles/avatar.css +6 -22
- package/dist/styles/base.css +2 -8
- package/dist/styles/browser-live-screen.css +38 -0
- package/dist/styles/browser-live-view.css +12 -4
- package/dist/styles/browser-run-panel.css +20 -18
- package/dist/styles/chatgpt-sign-in-screen.css +5 -5
- package/dist/styles/commit.css +24 -1
- package/dist/styles/environment-variables.css +3 -0
- package/dist/styles/index.css +5 -4
- package/dist/styles/manager-office.css +486 -0
- package/dist/styles/mcp-plugin-catalog.css +39 -35
- package/dist/styles/mcp-server-picker.css +1 -1
- package/dist/styles/message.css +41 -18
- package/dist/styles/nanite-scene.css +9 -9
- package/dist/styles/pricing-page.css +12 -8
- package/dist/styles/prompt-input.css +8 -13
- package/dist/styles/recipes.css +1 -57
- package/dist/styles/responsive-sidebar-shell.css +70 -20
- package/dist/styles/subagent-run.css +20 -3
- package/dist/styles/terminal.css +19 -0
- package/dist/styles/test-results.css +10 -1
- package/dist/styles/think-execution-status.css +8 -24
- package/dist/styles/think-execution-workbench.css +98 -105
- package/dist/styles/think-full-app.css +81 -193
- package/dist/styles/think-routine-library.css +0 -40
- package/dist/styles/think-thread-picker.css +8 -3
- package/dist/styles/transition-surface.css +7 -8
- package/dist/styles/utilities.css +42 -0
- package/dist/styles/web-preview.css +28 -5
- package/dist/styles/workspace-explorer.css +4 -23
- package/dist/styles/workspace-mount-manager.css +22 -0
- package/package.json +37 -35
- package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
- package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
- package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
- package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
- package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
- package/dist/components/foundations/Badge.d.ts +0 -62
- package/dist/components/foundations/Badge.js +0 -55
- package/dist/components/foundations/StatusPill.d.ts +0 -43
- package/dist/components/foundations/StatusPill.js +0 -35
- package/dist/components/general-purpose/Shell.d.ts +0 -149
- package/dist/components/general-purpose/Shell.js +0 -116
- package/dist/styles/agent-activity-preview-overlay.css +0 -169
- package/dist/styles/agent-activity-preview.css +0 -209
- package/dist/styles/badge.css +0 -120
- package/dist/styles/shell.css +0 -122
- package/dist/styles/status-pill.css +0 -39
- package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
|
@@ -167,7 +167,7 @@ interface AgentChatProps<MessageT extends UIMessage = UIMessage> {
|
|
|
167
167
|
composerAddMenuItems?: React.ReactNode;
|
|
168
168
|
/**
|
|
169
169
|
* Transient status rendered between the transcript and the composer —
|
|
170
|
-
* e.g.
|
|
170
|
+
* e.g. "Reconnecting…". `ThinkChat.Messages` fills this from the
|
|
171
171
|
* hook's `isRecovering`/`connectionError` automatically.
|
|
172
172
|
*/
|
|
173
173
|
notice?: React.ReactNode;
|
|
@@ -21,6 +21,18 @@ type AgentToolEventSource = Parameters<typeof useAgentToolEvents>[0]["agent"] &
|
|
|
21
21
|
* once per socket connect, so a later mount misses existing runs — and share
|
|
22
22
|
* the one value with every surface that reads runs (the chat shell and a
|
|
23
23
|
* run-detail route read the same projection, never two subscriptions).
|
|
24
|
+
*
|
|
25
|
+
* The subscription's listener attaches in a passive effect, after paint. A
|
|
26
|
+
* host whose transport is in-process (the browser extension's port bridge)
|
|
27
|
+
* can complete the connect and deliver the replay before that effect runs —
|
|
28
|
+
* reliably so on a hot return from a drill-in. Upstream owns the fix:
|
|
29
|
+
* `useAgent` buffers `agent-tool-event` frames from socket construction and
|
|
30
|
+
* `useAgentToolEvents` drains them when its listener attaches (agents >
|
|
31
|
+
* 0.20.1; `_bufferAgentToolReplayFrame` is the seam for a non-`useAgent`
|
|
32
|
+
* socket). On older versions such hosts must buffer and re-dispatch
|
|
33
|
+
* themselves — think-browser-host's `useThinkAgentToolEvents` is that
|
|
34
|
+
* interim shim. Network transports are not affected in practice: the round
|
|
35
|
+
* trip loses to the effect flush.
|
|
24
36
|
*/
|
|
25
37
|
declare function useSourceScopedAgentToolEvents<Part extends AgentToolRunPart = UIMessage["parts"][number]>(agent: AgentToolEventSource): {
|
|
26
38
|
runsById: Record<string, import("agents").AgentToolRunState<Part>>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { a as ToolbarLinkProps, n as ToolbarButtonProps, r as ToolbarGroupProps, t as Toolbar } from "./Toolbar-CBOseBQr.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
|
|
5
|
+
//#region src/components/general-purpose/AppTopBar.d.ts
|
|
6
|
+
interface AppTopBarRootProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Root> {
|
|
7
|
+
/** Accessible name describing the controls in this application bar. */
|
|
8
|
+
"aria-label": string;
|
|
9
|
+
/**
|
|
10
|
+
* Where the title sits. An application bar centres it between the control
|
|
11
|
+
* groups; a panel header labels its leading edge instead.
|
|
12
|
+
*/
|
|
13
|
+
titleAlign?: "center" | "start";
|
|
14
|
+
}
|
|
15
|
+
interface AppTopBarGroupProps extends ToolbarGroupProps {}
|
|
16
|
+
interface AppTopBarTitleProps extends useRender.ComponentProps<"div"> {}
|
|
17
|
+
interface AppTopBarButtonProps extends Omit<ToolbarButtonProps, "aria-label"> {
|
|
18
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
19
|
+
/** Accessible name and default tooltip text for the icon-only control. */
|
|
20
|
+
label: string;
|
|
21
|
+
/** Tooltip text when it should differ from the accessible name. */
|
|
22
|
+
tooltip?: React.ReactNode;
|
|
23
|
+
}
|
|
24
|
+
interface AppTopBarLinkProps extends Omit<ToolbarLinkProps, "aria-label"> {
|
|
25
|
+
ref?: React.Ref<HTMLAnchorElement>;
|
|
26
|
+
/** Accessible name and default tooltip text for the icon-only link. */
|
|
27
|
+
label: string;
|
|
28
|
+
/** Tooltip text when it should differ from the accessible name. */
|
|
29
|
+
tooltip?: React.ReactNode;
|
|
30
|
+
}
|
|
31
|
+
interface AppTopBarControlProps extends ToolbarButtonProps {
|
|
32
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Stable application-level toolbar with composable leading, title, and trailing
|
|
36
|
+
* slots. Descendant buttons share Base UI's roving focus and tooltip provider.
|
|
37
|
+
*/
|
|
38
|
+
declare function AppTopBarRoot({
|
|
39
|
+
children,
|
|
40
|
+
className,
|
|
41
|
+
titleAlign,
|
|
42
|
+
...props
|
|
43
|
+
}: AppTopBarRootProps): React.JSX.Element;
|
|
44
|
+
declare function AppTopBarLeading({
|
|
45
|
+
className,
|
|
46
|
+
...props
|
|
47
|
+
}: AppTopBarGroupProps): React.JSX.Element;
|
|
48
|
+
declare function AppTopBarTitle({
|
|
49
|
+
className,
|
|
50
|
+
render,
|
|
51
|
+
ref,
|
|
52
|
+
...props
|
|
53
|
+
}: AppTopBarTitleProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
54
|
+
declare function AppTopBarTrailing({
|
|
55
|
+
className,
|
|
56
|
+
...props
|
|
57
|
+
}: AppTopBarGroupProps): React.JSX.Element;
|
|
58
|
+
declare function AppTopBarControl({
|
|
59
|
+
className,
|
|
60
|
+
...props
|
|
61
|
+
}: AppTopBarControlProps): React.JSX.Element;
|
|
62
|
+
declare function AppTopBarButton({
|
|
63
|
+
children,
|
|
64
|
+
className,
|
|
65
|
+
disabled,
|
|
66
|
+
label,
|
|
67
|
+
render,
|
|
68
|
+
tooltip,
|
|
69
|
+
...props
|
|
70
|
+
}: AppTopBarButtonProps): React.JSX.Element;
|
|
71
|
+
declare function AppTopBarLink({
|
|
72
|
+
children,
|
|
73
|
+
className,
|
|
74
|
+
label,
|
|
75
|
+
render,
|
|
76
|
+
tooltip,
|
|
77
|
+
...props
|
|
78
|
+
}: AppTopBarLinkProps): React.JSX.Element;
|
|
79
|
+
/**
|
|
80
|
+
* Composable application top bar with stable leading, title, and trailing
|
|
81
|
+
* slots. Icon controls use shared Toolbar roving focus and coordinated Tooltip
|
|
82
|
+
* behavior; their fixed slots do not resize when state icons change. Render an
|
|
83
|
+
* existing behavior-rich button through `Control` to retain those toolbar
|
|
84
|
+
* semantics without rebuilding the control. Use `Link` for navigation so an
|
|
85
|
+
* `href` or router-provided link keeps native link semantics.
|
|
86
|
+
*/
|
|
87
|
+
declare const AppTopBar: {
|
|
88
|
+
Root: typeof AppTopBarRoot;
|
|
89
|
+
Leading: typeof AppTopBarLeading;
|
|
90
|
+
Title: typeof AppTopBarTitle;
|
|
91
|
+
Trailing: typeof AppTopBarTrailing;
|
|
92
|
+
Control: typeof AppTopBarControl;
|
|
93
|
+
Button: typeof AppTopBarButton;
|
|
94
|
+
Link: typeof AppTopBarLink;
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
export { AppTopBarLinkProps as a, AppTopBarGroupProps as i, AppTopBarButtonProps as n, AppTopBarRootProps as o, AppTopBarControlProps as r, AppTopBarTitleProps as s, AppTopBar as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "./class-names-BiMDVpUo.js";
|
|
2
2
|
import { Select } from "./components/foundations/Select.js";
|
|
3
|
-
import { t as CopyButton } from "./copy-button-
|
|
3
|
+
import { t as CopyButton } from "./copy-button-lys9N_aI.js";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { createHighlighter } from "shiki";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "./class-names-BiMDVpUo.js";
|
|
2
|
-
import { C as
|
|
2
|
+
import { C as FolderIcon, S as FileIcon, p as ChevronRightIcon, w as FolderOpenIcon } from "./icons-CVFSeTJn.js";
|
|
3
3
|
import { t as NavigationLink } from "./navigation-link-kqMa81v5.js";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { d as McpServerSetupAuthFieldName, l as McpServerSetupAuth } from "./mcp-server-catalog-CCj2ItkV.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/agents-sdk/McpConnectorForm.d.ts
|
|
5
|
+
type CredentialFieldName = Exclude<McpServerSetupAuthFieldName, "redirectUrl">;
|
|
6
|
+
type McpConnectorFormValues = Readonly<Partial<Record<CredentialFieldName, string>> & {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly url: string;
|
|
9
|
+
}>;
|
|
10
|
+
type McpConnectorFormProps = Omit<React.FormHTMLAttributes<HTMLFormElement>, "onSubmit" | "status"> & {
|
|
11
|
+
/** Authentication metadata that decides which credential fields render. */readonly auth?: McpServerSetupAuth; /** Initial connector values. Publisher client credentials remain app-owned. */
|
|
12
|
+
readonly defaults?: Partial<McpConnectorFormValues>; /** Optional pattern used to validate the MCP name field. */
|
|
13
|
+
readonly namePattern?: string; /** Keep a catalog-owned MCP name and URL visible but immutable. */
|
|
14
|
+
readonly readOnlyServer?: boolean; /** Read-only redirect URL shown for manual OAuth client setup. */
|
|
15
|
+
readonly redirectUrl?: string; /** Inline connection status announced politely to assistive tech. */
|
|
16
|
+
readonly status?: React.ReactNode; /** Label for the submit button. */
|
|
17
|
+
readonly submitLabel?: string; /** Label shown while submit is pending. */
|
|
18
|
+
readonly submittingLabel?: string; /** Called with normalized connector values after native form validation passes. */
|
|
19
|
+
readonly onSubmit: (values: McpConnectorFormValues) => void | Promise<void>;
|
|
20
|
+
};
|
|
21
|
+
/** Collects MCP connector settings and optional credentials with native form validation. */
|
|
22
|
+
declare function McpConnectorForm({
|
|
23
|
+
auth,
|
|
24
|
+
className,
|
|
25
|
+
defaults,
|
|
26
|
+
namePattern,
|
|
27
|
+
readOnlyServer,
|
|
28
|
+
redirectUrl,
|
|
29
|
+
status,
|
|
30
|
+
submitLabel,
|
|
31
|
+
submittingLabel,
|
|
32
|
+
onSubmit,
|
|
33
|
+
ref,
|
|
34
|
+
...props
|
|
35
|
+
}: McpConnectorFormProps & {
|
|
36
|
+
ref?: React.Ref<HTMLFormElement>;
|
|
37
|
+
}): React.JSX.Element;
|
|
38
|
+
//#endregion
|
|
39
|
+
export { McpConnectorFormProps as n, McpConnectorFormValues as r, McpConnectorForm as t };
|
|
@@ -55,6 +55,25 @@ declare function MessageContent({
|
|
|
55
55
|
}: MessageContentProps & {
|
|
56
56
|
ref?: React.Ref<HTMLDivElement>;
|
|
57
57
|
}): React.JSX.Element;
|
|
58
|
+
interface MessageMetaProps extends React.HTMLAttributes<HTMLDivElement> {}
|
|
59
|
+
/** Quiet message metadata and actions shown on hover or keyboard focus. */
|
|
60
|
+
declare function MessageMeta({
|
|
61
|
+
className,
|
|
62
|
+
children,
|
|
63
|
+
ref,
|
|
64
|
+
...props
|
|
65
|
+
}: MessageMetaProps & {
|
|
66
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
67
|
+
}): React.JSX.Element;
|
|
68
|
+
interface MessageTimestampProps extends Omit<React.TimeHTMLAttributes<HTMLTimeElement>, "children" | "dateTime"> {
|
|
69
|
+
date: Date;
|
|
70
|
+
}
|
|
71
|
+
/** Machine-readable message time with a compact local-time label. */
|
|
72
|
+
declare function MessageTimestamp({
|
|
73
|
+
date,
|
|
74
|
+
className,
|
|
75
|
+
...props
|
|
76
|
+
}: MessageTimestampProps): React.JSX.Element;
|
|
58
77
|
type MessageResponseProps = StreamdownProps;
|
|
59
78
|
declare const MessageResponse: React.MemoExoticComponent<({
|
|
60
79
|
className,
|
|
@@ -225,4 +244,4 @@ declare function MessageBranchPage({
|
|
|
225
244
|
ref?: React.Ref<HTMLSpanElement>;
|
|
226
245
|
}): React.JSX.Element;
|
|
227
246
|
//#endregion
|
|
228
|
-
export {
|
|
247
|
+
export { MessageToolbar as A, MessageMetaProps as C, MessageRole as D, MessageResponseProps as E, MessageTimestamp as O, MessageMeta as S, MessageResponse as T, MessageBranchProps as _, MessageActionsProps as a, MessageContent as b, MessageBranch as c, MessageBranchNext as d, MessageBranchNextProps as f, MessageBranchPreviousProps as g, MessageBranchPrevious as h, MessageActions as i, MessageToolbarProps as j, MessageTimestampProps as k, MessageBranchContent as l, MessageBranchPageProps as m, MessageAction as n, MessageAttachment as o, MessageBranchPage as p, MessageActionProps as r, MessageAttachmentProps as s, Message as t, MessageBranchContentProps as u, MessageBranchSelector as v, MessageProps as w, MessageContentProps as x, MessageBranchSelectorProps as y };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as AgentMessageRenderPartContext } from "./AgentMessageParts-C7L-Mv9U.js";
|
|
2
|
-
import { r as AgentChatProps } from "./AgentChat-
|
|
2
|
+
import { r as AgentChatProps } from "./AgentChat-DVr2giwD.js";
|
|
3
3
|
import { l as ThinkChatPart } from "./ThinkChatToolParts-D4qcnnxt.js";
|
|
4
4
|
import { t as ThinkChatActivityDescription } from "./ThinkChatActivitySummary-BtBQgMg6.js";
|
|
5
5
|
import * as React from "react";
|
|
@@ -6,9 +6,10 @@ import { WorkflowInfo } from "agents/workflows";
|
|
|
6
6
|
type ThinkExecutionRun = ThinkSubmissionInspection | WorkflowInfo;
|
|
7
7
|
/** Narrows the direct upstream execution union without wrapping either record. */
|
|
8
8
|
declare function isThinkSubmissionRun(run: ThinkExecutionRun): run is ThinkSubmissionInspection;
|
|
9
|
-
type ThinkExecutionStatusTone = "success" | "danger" | "
|
|
9
|
+
type ThinkExecutionStatusTone = "success" | "danger" | "paused" | "primary" | "neutral";
|
|
10
10
|
declare function getThinkExecutionRunId(run: ThinkExecutionRun): string;
|
|
11
11
|
declare function getThinkExecutionRunTitle(run: ThinkExecutionRun): string;
|
|
12
|
+
declare function getThinkExecutionRunKindLabel(run: ThinkExecutionRun): "Submission" | "Workflow";
|
|
12
13
|
declare function getThinkExecutionRunSubtitle(run: ThinkExecutionRun): string | undefined;
|
|
13
14
|
declare function getThinkExecutionRunProgressedAt(run: ThinkExecutionRun): number | Date | undefined;
|
|
14
15
|
declare function getThinkExecutionRunProgressedLabel(run: ThinkExecutionRun): "Started" | "Updated";
|
|
@@ -25,6 +26,5 @@ declare function formatThinkExecutionShortTimestamp(value: Date | number | null
|
|
|
25
26
|
declare function formatThinkExecutionRunProgress(run: ThinkExecutionRun): string;
|
|
26
27
|
declare function getThinkExecutionRunAccessibleName(run: ThinkExecutionRun): string;
|
|
27
28
|
declare function getThinkExecutionRunError(run: ThinkExecutionRun): string | undefined;
|
|
28
|
-
declare function isSameThinkExecutionRun(first: ThinkExecutionRun | null, second: ThinkExecutionRun): boolean;
|
|
29
29
|
//#endregion
|
|
30
|
-
export { isThinkSubmissionRun as _, formatThinkExecutionStatus as a, getThinkExecutionRunError as c,
|
|
30
|
+
export { isThinkSubmissionRun as _, formatThinkExecutionStatus as a, getThinkExecutionRunError as c, getThinkExecutionRunProgressedAt as d, getThinkExecutionRunProgressedLabel as f, getThinkExecutionRunTitle as g, getThinkExecutionRunSubtitle as h, formatThinkExecutionShortTimestamp as i, getThinkExecutionRunId as l, getThinkExecutionRunStatusTone as m, ThinkExecutionStatusTone as n, formatThinkExecutionTimestamp as o, getThinkExecutionRunStatus as p, formatThinkExecutionRunProgress as r, getThinkExecutionRunAccessibleName as s, ThinkExecutionRun as t, getThinkExecutionRunKindLabel as u };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as ToggleVariantsOptions } from "./Toggle-DLrIf5YH.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import { Toggle } from "@base-ui/react/toggle";
|
|
4
3
|
import { ToggleGroup } from "@base-ui/react/toggle-group";
|
|
4
|
+
import { Toggle } from "@base-ui/react/toggle";
|
|
5
5
|
|
|
6
6
|
//#region src/components/foundations/ToggleGroup.d.ts
|
|
7
7
|
type ToggleGroupSize = ToggleVariantsOptions["size"];
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Toolbar } from "@base-ui/react/toolbar";
|
|
3
|
+
|
|
4
|
+
//#region src/components/foundations/Toolbar.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Props for the Toolbar.Root component.
|
|
7
|
+
*/
|
|
8
|
+
interface ToolbarRootProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Root> {}
|
|
9
|
+
/**
|
|
10
|
+
* Props for the Toolbar.Button component.
|
|
11
|
+
*/
|
|
12
|
+
interface ToolbarButtonProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Button> {
|
|
13
|
+
/** Skip the default Button chrome when a composed control owns its visuals. */
|
|
14
|
+
unstyled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Props for the Toolbar.Link component.
|
|
18
|
+
*/
|
|
19
|
+
interface ToolbarLinkProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Link> {
|
|
20
|
+
/** Skip the default Button chrome when a composed link owns its visuals. */
|
|
21
|
+
unstyled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Props for the Toolbar.Group component.
|
|
25
|
+
*/
|
|
26
|
+
interface ToolbarGroupProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Group> {}
|
|
27
|
+
/**
|
|
28
|
+
* Props for the Toolbar.Separator component.
|
|
29
|
+
*/
|
|
30
|
+
interface ToolbarSeparatorProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Separator> {}
|
|
31
|
+
/**
|
|
32
|
+
* Props for the Toolbar.Input component.
|
|
33
|
+
*/
|
|
34
|
+
interface ToolbarInputProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Input> {}
|
|
35
|
+
/**
|
|
36
|
+
* Container for grouping toolbar buttons and controls.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <Toolbar.Root>
|
|
41
|
+
* <Toolbar.Button>Bold</Toolbar.Button>
|
|
42
|
+
* <Toolbar.Button>Italic</Toolbar.Button>
|
|
43
|
+
* <Toolbar.Separator />
|
|
44
|
+
* <Toolbar.Button>Align Left</Toolbar.Button>
|
|
45
|
+
* </Toolbar.Root>
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @see {@link https://base-ui.com/react/components/toolbar | Base UI Toolbar}
|
|
49
|
+
*/
|
|
50
|
+
declare function ToolbarRoot({
|
|
51
|
+
className,
|
|
52
|
+
ref,
|
|
53
|
+
...props
|
|
54
|
+
}: ToolbarRootProps & {
|
|
55
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
56
|
+
}): React.JSX.Element;
|
|
57
|
+
/**
|
|
58
|
+
* A clickable button within the toolbar.
|
|
59
|
+
*/
|
|
60
|
+
declare function ToolbarButton({
|
|
61
|
+
unstyled,
|
|
62
|
+
className,
|
|
63
|
+
ref,
|
|
64
|
+
...props
|
|
65
|
+
}: ToolbarButtonProps & {
|
|
66
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
67
|
+
}): React.JSX.Element;
|
|
68
|
+
/**
|
|
69
|
+
* A link element within the toolbar.
|
|
70
|
+
*/
|
|
71
|
+
declare function ToolbarLink({
|
|
72
|
+
unstyled,
|
|
73
|
+
className,
|
|
74
|
+
ref,
|
|
75
|
+
...props
|
|
76
|
+
}: ToolbarLinkProps & {
|
|
77
|
+
ref?: React.Ref<HTMLAnchorElement>;
|
|
78
|
+
}): React.JSX.Element;
|
|
79
|
+
/**
|
|
80
|
+
* Groups toolbar items together.
|
|
81
|
+
*/
|
|
82
|
+
declare function ToolbarGroup({
|
|
83
|
+
className,
|
|
84
|
+
ref,
|
|
85
|
+
...props
|
|
86
|
+
}: ToolbarGroupProps & {
|
|
87
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
88
|
+
}): React.JSX.Element;
|
|
89
|
+
/**
|
|
90
|
+
* Visual separator between toolbar sections.
|
|
91
|
+
*/
|
|
92
|
+
declare function ToolbarSeparator({
|
|
93
|
+
className,
|
|
94
|
+
ref,
|
|
95
|
+
...props
|
|
96
|
+
}: ToolbarSeparatorProps & {
|
|
97
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
98
|
+
}): React.JSX.Element;
|
|
99
|
+
/**
|
|
100
|
+
* Input element within the toolbar.
|
|
101
|
+
*/
|
|
102
|
+
declare function ToolbarInput({
|
|
103
|
+
className,
|
|
104
|
+
ref,
|
|
105
|
+
...props
|
|
106
|
+
}: ToolbarInputProps & {
|
|
107
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
108
|
+
}): React.JSX.Element;
|
|
109
|
+
/**
|
|
110
|
+
* A container for grouping buttons and controls.
|
|
111
|
+
* Provides keyboard navigation between items.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```tsx
|
|
115
|
+
* // Text formatting toolbar
|
|
116
|
+
* <Toolbar.Root>
|
|
117
|
+
* <Toolbar.Group>
|
|
118
|
+
* <Toolbar.Button>Bold</Toolbar.Button>
|
|
119
|
+
* <Toolbar.Button>Italic</Toolbar.Button>
|
|
120
|
+
* <Toolbar.Button>Underline</Toolbar.Button>
|
|
121
|
+
* </Toolbar.Group>
|
|
122
|
+
* <Toolbar.Separator />
|
|
123
|
+
* <Toolbar.Group>
|
|
124
|
+
* <Toolbar.Button>Left</Toolbar.Button>
|
|
125
|
+
* <Toolbar.Button>Center</Toolbar.Button>
|
|
126
|
+
* <Toolbar.Button>Right</Toolbar.Button>
|
|
127
|
+
* </Toolbar.Group>
|
|
128
|
+
* </Toolbar.Root>
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```tsx
|
|
133
|
+
* // Vertical toolbar
|
|
134
|
+
* <Toolbar.Root orientation="vertical">
|
|
135
|
+
* <Toolbar.Button>Item 1</Toolbar.Button>
|
|
136
|
+
* <Toolbar.Button>Item 2</Toolbar.Button>
|
|
137
|
+
* <Toolbar.Button>Item 3</Toolbar.Button>
|
|
138
|
+
* </Toolbar.Root>
|
|
139
|
+
* ```
|
|
140
|
+
*
|
|
141
|
+
* @see {@link https://base-ui.com/react/components/toolbar | Base UI Toolbar}
|
|
142
|
+
*/
|
|
143
|
+
declare const Toolbar$1: {
|
|
144
|
+
Root: typeof ToolbarRoot;
|
|
145
|
+
Button: typeof ToolbarButton;
|
|
146
|
+
Link: typeof ToolbarLink;
|
|
147
|
+
Group: typeof ToolbarGroup;
|
|
148
|
+
Separator: typeof ToolbarSeparator;
|
|
149
|
+
Input: typeof ToolbarInput;
|
|
150
|
+
};
|
|
151
|
+
//#endregion
|
|
152
|
+
export { ToolbarLinkProps as a, ToolbarInputProps as i, ToolbarButtonProps as n, ToolbarRootProps as o, ToolbarGroupProps as r, ToolbarSeparatorProps as s, Toolbar$1 as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $ as WarningIcon, O as MaximizeIcon, b as EyeIcon, d as CheckIcon, m as CodeIcon, r as ArrowLeftIcon, v as DownloadIcon } from "./icons-CVFSeTJn.js";
|
|
2
2
|
import { r as formatClock } from "./format-DB2mX9DA.js";
|
|
3
|
-
import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-
|
|
3
|
+
import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-BjELA-_s.js";
|
|
4
4
|
import { AppTopBar } from "./components/general-purpose/AppTopBar.js";
|
|
5
5
|
import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./components/agents-sdk/WorkspaceFile.js";
|
|
6
6
|
import { c as useWorkspaceNavigationContext, s as useWorkspaceNavigationRestoration } from "./WorkspaceLink-DtH66bAY.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { inferFaviconUrl } from "../../utils/favicon.js";
|
|
2
|
-
import {
|
|
2
|
+
import { $ as WarningIcon, D as LinkIcon, N as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, U as SearchIcon, Z as TerminalIcon, et as WrenchIcon } from "../../icons-CVFSeTJn.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/agents-sdk/AgentActivity.tsx
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, o as compactingNotice, r as AgentChatProps, t as AgentChat } from "../../AgentChat-
|
|
1
|
+
import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, o as compactingNotice, r as AgentChatProps, t as AgentChat } from "../../AgentChat-DVr2giwD.js";
|
|
2
2
|
export { AgentChat, AgentChatComposerDraft, AgentChatProps, AgentChatRenderMessageContext, PermissionModeControl, compactingNotice };
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
2
|
import { ExpansionStateProvider } from "../ai-sdk/ExpansionState.js";
|
|
3
|
-
import {
|
|
3
|
+
import { B as PlusIcon, F as MoveToFrontIcon, H as RefreshIcon, K as SpinnerIcon, Q as TrashIcon, R as PencilIcon, V as QueueIcon, t as ArchiveIcon } from "../../icons-CVFSeTJn.js";
|
|
4
4
|
import { Button } from "../foundations/Button.js";
|
|
5
5
|
import { AgentChatMessageEditor } from "../ai-sdk/AgentChatMessageEditor.js";
|
|
6
6
|
import { IconButton } from "../foundations/IconButton.js";
|
|
7
7
|
import { Menu } from "../foundations/Menu.js";
|
|
8
8
|
import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputPermissionSelector, PromptInputReferences, PromptInputSubmit, PromptInputTextarea, PromptInputTools, PromptInputTray, usePromptInputAttachments } from "../ai-sdk/PromptInput.js";
|
|
9
9
|
import { AgentChatStartScreen } from "../ai-sdk/AgentChatStartScreen.js";
|
|
10
|
-
import { Message, MessageAction, MessageActions } from "../ai-sdk/Message.js";
|
|
10
|
+
import { Message, MessageAction, MessageActions, MessageMeta, MessageTimestamp } from "../ai-sdk/Message.js";
|
|
11
11
|
import { AgentMessageParts } from "../ai-sdk/AgentMessageParts.js";
|
|
12
12
|
import { Marker, MarkerContent } from "../foundations/Marker.js";
|
|
13
|
-
import { t as CopyButton } from "../../copy-button-
|
|
13
|
+
import { t as CopyButton } from "../../copy-button-lys9N_aI.js";
|
|
14
14
|
import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "../ai-sdk/Context.js";
|
|
15
15
|
import { VirtualMessageScroller } from "../ai-sdk/MessageScrollerVirtual.js";
|
|
16
16
|
import { QueueItem, QueueItemActions, QueueItemContent } from "../ai-sdk/Queue.js";
|
|
@@ -78,6 +78,14 @@ function observeAgentChatComposer(element) {
|
|
|
78
78
|
observer.disconnect();
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
+
function getAgentChatMessageTime(message) {
|
|
82
|
+
const metadata = message.metadata;
|
|
83
|
+
if (!metadata || typeof metadata !== "object" || !("createdAt" in metadata)) return void 0;
|
|
84
|
+
const value = metadata.createdAt;
|
|
85
|
+
if (!(value instanceof Date) && typeof value !== "number" && typeof value !== "string") return;
|
|
86
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
87
|
+
return Number.isNaN(date.getTime()) ? void 0 : date;
|
|
88
|
+
}
|
|
81
89
|
const EMPTY_PENDING_APPROVALS = [];
|
|
82
90
|
const EMPTY_SKIPPED_APPROVAL_IDS = [];
|
|
83
91
|
function createApprovalSessionState(thinkStub) {
|
|
@@ -133,12 +141,13 @@ function AgentChatAssistantActions({ message, responseNumber, showCopy, showRetr
|
|
|
133
141
|
label: `Copy response ${responseNumber}`,
|
|
134
142
|
tooltip: "Copy response",
|
|
135
143
|
text: copyText,
|
|
136
|
-
size: "
|
|
144
|
+
size: "xs",
|
|
137
145
|
onCopy: () => onCopyStatus(`Response ${responseNumber} copied.`),
|
|
138
146
|
onError: () => onCopyStatus(`Could not copy response ${responseNumber}. Try again.`)
|
|
139
147
|
}) : null, hasRetry ? /* @__PURE__ */ jsx(MessageAction, {
|
|
140
148
|
label: "Retry",
|
|
141
149
|
tooltip: "Regenerate response",
|
|
150
|
+
size: "xs",
|
|
142
151
|
onClick: () => onRegenerate(message.id),
|
|
143
152
|
children: /* @__PURE__ */ jsx(RefreshIcon, { size: 14 })
|
|
144
153
|
}) : null]
|
|
@@ -164,6 +173,8 @@ function isCompactedPart(message, partIndex) {
|
|
|
164
173
|
* "Transcript rendering performance" in docs/think-chat.md.
|
|
165
174
|
*/
|
|
166
175
|
function AgentChatTranscriptRowBodyImpl({ message, messageIndex, status, renderPart, renderMessageAfter, editing, canEdit, editDisabled, onEditAndResend, onStartEdit, onCancelEdit, onFinishEdit, editButtonRef, responseNumber, showAssistantActions, showCopy, showRetry, onRegenerate, onCopyStatus }) {
|
|
176
|
+
const messageTime = getAgentChatMessageTime(message);
|
|
177
|
+
const userText = getEditableUserText(message);
|
|
167
178
|
return /* @__PURE__ */ jsx(Fragment, { children: isCompactionMessage(message) ? /* @__PURE__ */ jsx(Marker, {
|
|
168
179
|
variant: "separator",
|
|
169
180
|
children: /* @__PURE__ */ jsx(MarkerContent, { children: "Context compacted" })
|
|
@@ -193,20 +204,32 @@ function AgentChatTranscriptRowBodyImpl({ message, messageIndex, status, renderP
|
|
|
193
204
|
message,
|
|
194
205
|
messageIndex
|
|
195
206
|
}),
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
message.role === "user" && (messageTime !== void 0 || userText !== void 0) ? /* @__PURE__ */ jsxs(MessageMeta, { children: [
|
|
208
|
+
messageTime ? /* @__PURE__ */ jsx(MessageTimestamp, { date: messageTime }) : null,
|
|
209
|
+
userText ? /* @__PURE__ */ jsx(CopyButton, {
|
|
210
|
+
className: "message__action",
|
|
211
|
+
label: `Copy message ${messageIndex + 1}`,
|
|
212
|
+
tooltip: "Copy message",
|
|
213
|
+
text: userText,
|
|
214
|
+
size: "xs",
|
|
215
|
+
onCopy: () => onCopyStatus(`Message ${messageIndex + 1} copied.`),
|
|
216
|
+
onError: () => onCopyStatus(`Could not copy message ${messageIndex + 1}. Try again.`)
|
|
217
|
+
}) : null,
|
|
218
|
+
canEdit && userText ? /* @__PURE__ */ jsx(MessageActions, {
|
|
219
|
+
"aria-label": "Message actions",
|
|
220
|
+
"aria-hidden": editDisabled || void 0,
|
|
221
|
+
"data-unavailable": editDisabled || void 0,
|
|
222
|
+
children: /* @__PURE__ */ jsx(MessageAction, {
|
|
223
|
+
ref: editButtonRef,
|
|
224
|
+
disabled: editDisabled,
|
|
225
|
+
label: "Edit message",
|
|
226
|
+
tooltip: "Edit and resend",
|
|
227
|
+
size: "xs",
|
|
228
|
+
onClick: () => onStartEdit(message.id),
|
|
229
|
+
children: /* @__PURE__ */ jsx(PencilIcon, {})
|
|
230
|
+
})
|
|
231
|
+
}) : null
|
|
232
|
+
] }) : null,
|
|
210
233
|
showAssistantActions ? /* @__PURE__ */ jsx(AgentChatAssistantActions, {
|
|
211
234
|
message,
|
|
212
235
|
responseNumber,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as useOptionalAgentToolRuns, i as AgentToolRunsProviderProps, n as AgentToolEventsValue, o as useSourceScopedAgentToolEvents, r as AgentToolRunsProvider, t as AgentToolEventSource } from "../../AgentToolRunsContext-
|
|
1
|
+
import { a as useOptionalAgentToolRuns, i as AgentToolRunsProviderProps, n as AgentToolEventsValue, o as useSourceScopedAgentToolEvents, r as AgentToolRunsProvider, t as AgentToolEventSource } from "../../AgentToolRunsContext-daY67hFM.js";
|
|
2
2
|
export { AgentToolEventSource, AgentToolEventsValue, AgentToolRunsProvider, AgentToolRunsProviderProps, useOptionalAgentToolRuns, useSourceScopedAgentToolEvents };
|
|
@@ -10,6 +10,18 @@ import { useAgentToolEvents } from "agents/react";
|
|
|
10
10
|
* once per socket connect, so a later mount misses existing runs — and share
|
|
11
11
|
* the one value with every surface that reads runs (the chat shell and a
|
|
12
12
|
* run-detail route read the same projection, never two subscriptions).
|
|
13
|
+
*
|
|
14
|
+
* The subscription's listener attaches in a passive effect, after paint. A
|
|
15
|
+
* host whose transport is in-process (the browser extension's port bridge)
|
|
16
|
+
* can complete the connect and deliver the replay before that effect runs —
|
|
17
|
+
* reliably so on a hot return from a drill-in. Upstream owns the fix:
|
|
18
|
+
* `useAgent` buffers `agent-tool-event` frames from socket construction and
|
|
19
|
+
* `useAgentToolEvents` drains them when its listener attaches (agents >
|
|
20
|
+
* 0.20.1; `_bufferAgentToolReplayFrame` is the seam for a non-`useAgent`
|
|
21
|
+
* socket). On older versions such hosts must buffer and re-dispatch
|
|
22
|
+
* themselves — think-browser-host's `useThinkAgentToolEvents` is that
|
|
23
|
+
* interim shim. Network transports are not affected in practice: the round
|
|
24
|
+
* trip loses to the effect flush.
|
|
13
25
|
*/
|
|
14
26
|
function useSourceScopedAgentToolEvents(agent) {
|
|
15
27
|
const agentTools = useAgentToolEvents({ agent });
|