@frontera-sdk/chat-ui 1.52.19 → 1.52.20
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/chat.js +82 -25
- package/dist/{chunk-I5NAI7HP.js → chunk-AVSAEPHS.js} +87 -20
- package/dist/{chunk-I3YAF6PS.js → chunk-CYEEHVPE.js} +1 -1
- package/dist/{chunk-LP5MVCRH.js → chunk-GQEBWNCP.js} +1 -1
- package/dist/{chunk-ZFTMGEV5.js → chunk-JYYH3AXV.js} +2 -2
- package/dist/{chunk-QFVBVBUR.js → chunk-OMOIIMNG.js} +142 -113
- package/dist/{chunk-QABN6WBZ.js → chunk-VCPYAMYP.js} +177 -19
- package/dist/header.js +3 -3
- package/dist/message.js +3 -3
- package/dist/new-session.js +2 -2
- package/dist/{pdf-deck-view-inner-ZINOYZOK.js → pdf-deck-view-inner-RKFV3VK7.js} +2 -2
- package/dist/{pdf-document-view-inner-SBYZZQ6H.js → pdf-document-view-inner-RP6BBB7Y.js} +2 -2
- package/package.json +3 -3
package/dist/chat.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { offset, flip, autoUpdate, computePosition } from './chunk-I7SXWUAN.js';
|
|
3
3
|
import { isFullscreenHotkey, DeckNotesCard, deckOwnsArrowKeys } from './chunk-4FRTPVJT.js';
|
|
4
|
-
import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-
|
|
5
|
-
import { NewSessionPrompt, keepCaretOnTap } from './chunk-
|
|
4
|
+
import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-GQEBWNCP.js';
|
|
5
|
+
import { NewSessionPrompt, keepCaretOnTap } from './chunk-CYEEHVPE.js';
|
|
6
6
|
import { PendingCards } from './chunk-UZ6RDWCT.js';
|
|
7
7
|
import { themeToStyle } from './chunk-6HYPVNVA.js';
|
|
8
8
|
import { useChatAgents } from './chunk-FLOAEPRU.js';
|
|
9
9
|
import { subjectOfChatToken, capabilitiesOfChatToken } from './chunk-CCVPZVFK.js';
|
|
10
10
|
import { useChatCredential } from './chunk-37G6MHWS.js';
|
|
11
11
|
import './chunk-WDYCLC4F.js';
|
|
12
|
-
import { chatSidePanelSessionKey, Chart1Icon, useTemplatePreviewStore, useHasTemplatePreviewHost, useChatSidePanelStore, ChatHeader, ChatHeaderActions, useRightPane, getChatOverviewAgentStatus, useChatOverviewVisible, useConversationArtifacts, PENDING_CHART_TAB_PREFIX, CHART_TAB_PREFIX, AGENT_WORK_TAB_ID, AGENT_ROUTINES_TAB_ID, SOURCES_TAB_ID, TEMPLATE_TAB_ID, OutputsSection, ChainLink1Icon, ChatOverviewContent, COMPUTER_TAB_PREFIX, SourceRow, motion, MAX_CHAT_SIDE_PANEL_SESSIONS, DEFAULT_CHAT_SIDE_PANEL_SIZE, TableIcon } from './chunk-
|
|
12
|
+
import { chatSidePanelSessionKey, Chart1Icon, useTemplatePreviewStore, useHasTemplatePreviewHost, useChatSidePanelStore, ChatHeader, ChatHeaderActions, useRightPane, getChatOverviewAgentStatus, useChatOverviewVisible, useConversationArtifacts, PENDING_CHART_TAB_PREFIX, CHART_TAB_PREFIX, AGENT_WORK_TAB_ID, AGENT_ROUTINES_TAB_ID, SOURCES_TAB_ID, TEMPLATE_TAB_ID, OutputsSection, ChainLink1Icon, ChatOverviewContent, COMPUTER_TAB_PREFIX, SourceRow, motion, MAX_CHAT_SIDE_PANEL_SESSIONS, DEFAULT_CHAT_SIDE_PANEL_SIZE, TableIcon } from './chunk-JYYH3AXV.js';
|
|
13
13
|
import './chunk-X3QVICX7.js';
|
|
14
|
-
import { dynamic, useChatStreamStore, useComposerStore, Message, Thinking, setPendingFiles, useLivePreviewUrl, ArrowRotateClockwiseIcon, useComputerFiles, useUploadComputerFile, CanvasWidget, isPlainTextLanguage, useUploadFile, COMPOSER_ID_MAIN, useContextWindowInfo, useIsCompacting, useQueuedMessages, VolumeFullIcon, WarningSignIcon, useComputer, csvTextToWorkbookJson, CSV_PREVIEW_MAX_ROWS, CopyButton, COMPOSER_ID_COPILOT, ModelIcon, modeToBrandRow, useBackDismiss, PdfViewer, brandLabel, Spinner } from './chunk-
|
|
15
|
-
import { Textarea, artifactFormatIcon, BookIcon, useAgentRoster, ShieldCheckIcon, useArtifactStore, useCanvasStore, useChatOverviewStore, setSdkConversationPath, setSdkDarkMode, AgentsProvider, PluginProvider, WorkspaceProvider, TooltipProvider, isToolPart, getToolState, getToolName, getToolInput, sourceKind, extractDomain, CitationViewerContext, MarkdownRenderer, ConnectRunnerContext, usePathname, usePaneFocusStore, useAgentPanelStore, Tooltip, TooltipTrigger, TooltipContent, StudioDisplayIcon, WorldIcon, SlidesWideIcon, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, ArrowsShowIcon, useKeyboardInset, ExclamationCircleIcon, getToolOutput, useArtifact, useUpdateArtifact, useArtifactFileObjectUrl, resolveArtifactIconFormat, useSourcesEnrichment, LoaderIcon, FileDownloadIcon, Label, Input, renderPluginBlock, useArtifactVersion, useChatCapabilities, useChatOptInEnabled, useSessionPendingApprovals, tableToCsv, tableToXlsx, tableToMarkdown, DropdownMenu, DropdownMenuTrigger, StyledDropdownMenuContent, StyledDropdownMenuItem, useArtifactVersions, useClient, unwrapData, authFetch, getBearerHeadersForApi, EyeOpenIcon, EyeSlashIcon, useRestoreArtifactVersion, ZoomableImage, ChatImageLightbox, useDownloadArtifact, useArtifactFileBytes, useArtifactPreviewFileObjectUrl, useArtifactVersionPreviewFileObjectUrl, SpreadsheetIcon, FilePdfIcon, useOptionalWorkspaceContext, useAgentConnectionStatus, useArtifacts,
|
|
14
|
+
import { dynamic, useChatStreamStore, useComposerStore, Message, Thinking, setPendingFiles, usePersonConfirmations, unshownPendingConfirmations, ConversationConfirmationCard, useLivePreviewUrl, ArrowRotateClockwiseIcon, useComputerFiles, useUploadComputerFile, CanvasWidget, isPlainTextLanguage, useUploadFile, COMPOSER_ID_MAIN, useContextWindowInfo, useIsCompacting, useQueuedMessages, VolumeFullIcon, WarningSignIcon, useComputer, csvTextToWorkbookJson, CSV_PREVIEW_MAX_ROWS, CopyButton, COMPOSER_ID_COPILOT, ModelIcon, modeToBrandRow, useBackDismiss, PdfViewer, brandLabel, Spinner } from './chunk-VCPYAMYP.js';
|
|
15
|
+
import { Textarea, artifactFormatIcon, BookIcon, useAgentRoster, ShieldCheckIcon, useArtifactStore, useCanvasStore, useChatOverviewStore, setSdkConversationPath, setSdkDarkMode, AgentsProvider, PluginProvider, WorkspaceProvider, TooltipProvider, getPersonConfirmation, isToolPart, getToolState, getToolName, getToolInput, sourceKind, extractDomain, CitationViewerContext, MarkdownRenderer, ConnectRunnerContext, usePathname, usePaneFocusStore, useAgentPanelStore, Tooltip, TooltipTrigger, TooltipContent, StudioDisplayIcon, WorldIcon, SlidesWideIcon, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, ArrowsShowIcon, useKeyboardInset, ExclamationCircleIcon, getToolOutput, useArtifact, useUpdateArtifact, useArtifactFileObjectUrl, resolveArtifactIconFormat, useSourcesEnrichment, LoaderIcon, FileDownloadIcon, Label, Input, renderPluginBlock, useArtifactVersion, useChatCapabilities, useChatCapabilityEnabled, useChatOptInEnabled, useSessionPendingApprovals, tableToCsv, tableToXlsx, tableToMarkdown, DropdownMenu, DropdownMenuTrigger, StyledDropdownMenuContent, StyledDropdownMenuItem, useArtifactVersions, useClient, unwrapData, authFetch, getBearerHeadersForApi, EyeOpenIcon, EyeSlashIcon, useRestoreArtifactVersion, ZoomableImage, ChatImageLightbox, useDownloadArtifact, useArtifactFileBytes, useArtifactPreviewFileObjectUrl, useArtifactVersionPreviewFileObjectUrl, SpreadsheetIcon, FilePdfIcon, useOptionalWorkspaceContext, useAgentConnectionStatus, useArtifacts, useSession, useWorkspaceContext, useConversationDesktopStatus, isRequestHumanTool, appsKeys, errorText, unwrapDataDeep, useRouter, Images1Icon, ArrowUpIcon, VideoIcon, AudioIcon, useBrand, resolveBearerHeaders, subscribeSdkDarkMode, getSdkDarkMode, unwrap, useConnectRunner, useStartUserConnect, useUpsertGrant, useRevokeGrant, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, LayoutGrid1Icon, useCatalog, useInstalls, useWorkspaceSlug, buildTenantUrlAbsolute } from './chunk-OMOIIMNG.js';
|
|
16
16
|
import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
|
|
17
17
|
import { Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from './chunk-T5SANYSX.js';
|
|
18
|
-
import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-
|
|
18
|
+
import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-AVSAEPHS.js';
|
|
19
19
|
import './chunk-QBV7MAFV.js';
|
|
20
20
|
import { AppIcon, frontera_icon_default, PhotoIcon, Folder1Icon, FileTextIcon, describeToolRow, SquareArrowTopRightIcon, ClipboardIcon, getToolMeta, useStreamdownPlugins, AppIconFrame, MessageResponse } from './chunk-PKNEC4LJ.js';
|
|
21
21
|
import { Skeleton, Button, ScrollArea, ChevronDownMediumIcon, buttonVariants } from './chunk-UWKO24VT.js';
|
|
@@ -42449,7 +42449,7 @@ function SheetEditor({ content, onSave, readOnly = false }) {
|
|
|
42449
42449
|
);
|
|
42450
42450
|
}
|
|
42451
42451
|
var PdfDocumentViewInner = dynamic(
|
|
42452
|
-
() => import('./pdf-document-view-inner-
|
|
42452
|
+
() => import('./pdf-document-view-inner-RP6BBB7Y.js'),
|
|
42453
42453
|
{
|
|
42454
42454
|
ssr: false,
|
|
42455
42455
|
loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "pdf" })
|
|
@@ -43266,7 +43266,7 @@ function HtmlDeckView({ content, inChat = false, versionSlot }) {
|
|
|
43266
43266
|
!present && inChat && /* @__PURE__ */ jsx(DeckEditPanel, { currentIndex: sel, currentHtml: slides[sel]?.html ?? "" })
|
|
43267
43267
|
] });
|
|
43268
43268
|
}
|
|
43269
|
-
var Inner = dynamic(() => import('./pdf-deck-view-inner-
|
|
43269
|
+
var Inner = dynamic(() => import('./pdf-deck-view-inner-RKFV3VK7.js'), {
|
|
43270
43270
|
ssr: false,
|
|
43271
43271
|
loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "htmldeck" })
|
|
43272
43272
|
});
|
|
@@ -60393,6 +60393,7 @@ function ComposerOptionsSheet({
|
|
|
60393
60393
|
}) {
|
|
60394
60394
|
const [open, setOpen] = useState(false);
|
|
60395
60395
|
const [view, setView] = useState("root");
|
|
60396
|
+
const pluginsEnabled = useChatCapabilityEnabled("plugins");
|
|
60396
60397
|
const router = useRouter();
|
|
60397
60398
|
const { t: t2 } = useTranslation();
|
|
60398
60399
|
const close2 = () => {
|
|
@@ -60503,7 +60504,7 @@ function ComposerOptionsSheet({
|
|
|
60503
60504
|
]
|
|
60504
60505
|
}
|
|
60505
60506
|
),
|
|
60506
|
-
/* @__PURE__ */ jsxs(
|
|
60507
|
+
pluginsEnabled && /* @__PURE__ */ jsxs(
|
|
60507
60508
|
"button",
|
|
60508
60509
|
{
|
|
60509
60510
|
type: "button",
|
|
@@ -61712,10 +61713,11 @@ var NOTE_FAILED = "Couldn\u2019t send your note. Try again.";
|
|
|
61712
61713
|
var NOTE_SENT_DENY_FAILED = "Your note was sent, but the denial wasn\u2019t saved. Choose Deny to try again.";
|
|
61713
61714
|
function useComposerApprovalPrompt({
|
|
61714
61715
|
conversationId,
|
|
61715
|
-
onDecision
|
|
61716
|
+
onDecision,
|
|
61717
|
+
running
|
|
61716
61718
|
}) {
|
|
61717
61719
|
const queryClient = useQueryClient();
|
|
61718
|
-
const { data } = useSessionPendingApprovals(conversationId);
|
|
61720
|
+
const { data } = useSessionPendingApprovals(conversationId, { pollInBackground: !!running });
|
|
61719
61721
|
const desktop = useConversationDesktopStatus(conversationId ?? null);
|
|
61720
61722
|
const [decided, setDecided] = useState(() => /* @__PURE__ */ new Set());
|
|
61721
61723
|
const [selectedId, setSelectedId] = useState(null);
|
|
@@ -61838,7 +61840,7 @@ function ChatInputBar({
|
|
|
61838
61840
|
onToolApproval,
|
|
61839
61841
|
placeholderTyping,
|
|
61840
61842
|
placeholder,
|
|
61841
|
-
enableFileUpload = true,
|
|
61843
|
+
enableFileUpload: enableFileUploadProp = true,
|
|
61842
61844
|
optionsSlot,
|
|
61843
61845
|
compact,
|
|
61844
61846
|
sessionKey = "__new__",
|
|
@@ -61855,6 +61857,11 @@ function ChatInputBar({
|
|
|
61855
61857
|
const subscriptionGovernance = chatGptSubscriptionGovernance ?? (isCopilotComposer ? "fde" : "session");
|
|
61856
61858
|
const isCopilotPanel = isCopilotComposer && !isMobile && !compact;
|
|
61857
61859
|
const capabilities = useChatCapabilities();
|
|
61860
|
+
const pluginsEnabled = useChatCapabilityEnabled("plugins");
|
|
61861
|
+
const approvalModesEnabled = useChatCapabilityEnabled("approvalModes");
|
|
61862
|
+
const modelChoiceEnabled = useChatCapabilityEnabled("modelChoice");
|
|
61863
|
+
const attachmentsEnabled = useChatCapabilityEnabled("attachments");
|
|
61864
|
+
const enableFileUpload = enableFileUploadProp && attachmentsEnabled;
|
|
61858
61865
|
const [fileAttachments, setFileAttachments] = useState([]);
|
|
61859
61866
|
const [uploadingFiles, setUploadingFiles] = useState(/* @__PURE__ */ new Map());
|
|
61860
61867
|
const [fileError, setFileError] = useState(null);
|
|
@@ -62082,7 +62089,7 @@ function ChatInputBar({
|
|
|
62082
62089
|
const { data: orgFlags } = useOrgFeatureFlags();
|
|
62083
62090
|
const chatgptSubscriptionEnabled = orgFlags?.[subscriptionGovernance === "fde" ? "chatgptSubscription.enabled" : "chatgptSubscription.sessionsEnabled"] === true;
|
|
62084
62091
|
const xaiSubscriptionEnabled = orgFlags?.[subscriptionGovernance === "fde" ? "xaiSubscription.enabled" : "xaiSubscription.sessionsEnabled"] === true;
|
|
62085
|
-
const
|
|
62092
|
+
const manifestModeEntries = useMemo(() => {
|
|
62086
62093
|
if (!modes) return void 0;
|
|
62087
62094
|
const entries = Array.isArray(modes) ? modes : Object.entries(modes).map(([key2, config2]) => ({
|
|
62088
62095
|
key: key2,
|
|
@@ -62100,13 +62107,45 @@ function ChatInputBar({
|
|
|
62100
62107
|
(entry) => (entry.provider !== "openai-codex" || chatgptSubscriptionEnabled) && (entry.provider !== "xai" || xaiSubscriptionEnabled)
|
|
62101
62108
|
);
|
|
62102
62109
|
}, [modes, chatgptSubscriptionEnabled, xaiSubscriptionEnabled]);
|
|
62110
|
+
const hasSubscriptionMode = Boolean(
|
|
62111
|
+
manifestModeEntries?.some((m) => m.provider === "openai-codex")
|
|
62112
|
+
);
|
|
62113
|
+
const { data: subscriptionStatus } = useChatGptSubscriptionStatus(hasSubscriptionMode);
|
|
62114
|
+
const { data: subscriptionModels, isError: subscriptionModelsError } = useChatGptSubscriptionModels(
|
|
62115
|
+
hasSubscriptionMode && !!subscriptionStatus?.connected
|
|
62116
|
+
);
|
|
62117
|
+
const modeEntries = useMemo(() => {
|
|
62118
|
+
if (!manifestModeEntries || !subscriptionStatus?.connected || !subscriptionModels) {
|
|
62119
|
+
return manifestModeEntries;
|
|
62120
|
+
}
|
|
62121
|
+
const index = manifestModeEntries.findIndex(
|
|
62122
|
+
(entry) => entry.provider === "openai-codex"
|
|
62123
|
+
);
|
|
62124
|
+
if (index === -1) return manifestModeEntries;
|
|
62125
|
+
const live = subscriptionModels.map((model) => ({
|
|
62126
|
+
key: model.modeKey,
|
|
62127
|
+
name: model.name,
|
|
62128
|
+
style: "default",
|
|
62129
|
+
thinking: false,
|
|
62130
|
+
provider: "openai-codex",
|
|
62131
|
+
modelId: model.id,
|
|
62132
|
+
model: model.id,
|
|
62133
|
+
reasoning: model.reasoningConfig
|
|
62134
|
+
}));
|
|
62135
|
+
return [
|
|
62136
|
+
...manifestModeEntries.slice(0, index),
|
|
62137
|
+
...live,
|
|
62138
|
+
...manifestModeEntries.slice(index).filter((entry) => entry.provider !== "openai-codex")
|
|
62139
|
+
];
|
|
62140
|
+
}, [manifestModeEntries, subscriptionStatus?.connected, subscriptionModels]);
|
|
62103
62141
|
const defaultPlaceholder = placeholder ?? t2("chat.input.placeholder");
|
|
62104
62142
|
const typingEnabled = Boolean(
|
|
62105
62143
|
placeholderTyping && composerModes.length === 0
|
|
62106
62144
|
);
|
|
62107
62145
|
const approvalPrompt = useComposerApprovalPrompt({
|
|
62108
62146
|
conversationId: isNewConversation ? null : sessionKey,
|
|
62109
|
-
onDecision: onToolApproval
|
|
62147
|
+
onDecision: onToolApproval,
|
|
62148
|
+
running: status === "submitted" || status === "streaming"
|
|
62110
62149
|
});
|
|
62111
62150
|
const askingApproval = approvalPrompt.current !== null;
|
|
62112
62151
|
const composerPlaceholder = askingApproval ? "Or tell the agent what to do instead\u2026" : composerModes.length > 0 ? t2("shell.modePlaceholder") : defaultPlaceholder;
|
|
@@ -62126,16 +62165,9 @@ function ChatInputBar({
|
|
|
62126
62165
|
const codexConnected = Boolean(
|
|
62127
62166
|
codexStatusData?.connected
|
|
62128
62167
|
);
|
|
62129
|
-
const hasSubscriptionMode = Boolean(
|
|
62130
|
-
modeEntries?.some((m) => m.provider === "openai-codex")
|
|
62131
|
-
);
|
|
62132
|
-
const { data: subscriptionStatus } = useChatGptSubscriptionStatus(hasSubscriptionMode);
|
|
62133
62168
|
const hasXaiMode = Boolean(modeEntries?.some((m) => m.provider === "xai"));
|
|
62134
62169
|
const { data: xaiSubscriptionStatus } = useXaiSubscriptionStatus(hasXaiMode);
|
|
62135
62170
|
const [xaiDialogOpen, setXaiDialogOpen] = useState(false);
|
|
62136
|
-
const { data: subscriptionModels, isError: subscriptionModelsError } = useChatGptSubscriptionModels(
|
|
62137
|
-
hasSubscriptionMode && !!subscriptionStatus?.connected
|
|
62138
|
-
);
|
|
62139
62171
|
const eligibleSubscriptionModels = subscriptionStatus?.connected ? subscriptionModelsError ? null : subscriptionModels ? new Set(subscriptionModels.map((model) => model.id)) : void 0 : void 0;
|
|
62140
62172
|
useEffect(() => {
|
|
62141
62173
|
if (!orgFlags) return;
|
|
@@ -62178,7 +62210,7 @@ function ChatInputBar({
|
|
|
62178
62210
|
},
|
|
62179
62211
|
[isCopilotComposer, rememberComposerModel]
|
|
62180
62212
|
);
|
|
62181
|
-
const modelSelectorNode = showModelSelector && modeEntries ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
62213
|
+
const modelSelectorNode = showModelSelector && modelChoiceEnabled && modeEntries ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
62182
62214
|
/* @__PURE__ */ jsx(
|
|
62183
62215
|
ModelSelector,
|
|
62184
62216
|
{
|
|
@@ -62398,7 +62430,7 @@ function ChatInputBar({
|
|
|
62398
62430
|
const approvalOptions = modeOptions ?? capabilities.approvalModes?.options ?? DEFAULT_APPROVAL_MODE_OPTIONS;
|
|
62399
62431
|
const approvalValue = capabilities.approvalModes?.value ?? approvalMode;
|
|
62400
62432
|
const approvalChange = capabilities.approvalModes?.onChange ?? onApprovalModeChange;
|
|
62401
|
-
const showApprovalSelector = Boolean(approvalChange);
|
|
62433
|
+
const showApprovalSelector = Boolean(approvalChange) && approvalModesEnabled;
|
|
62402
62434
|
const readingHistory = useComposerStore((s) => s.readingHistory);
|
|
62403
62435
|
const [editorFocused, setEditorFocused] = useState(false);
|
|
62404
62436
|
const { data: pendingApprovalData } = useSessionPendingApprovals(
|
|
@@ -62558,7 +62590,7 @@ function ChatInputBar({
|
|
|
62558
62590
|
] }) : null;
|
|
62559
62591
|
const desktopRailControls = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
62560
62592
|
attachmentButton,
|
|
62561
|
-
/* @__PURE__ */ jsx(AppsButton, { agentId, disabled: isDisabled })
|
|
62593
|
+
pluginsEnabled && /* @__PURE__ */ jsx(AppsButton, { agentId, disabled: isDisabled })
|
|
62562
62594
|
] });
|
|
62563
62595
|
const compactRailControls = /* @__PURE__ */ jsxs("div", { className: "flex w-52 flex-col gap-0.5", children: [
|
|
62564
62596
|
enableFileUpload && /* @__PURE__ */ jsxs(
|
|
@@ -62574,7 +62606,7 @@ function ChatInputBar({
|
|
|
62574
62606
|
]
|
|
62575
62607
|
}
|
|
62576
62608
|
),
|
|
62577
|
-
/* @__PURE__ */ jsx(
|
|
62609
|
+
pluginsEnabled && /* @__PURE__ */ jsx(
|
|
62578
62610
|
AppsButton,
|
|
62579
62611
|
{
|
|
62580
62612
|
agentId,
|
|
@@ -63480,6 +63512,10 @@ function agentProcessingState(messages, status) {
|
|
|
63480
63512
|
if (message.role !== "assistant") break;
|
|
63481
63513
|
for (let p = message.parts.length - 1; p >= 0; p--) {
|
|
63482
63514
|
const part = message.parts[p];
|
|
63515
|
+
if (part.type === "data-person-confirmation") {
|
|
63516
|
+
if (getPersonConfirmation(part)?.status === "pending") return "waiting";
|
|
63517
|
+
continue;
|
|
63518
|
+
}
|
|
63483
63519
|
if (isToolPart(part)) {
|
|
63484
63520
|
const state = getToolState(part);
|
|
63485
63521
|
const name = getToolName(part);
|
|
@@ -63538,6 +63574,26 @@ function currentToolActivity(messages) {
|
|
|
63538
63574
|
}
|
|
63539
63575
|
return null;
|
|
63540
63576
|
}
|
|
63577
|
+
function ThreadPendingConfirmations({
|
|
63578
|
+
conversationId,
|
|
63579
|
+
messages
|
|
63580
|
+
}) {
|
|
63581
|
+
const confirmations = usePersonConfirmations(conversationId, {
|
|
63582
|
+
poll: (all) => Object.values(all).some((confirmation) => confirmation.status === "pending")
|
|
63583
|
+
});
|
|
63584
|
+
const [kept, setKept] = useState(() => /* @__PURE__ */ new Set());
|
|
63585
|
+
const unshown = unshownPendingConfirmations(confirmations.data, messages, kept);
|
|
63586
|
+
const ids = unshown.map((c) => c.id).join(",");
|
|
63587
|
+
useEffect(() => {
|
|
63588
|
+
if (!ids) return;
|
|
63589
|
+
setKept((current) => {
|
|
63590
|
+
const missing = ids.split(",").filter((id) => !current.has(id));
|
|
63591
|
+
return missing.length === 0 ? current : /* @__PURE__ */ new Set([...current, ...missing]);
|
|
63592
|
+
});
|
|
63593
|
+
}, [ids]);
|
|
63594
|
+
if (unshown.length === 0) return null;
|
|
63595
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: unshown.map((confirmation) => /* @__PURE__ */ jsx(ConversationConfirmationCard, { confirmation, conversationId }, confirmation.id)) });
|
|
63596
|
+
}
|
|
63541
63597
|
var REASONING_EFFORTS = ["max", "xhigh", "high", "medium", "low", "minimal", "none"];
|
|
63542
63598
|
function isReasoningEffort(value) {
|
|
63543
63599
|
return !!value && REASONING_EFFORTS.includes(value);
|
|
@@ -64121,6 +64177,7 @@ function FronteraChat({
|
|
|
64121
64177
|
}
|
|
64122
64178
|
) }, message.id)
|
|
64123
64179
|
)),
|
|
64180
|
+
/* @__PURE__ */ jsx(ThreadPendingConfirmations, { conversationId, messages }),
|
|
64124
64181
|
showWaiting && /* @__PURE__ */ jsx(
|
|
64125
64182
|
Thinking,
|
|
64126
64183
|
{
|
|
@@ -41,8 +41,13 @@ var en_default = {
|
|
|
41
41
|
"console.agents.counts.plugins.many": "{count} plugins",
|
|
42
42
|
"console.agents.counts.knowledge.one": "1 knowledge base",
|
|
43
43
|
"console.agents.counts.knowledge.many": "{count} knowledge bases",
|
|
44
|
-
"agents.detail.navigation.
|
|
45
|
-
"agents.detail.navigation.
|
|
44
|
+
"agents.detail.navigation.overview": "Overview",
|
|
45
|
+
"agents.detail.navigation.configure": "Configure",
|
|
46
|
+
"agents.detail.navigation.knowledge": "Knowledge",
|
|
47
|
+
"agents.detail.navigation.evaluations": "Evaluations",
|
|
48
|
+
"agents.detail.navigation.sessions": "Sessions",
|
|
49
|
+
"agents.detail.navigation.monitor": "Monitor",
|
|
50
|
+
"agents.detail.navigation.analysis": "Analysis",
|
|
46
51
|
"agents.detail.navigation.test": "Test chat",
|
|
47
52
|
"agents.detail.sidebar.back": "Back to all Agents",
|
|
48
53
|
"console.agents.installedFromPacks.title": "Installed {noun}",
|
|
@@ -2078,6 +2083,7 @@ var en_default = {
|
|
|
2078
2083
|
"admin.auditLog.verb.disabled": "Disabled",
|
|
2079
2084
|
"admin.auditLog.verb.rotated": "Rotated",
|
|
2080
2085
|
"admin.auditLog.verb.skipped": "Skipped",
|
|
2086
|
+
"admin.auditLog.verb.revealed": "Revealed",
|
|
2081
2087
|
"admin.auditLog.verb.detected": "Detected",
|
|
2082
2088
|
"admin.auditLog.outcome.success": "Success",
|
|
2083
2089
|
"admin.auditLog.outcome.failure": "Failure",
|
|
@@ -2474,6 +2480,8 @@ var en_default = {
|
|
|
2474
2480
|
"eval.datasetItems.loadingMore": "Loading\u2026",
|
|
2475
2481
|
"eval.datasetItems.subjectAuthored": "authored",
|
|
2476
2482
|
"eval.datasetItems.subjectAuthoredHint": "written by hand, imported from CSV",
|
|
2483
|
+
"eval.datasetItems.subjectScenario": "Scenario",
|
|
2484
|
+
"eval.datasetItems.subjectScenarioHint": "a whole conversation with a simulated customer",
|
|
2477
2485
|
"eval.datasetItems.expectationsTitle": "Expectations",
|
|
2478
2486
|
"eval.datasetItems.expectationsHint": "What the answer has to do, beyond matching the expected output. Each line is graded on its own, with evidence.",
|
|
2479
2487
|
"eval.datasetItems.expectationsEmpty": "No expectations yet.",
|
|
@@ -3193,6 +3201,7 @@ var en_default = {
|
|
|
3193
3201
|
"eval.runs.nameLabel": "Run name",
|
|
3194
3202
|
"eval.runs.namePlaceholder": "Optional \u2014 a timestamp is used if left blank",
|
|
3195
3203
|
"eval.runs.judgesLabel": "Judges",
|
|
3204
|
+
"eval.runs.judgeAddedForReference": "added: items have a reference answer",
|
|
3196
3205
|
"eval.runs.judgesHint": "An item passes only when every selected judge passes it.",
|
|
3197
3206
|
"eval.runs.startedToast": 'Run "{runName}" started',
|
|
3198
3207
|
"eval.runs.startFailed": "Could not start the run",
|
|
@@ -3201,6 +3210,19 @@ var en_default = {
|
|
|
3201
3210
|
"eval.runs.running": "Running {done}/{total}",
|
|
3202
3211
|
"eval.runs.passCount": "{count} pass",
|
|
3203
3212
|
"eval.runs.failCount": "{count} fail",
|
|
3213
|
+
"eval.runs.reliability": "All attempts passed: {passed} of {items} items",
|
|
3214
|
+
"eval.runs.reliabilityHint": "An item counts only when every one of its attempts passed.",
|
|
3215
|
+
"eval.runs.falseCompletions": "Ended resolved without the required action: {count} of {attempts} conversations",
|
|
3216
|
+
"eval.runs.deduplicated": "Repeated requests run once: {count}",
|
|
3217
|
+
"eval.runs.silentTurns": "A customer message got no reply: {count} of {attempts} conversations",
|
|
3218
|
+
"eval.runs.repeatedRequests": "The customer had to repeat a request: {count} of {attempts} conversations",
|
|
3219
|
+
"eval.runs.offTopicDeclined": "Declined off-topic messages: {count}",
|
|
3220
|
+
"eval.runs.endingsTitle": "How conversations ended",
|
|
3221
|
+
"eval.runs.ending.resolved": "Resolved",
|
|
3222
|
+
"eval.runs.ending.handed_off": "Handed off",
|
|
3223
|
+
"eval.runs.ending.unresolved": "Unresolved",
|
|
3224
|
+
"eval.runs.ending.abandoned": "Abandoned",
|
|
3225
|
+
"eval.runs.ending.none": "No outcome",
|
|
3204
3226
|
"eval.runs.errorCount": "{count} error",
|
|
3205
3227
|
"eval.runs.produced": "What the agent answered",
|
|
3206
3228
|
"eval.runs.itemError": "Error",
|
|
@@ -3261,6 +3283,11 @@ var en_default = {
|
|
|
3261
3283
|
"eval.runs.configHideCandidate": "Hide candidate",
|
|
3262
3284
|
"eval.runs.trajectoryTitle": "What the agent did",
|
|
3263
3285
|
"eval.runs.trajectorySkill": "skill: {name}",
|
|
3286
|
+
"eval.runs.trajectoryKnowledge": "knowledge: {count}",
|
|
3287
|
+
"eval.runs.knowledgeTitle": "Knowledge retrieved",
|
|
3288
|
+
"eval.runs.knowledgeQuery": "Searched for \u201C{query}\u201D",
|
|
3289
|
+
"eval.runs.knowledgeNothing": "Nothing relevant was found.",
|
|
3290
|
+
"eval.runs.knowledgeScore": "score {score}",
|
|
3264
3291
|
"eval.runs.trajectoryViewRaw": "View raw",
|
|
3265
3292
|
"eval.runs.trajectoryHideRaw": "Hide raw",
|
|
3266
3293
|
"eval.runs.expectationsTitle": "Expectations",
|
|
@@ -3320,6 +3347,7 @@ var en_default = {
|
|
|
3320
3347
|
"eval.datasetItems.detailQuestion": "Question",
|
|
3321
3348
|
"eval.datasetItems.detailQuestionUnknown": "(no title recorded for this conversation)",
|
|
3322
3349
|
"eval.datasetItems.detailExpectedMissing": "No expected answer. This item can check whether the reply reads well, but it cannot fail a wrong one \u2014 add a correction on the review it came from.",
|
|
3350
|
+
"eval.datasetItems.scenarioChecksHint": "This scenario's checks come from its definition and are not edited here.",
|
|
3323
3351
|
"console.skillTest.rowResult": "Result",
|
|
3324
3352
|
"console.skillTest.rowSkillLoaded": "Skill loaded",
|
|
3325
3353
|
"blueprint.sidebar.media": "Media Sets",
|
|
@@ -3557,6 +3585,15 @@ var en_default = {
|
|
|
3557
3585
|
"desktopAccess.approval.allowedOnceAt": "Allowed once \xB7 {time}",
|
|
3558
3586
|
"desktopAccess.approval.deny": "Deny",
|
|
3559
3587
|
"desktopAccess.approval.deniedShort": "Denied",
|
|
3588
|
+
"chat.personConfirmation.kind": "Confirmation",
|
|
3589
|
+
"chat.personConfirmation.confirm": "Confirm",
|
|
3590
|
+
"chat.personConfirmation.cancel": "Cancel",
|
|
3591
|
+
"chat.personConfirmation.sending": "Sending your answer\u2026",
|
|
3592
|
+
"chat.personConfirmation.expires": "Expires {when}",
|
|
3593
|
+
"chat.personConfirmation.chose": "Chose \u201C{label}\u201D",
|
|
3594
|
+
"chat.personConfirmation.choseAt": "Chose \u201C{label}\u201D at {time}",
|
|
3595
|
+
"chat.personConfirmation.expired": "Expired without an answer",
|
|
3596
|
+
"chat.personConfirmation.failed": "Your answer couldn\u2019t be sent. Try again.",
|
|
3560
3597
|
"desktopAccess.waiting.kind": "Waiting for your desktop",
|
|
3561
3598
|
"desktopAccess.waiting.failed": "Local operation failed",
|
|
3562
3599
|
"desktopAccess.conflict.kind": "Changed since it was read",
|
|
@@ -5282,8 +5319,13 @@ var id_default = {
|
|
|
5282
5319
|
"console.agents.counts.plugins.many": "{count} plugin",
|
|
5283
5320
|
"console.agents.counts.knowledge.one": "1 basis pengetahuan",
|
|
5284
5321
|
"console.agents.counts.knowledge.many": "{count} basis pengetahuan",
|
|
5285
|
-
"agents.detail.navigation.
|
|
5286
|
-
"agents.detail.navigation.
|
|
5322
|
+
"agents.detail.navigation.overview": "Ikhtisar",
|
|
5323
|
+
"agents.detail.navigation.configure": "Konfigurasi",
|
|
5324
|
+
"agents.detail.navigation.knowledge": "Pengetahuan",
|
|
5325
|
+
"agents.detail.navigation.evaluations": "Evaluasi",
|
|
5326
|
+
"agents.detail.navigation.sessions": "Sesi",
|
|
5327
|
+
"agents.detail.navigation.monitor": "Pemantauan",
|
|
5328
|
+
"agents.detail.navigation.analysis": "Analisis",
|
|
5287
5329
|
"agents.detail.navigation.test": "Chat pengujian",
|
|
5288
5330
|
"agents.detail.sidebar.back": "Kembali ke semua Agen",
|
|
5289
5331
|
"console.agents.installedFromPacks.title": "{noun} Terpasang",
|
|
@@ -7302,6 +7344,7 @@ var id_default = {
|
|
|
7302
7344
|
"admin.auditLog.verb.disabled": "Dinonaktifkan",
|
|
7303
7345
|
"admin.auditLog.verb.rotated": "Dirotasi",
|
|
7304
7346
|
"admin.auditLog.verb.skipped": "Dilewati",
|
|
7347
|
+
"admin.auditLog.verb.revealed": "Ditampilkan",
|
|
7305
7348
|
"admin.auditLog.verb.detected": "Terdeteksi",
|
|
7306
7349
|
"admin.auditLog.outcome.success": "Berhasil",
|
|
7307
7350
|
"admin.auditLog.outcome.failure": "Gagal",
|
|
@@ -7675,6 +7718,8 @@ var id_default = {
|
|
|
7675
7718
|
"eval.datasetItems.loadingMore": "Memuat\u2026",
|
|
7676
7719
|
"eval.datasetItems.subjectAuthored": "ditulis manual",
|
|
7677
7720
|
"eval.datasetItems.subjectAuthoredHint": "ditulis manual, diimpor dari CSV",
|
|
7721
|
+
"eval.datasetItems.subjectScenario": "Skenario",
|
|
7722
|
+
"eval.datasetItems.subjectScenarioHint": "seluruh percakapan dengan pelanggan simulasi",
|
|
7678
7723
|
"eval.datasetItems.expectationsTitle": "Ekspektasi",
|
|
7679
7724
|
"eval.datasetItems.expectationsHint": "Hal yang harus dilakukan jawaban, di luar kecocokan dengan jawaban yang diharapkan. Tiap baris dinilai sendiri, disertai bukti.",
|
|
7680
7725
|
"eval.datasetItems.expectationsEmpty": "Belum ada ekspektasi.",
|
|
@@ -8394,6 +8439,7 @@ var id_default = {
|
|
|
8394
8439
|
"eval.runs.nameLabel": "Nama run",
|
|
8395
8440
|
"eval.runs.namePlaceholder": "Opsional \u2014 memakai stempel waktu bila dikosongkan",
|
|
8396
8441
|
"eval.runs.judgesLabel": "Penilai",
|
|
8442
|
+
"eval.runs.judgeAddedForReference": "ditambahkan: item memiliki jawaban acuan",
|
|
8397
8443
|
"eval.runs.judgesHint": "Item lulus hanya bila semua penilai yang dipilih meluluskannya.",
|
|
8398
8444
|
"eval.runs.startedToast": 'Run "{runName}" dimulai',
|
|
8399
8445
|
"eval.runs.startFailed": "Tidak dapat memulai run",
|
|
@@ -8402,6 +8448,19 @@ var id_default = {
|
|
|
8402
8448
|
"eval.runs.running": "Berjalan {done}/{total}",
|
|
8403
8449
|
"eval.runs.passCount": "{count} lulus",
|
|
8404
8450
|
"eval.runs.failCount": "{count} gagal",
|
|
8451
|
+
"eval.runs.reliability": "Semua percobaan lulus: {passed} dari {items} item",
|
|
8452
|
+
"eval.runs.reliabilityHint": "Item dihitung hanya jika setiap percobaannya lulus.",
|
|
8453
|
+
"eval.runs.falseCompletions": "Berakhir terselesaikan tanpa tindakan yang diwajibkan: {count} dari {attempts} percakapan",
|
|
8454
|
+
"eval.runs.deduplicated": "Permintaan berulang dijalankan sekali: {count}",
|
|
8455
|
+
"eval.runs.silentTurns": "Pesan pelanggan tidak dibalas: {count} dari {attempts} percakapan",
|
|
8456
|
+
"eval.runs.repeatedRequests": "Pelanggan harus mengulang permintaan: {count} dari {attempts} percakapan",
|
|
8457
|
+
"eval.runs.offTopicDeclined": "Pesan di luar topik yang ditolak: {count}",
|
|
8458
|
+
"eval.runs.endingsTitle": "Cara percakapan berakhir",
|
|
8459
|
+
"eval.runs.ending.resolved": "Terselesaikan",
|
|
8460
|
+
"eval.runs.ending.handed_off": "Dialihkan ke petugas",
|
|
8461
|
+
"eval.runs.ending.unresolved": "Tidak terselesaikan",
|
|
8462
|
+
"eval.runs.ending.abandoned": "Ditinggalkan",
|
|
8463
|
+
"eval.runs.ending.none": "Tanpa hasil",
|
|
8405
8464
|
"eval.runs.errorCount": "{count} galat",
|
|
8406
8465
|
"eval.runs.produced": "Jawaban agen",
|
|
8407
8466
|
"eval.runs.itemError": "Galat",
|
|
@@ -8462,6 +8521,11 @@ var id_default = {
|
|
|
8462
8521
|
"eval.runs.configHideCandidate": "Sembunyikan kandidat",
|
|
8463
8522
|
"eval.runs.trajectoryTitle": "Yang dilakukan agen",
|
|
8464
8523
|
"eval.runs.trajectorySkill": "skill: {name}",
|
|
8524
|
+
"eval.runs.trajectoryKnowledge": "pengetahuan: {count}",
|
|
8525
|
+
"eval.runs.knowledgeTitle": "Pengetahuan yang diambil",
|
|
8526
|
+
"eval.runs.knowledgeQuery": "Mencari \u201C{query}\u201D",
|
|
8527
|
+
"eval.runs.knowledgeNothing": "Tidak ada yang relevan.",
|
|
8528
|
+
"eval.runs.knowledgeScore": "skor {score}",
|
|
8465
8529
|
"eval.runs.trajectoryViewRaw": "Lihat data mentah",
|
|
8466
8530
|
"eval.runs.trajectoryHideRaw": "Sembunyikan data mentah",
|
|
8467
8531
|
"eval.runs.expectationsTitle": "Ekspektasi",
|
|
@@ -8525,6 +8589,7 @@ var id_default = {
|
|
|
8525
8589
|
"eval.datasetItems.detailQuestion": "Pertanyaan",
|
|
8526
8590
|
"eval.datasetItems.detailQuestionUnknown": "(tidak ada judul untuk percakapan ini)",
|
|
8527
8591
|
"eval.datasetItems.detailExpectedMissing": "Tidak ada jawaban yang diharapkan. Item ini bisa memeriksa apakah balasan enak dibaca, tetapi tidak bisa menggagalkan jawaban yang salah \u2014 tambahkan koreksi pada ulasan asalnya.",
|
|
8592
|
+
"eval.datasetItems.scenarioChecksHint": "Pemeriksaan skenario ini berasal dari definisinya dan tidak diubah di sini.",
|
|
8528
8593
|
"console.skillTest.rowResult": "Hasil",
|
|
8529
8594
|
"console.skillTest.rowSkillLoaded": "Skill dimuat",
|
|
8530
8595
|
"blueprint.sidebar.media": "Set Media",
|
|
@@ -8762,6 +8827,15 @@ var id_default = {
|
|
|
8762
8827
|
"desktopAccess.approval.allowedOnceAt": "Diizinkan sekali \xB7 {time}",
|
|
8763
8828
|
"desktopAccess.approval.deny": "Tolak",
|
|
8764
8829
|
"desktopAccess.approval.deniedShort": "Ditolak",
|
|
8830
|
+
"chat.personConfirmation.kind": "Konfirmasi",
|
|
8831
|
+
"chat.personConfirmation.confirm": "Konfirmasi",
|
|
8832
|
+
"chat.personConfirmation.cancel": "Batal",
|
|
8833
|
+
"chat.personConfirmation.sending": "Mengirim jawaban Anda\u2026",
|
|
8834
|
+
"chat.personConfirmation.expires": "Kedaluwarsa {when}",
|
|
8835
|
+
"chat.personConfirmation.chose": "Memilih \u201C{label}\u201D",
|
|
8836
|
+
"chat.personConfirmation.choseAt": "Memilih \u201C{label}\u201D pukul {time}",
|
|
8837
|
+
"chat.personConfirmation.expired": "Kedaluwarsa tanpa jawaban",
|
|
8838
|
+
"chat.personConfirmation.failed": "Jawaban Anda tidak terkirim. Coba lagi.",
|
|
8765
8839
|
"desktopAccess.waiting.kind": "Menunggu desktop Anda",
|
|
8766
8840
|
"desktopAccess.waiting.failed": "Operasi lokal gagal",
|
|
8767
8841
|
"desktopAccess.conflict.kind": "Berubah sejak dibaca",
|
|
@@ -10451,6 +10525,13 @@ function getStoredLocale() {
|
|
|
10451
10525
|
const stored = localStorage.getItem(STORAGE_KEY);
|
|
10452
10526
|
return stored === "id" ? "id" : "en";
|
|
10453
10527
|
}
|
|
10528
|
+
function interpolate(str, vars) {
|
|
10529
|
+
if (!vars) return str;
|
|
10530
|
+
for (const [k, v] of Object.entries(vars)) {
|
|
10531
|
+
str = str.replace(new RegExp(`\\{${k}\\}`, "g"), () => String(v));
|
|
10532
|
+
}
|
|
10533
|
+
return str;
|
|
10534
|
+
}
|
|
10454
10535
|
var I18nContext = createContext(null);
|
|
10455
10536
|
function I18nProvider({ children }) {
|
|
10456
10537
|
const [locale, setLocaleState] = useState("en");
|
|
@@ -10463,13 +10544,7 @@ function I18nProvider({ children }) {
|
|
|
10463
10544
|
}, []);
|
|
10464
10545
|
const t = useCallback(
|
|
10465
10546
|
(key, vars) => {
|
|
10466
|
-
|
|
10467
|
-
if (vars) {
|
|
10468
|
-
for (const [k, v] of Object.entries(vars)) {
|
|
10469
|
-
str = str.replace(new RegExp(`\\{${k}\\}`, "g"), String(v));
|
|
10470
|
-
}
|
|
10471
|
-
}
|
|
10472
|
-
return str;
|
|
10547
|
+
return interpolate(locales[locale]?.[key] ?? locales.en[key] ?? key, vars);
|
|
10473
10548
|
},
|
|
10474
10549
|
[locale]
|
|
10475
10550
|
);
|
|
@@ -10483,15 +10558,7 @@ function useTranslation() {
|
|
|
10483
10558
|
locale: "en",
|
|
10484
10559
|
setLocale: () => {
|
|
10485
10560
|
},
|
|
10486
|
-
t: (key, vars) =>
|
|
10487
|
-
let str = locales.en[key] ?? key;
|
|
10488
|
-
if (vars) {
|
|
10489
|
-
for (const [k, v] of Object.entries(vars)) {
|
|
10490
|
-
str = str.replace(new RegExp(`\\{${k}\\}`, "g"), String(v));
|
|
10491
|
-
}
|
|
10492
|
-
}
|
|
10493
|
-
return str;
|
|
10494
|
-
}
|
|
10561
|
+
t: (key, vars) => interpolate(locales.en[key] ?? key, vars)
|
|
10495
10562
|
};
|
|
10496
10563
|
}
|
|
10497
10564
|
return ctx;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { MagnifyingGlassIcon } from './chunk-X3QVICX7.js';
|
|
3
3
|
import { Sheet, SheetContent, SheetHeader, SheetTitle, Popover, PopoverTrigger, PopoverContent } from './chunk-T5SANYSX.js';
|
|
4
|
-
import { useIsMobile, useTranslation } from './chunk-
|
|
4
|
+
import { useIsMobile, useTranslation } from './chunk-AVSAEPHS.js';
|
|
5
5
|
import { CrossMediumIcon } from './chunk-2P4IEVOQ.js';
|
|
6
6
|
import { AgentAvatar } from './chunk-PUMRNN3R.js';
|
|
7
7
|
import { cn, Checkmark1Icon } from './chunk-LGVMMBL3.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { useTranslation } from './chunk-
|
|
2
|
+
import { useTranslation } from './chunk-AVSAEPHS.js';
|
|
3
3
|
import { Skeleton } from './chunk-UWKO24VT.js';
|
|
4
4
|
import { useRef, useState, useEffect } from 'react';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { MagnifyingGlassIcon } from './chunk-X3QVICX7.js';
|
|
3
|
-
import { requestPaneFocus, useArtifacts, usePlugins, useCanvasStore, useArtifactStore, useChatOverviewStore, useSourcesEnrichment, sourceKind, useCitationViewer, resolveSourceDisplay, extractDomain, canvasId, StudioDisplayIcon, LayoutDashboardIcon, useAgentPanelStore, SourceFavicon, dedup, useArtifactFileObjectUrl, resolveArtifactIconFormat, artifactFormatIcon, avatarMotionForStream, AGENT_AVATAR_SIZE, getFileCategory, FileThumbnail, formatFileSize, usePathname, artifactFormatSubtitle, artifactCategory, Input, MobileScreenSheet, TooltipTrigger, Tooltip, useChatCapabilities, TooltipContent, processMessageParts, GridSpinner, PanelEdgeRing, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, extractCitationsFromSteps, resolvePluginLanguage, getMessageDisplayTimestampValue } from './chunk-
|
|
3
|
+
import { requestPaneFocus, useArtifacts, usePlugins, useCanvasStore, useArtifactStore, useChatOverviewStore, useSourcesEnrichment, sourceKind, useCitationViewer, resolveSourceDisplay, extractDomain, canvasId, StudioDisplayIcon, LayoutDashboardIcon, useAgentPanelStore, SourceFavicon, dedup, useArtifactFileObjectUrl, resolveArtifactIconFormat, artifactFormatIcon, avatarMotionForStream, AGENT_AVATAR_SIZE, getFileCategory, FileThumbnail, formatFileSize, usePathname, artifactFormatSubtitle, artifactCategory, Input, MobileScreenSheet, TooltipTrigger, Tooltip, useChatCapabilities, TooltipContent, processMessageParts, GridSpinner, PanelEdgeRing, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, extractCitationsFromSteps, resolvePluginLanguage, getMessageDisplayTimestampValue } from './chunk-OMOIIMNG.js';
|
|
4
4
|
import { Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-T5SANYSX.js';
|
|
5
|
-
import { useTranslation, useIsMobile } from './chunk-
|
|
5
|
+
import { useTranslation, useIsMobile } from './chunk-AVSAEPHS.js';
|
|
6
6
|
import { Collapsible, CollapsibleTrigger, CollapsibleContent, Shimmer, HoverCard, HoverCardTrigger, HoverCardContent } from './chunk-PKNEC4LJ.js';
|
|
7
7
|
import { ChevronDownMediumIcon, ScrollArea, Skeleton, Button } from './chunk-UWKO24VT.js';
|
|
8
8
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, CrossMediumIcon } from './chunk-2P4IEVOQ.js';
|