@frontera-sdk/chat-ui 1.50.81 → 1.50.83

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 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-74CXU2RG.js';
5
- import { NewSessionPrompt, keepCaretOnTap } from './chunk-QQNCWSNF.js';
4
+ import { ArtifactSkeleton, resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb } from './chunk-ZA7CTXPL.js';
5
+ import { NewSessionPrompt, keepCaretOnTap } from './chunk-KJ33HNY4.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-U5SH5XBO.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-FUAY64JS.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-YHDDUQCX.js';
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, useConversationDesktopStatus, isRequestHumanTool, appsKeys, useSession, useWorkspaceContext, 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-5D4QWX23.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-SZYQPW6R.js';
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, useConversationDesktopStatus, isRequestHumanTool, appsKeys, useSession, useWorkspaceContext, 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-BGRFXLUY.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-ECZL2OI4.js';
18
+ import { MOBILE_BREAKPOINT, useIsMobile, I18nProvider, useTranslation } from './chunk-T4RG6NMW.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-B6QFKZVY.js'),
42452
+ () => import('./pdf-document-view-inner-T3OS2MHL.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-EVMDBLDL.js'), {
43269
+ var Inner = dynamic(() => import('./pdf-deck-view-inner-QBQHKZKH.js'), {
43270
43270
  ssr: false,
43271
43271
  loading: () => /* @__PURE__ */ jsx(ArtifactSkeleton, { format: "htmldeck" })
43272
43272
  });
@@ -55171,6 +55171,7 @@ var configKeys = {
55171
55171
  brand: () => [DOMAIN3, "brand"],
55172
55172
  imageModel: () => [DOMAIN3, "imageModel"],
55173
55173
  voiceSpeed: () => [DOMAIN3, "voiceSpeed"],
55174
+ voiceUsage: () => [DOMAIN3, "voiceUsage"],
55174
55175
  providerStatus: () => [DOMAIN3, "providerStatus"],
55175
55176
  customProviders: () => [DOMAIN3, "customProviders"],
55176
55177
  providerModels: (provider) => [DOMAIN3, "providerModels", provider],
@@ -55289,6 +55290,9 @@ function useWorkspaceSkills(options) {
55289
55290
  var DOMAIN4 = "blueprint";
55290
55291
  var blueprintKeys = {
55291
55292
  all: [DOMAIN4],
55293
+ /** Deployment-wide Explorer map settings (`GET /blueprint/map-config`):
55294
+ * the same for every organization and scope, so nothing else is keyed. */
55295
+ mapConfig: () => [DOMAIN4, "map-config"],
55292
55296
  // Definition reads are org-scoped on the server (requireOrg), so orgId is
55293
55297
  // part of the key: switching organization must never serve the previous
55294
55298
  // organization's definitions. Do not rely on a caller clearing the cache on
@@ -57228,6 +57232,49 @@ function ComposerRailTrigger({
57228
57232
  }
57229
57233
  );
57230
57234
  }
57235
+ function SparklesThreeIcon(props) {
57236
+ return /* @__PURE__ */ jsxs(
57237
+ "svg",
57238
+ {
57239
+ "aria-hidden": "true",
57240
+ role: "img",
57241
+ "aria-label": "sparkles-three, ai 3 stars, sparkles, \u2728",
57242
+ width: "24px",
57243
+ height: "24px",
57244
+ viewBox: "0 0 24 24",
57245
+ fill: "none",
57246
+ xmlns: "http://www.w3.org/2000/svg",
57247
+ ...props,
57248
+ children: [
57249
+ /* @__PURE__ */ jsx(
57250
+ "path",
57251
+ {
57252
+ d: "M6 5.5C6 5.22386 5.77614 5 5.5 5C5.22386 5 5 5.22386 5 5.5C5 6.48063 4.78279 7.0726 4.4277 7.4277C4.0726 7.78279 3.48063 8 2.5 8C2.22386 8 2 8.22386 2 8.5C2 8.77614 2.22386 9 2.5 9C3.48063 9 4.0726 9.21721 4.4277 9.5723C4.78279 9.9274 5 10.5194 5 11.5C5 11.7761 5.22386 12 5.5 12C5.77614 12 6 11.7761 6 11.5C6 10.5194 6.21721 9.9274 6.5723 9.5723C6.9274 9.21721 7.51937 9 8.5 9C8.77614 9 9 8.77614 9 8.5C9 8.22386 8.77614 8 8.5 8C7.51937 8 6.9274 7.78279 6.5723 7.4277C6.21721 7.0726 6 6.48063 6 5.5Z",
57253
+ fill: "currentColor"
57254
+ }
57255
+ ),
57256
+ /* @__PURE__ */ jsx(
57257
+ "path",
57258
+ {
57259
+ d: "M11 1.5C11 1.22386 10.7761 1 10.5 1C10.2239 1 10 1.22386 10 1.5C10 2.13341 9.85918 2.47538 9.66728 2.66728C9.47538 2.85918 9.13341 3 8.5 3C8.22386 3 8 3.22386 8 3.5C8 3.77614 8.22386 4 8.5 4C9.13341 4 9.47538 4.14082 9.66728 4.33272C9.85918 4.52462 10 4.86659 10 5.5C10 5.77614 10.2239 6 10.5 6C10.7761 6 11 5.77614 11 5.5C11 4.86659 11.1408 4.52462 11.3327 4.33272C11.5246 4.14082 11.8666 4 12.5 4C12.7761 4 13 3.77614 13 3.5C13 3.22386 12.7761 3 12.5 3C11.8666 3 11.5246 2.85918 11.3327 2.66728C11.1408 2.47538 11 2.13341 11 1.5Z",
57260
+ fill: "currentColor"
57261
+ }
57262
+ ),
57263
+ /* @__PURE__ */ jsx(
57264
+ "path",
57265
+ {
57266
+ fillRule: "evenodd",
57267
+ clipRule: "evenodd",
57268
+ d: "M21 15C15.4444 15 13 17.4444 13 23C13 17.4444 10.5556 15 5 15C10.5556 15 13 12.5556 13 7C13 12.5556 15.4444 15 21 15Z",
57269
+ stroke: "currentColor",
57270
+ strokeWidth: "1.5",
57271
+ strokeLinejoin: "round"
57272
+ }
57273
+ )
57274
+ ]
57275
+ }
57276
+ );
57277
+ }
57231
57278
  var DURATION_MS = 200;
57232
57279
  var easeOutCubic = (t2) => 1 - (1 - t2) ** 3;
57233
57280
  var snap = (px) => {
@@ -57288,6 +57335,7 @@ var EFFORT_ORDER = [
57288
57335
  "xhigh",
57289
57336
  "max"
57290
57337
  ];
57338
+ var AUTOMATIC_MODE = "$automatic";
57291
57339
  var EFFORT_LABELS = {
57292
57340
  minimal: "Minimal",
57293
57341
  low: "Light",
@@ -57495,6 +57543,7 @@ function ModelSelectorEffortPanel({
57495
57543
  canChooseModel,
57496
57544
  showReset,
57497
57545
  defaultSummary,
57546
+ resetLabel,
57498
57547
  onOpenModels,
57499
57548
  onSelectEffort,
57500
57549
  onReset
@@ -57523,7 +57572,7 @@ function ModelSelectorEffortPanel({
57523
57572
  /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "inline-flex size-7 shrink-0", children: /* @__PURE__ */ jsx(
57524
57573
  DropdownMenuItem,
57525
57574
  {
57526
- "aria-label": "Reset to default",
57575
+ "aria-label": resetLabel,
57527
57576
  "aria-description": showReset ? `Returns to ${defaultSummary}` : `Already using ${defaultSummary}`,
57528
57577
  disabled: !showReset,
57529
57578
  onSelect: (event) => event.preventDefault(),
@@ -57533,7 +57582,7 @@ function ModelSelectorEffortPanel({
57533
57582
  }
57534
57583
  ) }) }),
57535
57584
  /* @__PURE__ */ jsxs(TooltipContent, { side: "top", sideOffset: 6, className: "flex flex-col gap-0.5 px-2 py-1.5 text-xs", children: [
57536
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: showReset ? "Reset to default" : "Using the default" }),
57585
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: showReset ? resetLabel : "Using the default" }),
57537
57586
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: defaultSummary })
57538
57587
  ] })
57539
57588
  ] }) })
@@ -57556,7 +57605,8 @@ function ModelSelectorModelList({
57556
57605
  xaiConnect,
57557
57606
  xaiSubscriptionConnected = false,
57558
57607
  eligibleSubscriptionModels,
57559
- onSelectMode
57608
+ onSelectMode,
57609
+ onSelectAutomatic
57560
57610
  }) {
57561
57611
  const { cloudModes, chatgptModes, grokModes } = partitionModelModes(
57562
57612
  modes,
@@ -57566,6 +57616,20 @@ function ModelSelectorModelList({
57566
57616
  const visibleModes = [...cloudModes, ...chatgptModes, ...grokModes];
57567
57617
  return /* @__PURE__ */ jsxs(Fragment, { children: [
57568
57618
  /* @__PURE__ */ jsx(DropdownMenuLabel, { className: "px-2.5 pt-1.5 pb-1 text-xs font-medium text-muted-foreground", children: "Select model" }),
57619
+ onSelectAutomatic ? /* @__PURE__ */ jsxs(
57620
+ DropdownMenuItem,
57621
+ {
57622
+ onClick: onSelectAutomatic,
57623
+ className: "justify-between gap-3 rounded-md px-2.5 py-1.5 text-sm",
57624
+ children: [
57625
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
57626
+ /* @__PURE__ */ jsx(SparklesThreeIcon, { className: "size-3.5 shrink-0 text-muted-foreground" }),
57627
+ /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: "Auto" })
57628
+ ] }),
57629
+ selectedModeKey === AUTOMATIC_MODE ? /* @__PURE__ */ jsx(Checkmark1Icon, { className: "size-4 shrink-0 text-foreground!" }) : null
57630
+ ]
57631
+ }
57632
+ ) : null,
57569
57633
  visibleModes.map((mode, index) => {
57570
57634
  const chatgptHeading = index === cloudModes.length && chatgptModes.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
57571
57635
  cloudModes.length > 0 && /* @__PURE__ */ jsx(DropdownMenuSeparator, { className: "my-1" }),
@@ -57663,12 +57727,14 @@ function ModelSelectorMenu({
57663
57727
  showEffort,
57664
57728
  showReset,
57665
57729
  defaultSummary,
57730
+ resetLabel,
57666
57731
  codexConnect,
57667
57732
  chatGptSubscriptionConnected = false,
57668
57733
  xaiConnect,
57669
57734
  xaiSubscriptionConnected = false,
57670
57735
  eligibleSubscriptionModels,
57671
57736
  onSelectMode,
57737
+ onSelectAutomatic,
57672
57738
  onSelectEffort,
57673
57739
  onReset,
57674
57740
  view,
@@ -57749,7 +57815,8 @@ function ModelSelectorMenu({
57749
57815
  xaiConnect,
57750
57816
  xaiSubscriptionConnected,
57751
57817
  eligibleSubscriptionModels,
57752
- onSelectMode: handleSelectMode
57818
+ onSelectMode: handleSelectMode,
57819
+ onSelectAutomatic
57753
57820
  }
57754
57821
  ) : /* @__PURE__ */ jsx("div", { className: "px-2.5 py-2 text-sm", children: displayMode ? getDisplayName(displayMode) : modelLabel }) : /* @__PURE__ */ jsx(
57755
57822
  ModelSelectorEffortPanel,
@@ -57761,6 +57828,7 @@ function ModelSelectorMenu({
57761
57828
  canChooseModel: showModelSelector,
57762
57829
  showReset,
57763
57830
  defaultSummary,
57831
+ resetLabel,
57764
57832
  onOpenModels: () => swapTo("models"),
57765
57833
  onSelectEffort,
57766
57834
  onReset: () => {
@@ -57777,7 +57845,7 @@ function ModelSelectorMenu({
57777
57845
  onClick: () => onReset(),
57778
57846
  className: "justify-between gap-2 rounded-md px-2.5 py-2 text-sm",
57779
57847
  children: [
57780
- /* @__PURE__ */ jsx("span", { children: "Reset to default" }),
57848
+ /* @__PURE__ */ jsx("span", { children: resetLabel }),
57781
57849
  /* @__PURE__ */ jsx(ArrowRotateClockwiseIcon, { className: "size-4 shrink-0 text-muted-foreground" })
57782
57850
  ]
57783
57851
  }
@@ -57809,8 +57877,10 @@ function ModelSelectorSheet({
57809
57877
  xaiSubscriptionConnected = false,
57810
57878
  eligibleSubscriptionModels,
57811
57879
  onSelectMode,
57880
+ onSelectAutomatic,
57812
57881
  onSelectEffort,
57813
- onReset
57882
+ onReset,
57883
+ resetLabel
57814
57884
  }) {
57815
57885
  const { cloudModes, chatgptModes, grokModes } = partitionModelModes(
57816
57886
  modes,
@@ -57821,6 +57891,22 @@ function ModelSelectorSheet({
57821
57891
  return /* @__PURE__ */ jsx(Sheet, { open, onOpenChange, children: /* @__PURE__ */ jsxs(SheetContent, { side: "bottom", className: "gap-0 p-0", "aria-describedby": void 0, children: [
57822
57892
  /* @__PURE__ */ jsx(SheetHeader, { className: "shrink-0 gap-1 px-4 pt-3 pb-3", children: /* @__PURE__ */ jsx(SheetTitle, { children: "Model" }) }),
57823
57893
  /* @__PURE__ */ jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto scrollbar p-2", children: [
57894
+ showModelSelector && onSelectAutomatic && /* @__PURE__ */ jsxs(
57895
+ "button",
57896
+ {
57897
+ type: "button",
57898
+ onClick: onSelectAutomatic,
57899
+ "aria-pressed": selectedModeKey === AUTOMATIC_MODE,
57900
+ className: "flex min-h-11 w-full items-center justify-between gap-3 rounded-lg px-3 py-2 text-left transition-colors hover:bg-accent",
57901
+ children: [
57902
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-2.5", children: [
57903
+ /* @__PURE__ */ jsx(SparklesThreeIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
57904
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium", children: "Auto" })
57905
+ ] }),
57906
+ selectedModeKey === AUTOMATIC_MODE ? /* @__PURE__ */ jsx(Checkmark1Icon, { className: "size-4 shrink-0 text-foreground" }) : null
57907
+ ]
57908
+ }
57909
+ ),
57824
57910
  showModelSelector && visibleModes.map((mode, index) => {
57825
57911
  const connection = mode.provider === "codex" ? codexConnect : mode.provider === "xai" ? xaiConnect : void 0;
57826
57912
  const checking = mode.provider === "openai-codex" && chatGptSubscriptionConnected && eligibleSubscriptionModels === void 0;
@@ -57907,7 +57993,7 @@ function ModelSelectorSheet({
57907
57993
  onClick: onReset,
57908
57994
  className: "flex min-h-11 w-full items-center justify-between gap-3 rounded-lg px-3 py-2 text-left text-sm transition-colors hover:bg-accent",
57909
57995
  children: [
57910
- /* @__PURE__ */ jsx("span", { children: "Reset to default" }),
57996
+ /* @__PURE__ */ jsx("span", { children: resetLabel }),
57911
57997
  /* @__PURE__ */ jsx(ArrowRotateClockwiseIcon, { className: "size-4 shrink-0 text-muted-foreground" })
57912
57998
  ]
57913
57999
  }
@@ -57923,6 +58009,8 @@ function ModelSelector({
57923
58009
  disabled,
57924
58010
  sessionKey,
57925
58011
  defaultMode,
58012
+ automatic = false,
58013
+ pending = false,
57926
58014
  variant = "default",
57927
58015
  codexConnect,
57928
58016
  chatGptSubscriptionConnected = false,
@@ -57959,7 +58047,9 @@ function ModelSelector({
57959
58047
  const triggerRef = useRef(null);
57960
58048
  const [openWidth, setOpenWidth] = useState();
57961
58049
  const isMobile = useIsMobile();
57962
- const current = modeMap.get(currentMode) ?? visibleModes[0];
58050
+ const onAutomatic = automatic && currentMode === AUTOMATIC_MODE;
58051
+ const waiting = pending && !automatic && currentMode === AUTOMATIC_MODE;
58052
+ const current = onAutomatic || waiting ? void 0 : modeMap.get(currentMode) ?? visibleModes[0];
57963
58053
  const effortOptions = getModeEffortOptions(current);
57964
58054
  const defaultEffort = current?.reasoning?.defaultEffort ?? effortOptions[0];
57965
58055
  const activeEffort = reasoningEffort ?? defaultEffort;
@@ -57975,16 +58065,17 @@ function ModelSelector({
57975
58065
  if (!showModelSelector && !showEffort) return null;
57976
58066
  const isRail = variant === "rail";
57977
58067
  const effortLabel = showEffort && activeEffort ? EFFORT_LABELS[activeEffort] ?? activeEffort : null;
57978
- const modelLabel = current ? getShortDisplayName(current) : currentMode;
58068
+ const modelLabel = onAutomatic ? "Auto" : waiting ? "Model" : current ? getShortDisplayName(current) : currentMode;
57979
58069
  const defaultModeEntry = (defaultMode ? modeMap.get(defaultMode) : void 0) ?? visibleModes[0];
57980
58070
  const selectedModeKey = current?.key ?? currentMode;
57981
- const isDefaultModel = !showModelSelector || selectedModeKey === defaultModeEntry?.key;
58071
+ const isDefaultModel = !showModelSelector || selectedModeKey === (automatic ? AUTOMATIC_MODE : defaultModeEntry?.key);
57982
58072
  const isDefaultEffort = !showEffort || reasoningEffort == null || reasoningEffort === defaultEffort;
57983
58073
  const showReset = !isDefaultModel || !isDefaultEffort;
57984
58074
  const resetModel = showModelSelector ? defaultModeEntry : current;
57985
58075
  const resetEfforts = getModeEffortOptions(resetModel);
57986
58076
  const resetEffort = resetEfforts.length > 0 ? resetModel?.reasoning?.defaultEffort ?? resetEfforts[0] : void 0;
57987
- const defaultSummary = [
58077
+ const resetLabel = automatic ? "Return to Auto" : "Reset to default";
58078
+ const defaultSummary = automatic ? "Auto" : [
57988
58079
  resetModel ? getDisplayName(resetModel) : void 0,
57989
58080
  resetEffort ? EFFORT_LABELS[resetEffort] ?? resetEffort : void 0
57990
58081
  ].filter(Boolean).join(" \xB7 ");
@@ -58020,7 +58111,19 @@ function ModelSelector({
58020
58111
  applyEffort(effort);
58021
58112
  setOpen(false);
58022
58113
  };
58114
+ const handleSelectAutomatic = () => {
58115
+ if (!onAutomatic) {
58116
+ setReasoningEffort(sessionKey, null);
58117
+ onEffortChange?.(null);
58118
+ onModeChange(AUTOMATIC_MODE);
58119
+ }
58120
+ setOpen(false);
58121
+ };
58023
58122
  const handleReset = ({ keepOpen = false } = {}) => {
58123
+ if (automatic) {
58124
+ handleSelectAutomatic();
58125
+ return;
58126
+ }
58024
58127
  if (showEffort) {
58025
58128
  setReasoningEffort(sessionKey, null);
58026
58129
  onEffortChange?.(null);
@@ -58037,24 +58140,24 @@ function ModelSelector({
58037
58140
  const showsOpenModel = open && choosingModel && current !== void 0;
58038
58141
  const centerLabel = open && !showsOpenModel;
58039
58142
  const triggerLabel = open ? showsOpenModel && current ? /* @__PURE__ */ jsx("span", { className: cn(getStyleTextClass(current.style), "truncate"), children: getBrandlessDisplayName(current) }) : /* @__PURE__ */ jsx("span", { className: "font-normal text-muted-foreground", children: choosingModel ? "Select model" : "Select effort" }) : /* @__PURE__ */ jsxs("span", { className: cn("inline-flex items-center gap-1.5", condensed && "flex min-w-0"), children: [
58040
- showModelSelector ? /* @__PURE__ */ jsx("span", { className: cn(getStyleTextClass(current?.style), condensed && "truncate"), children: current ? getBrandlessDisplayName(current) : currentMode }) : null,
58143
+ showModelSelector ? /* @__PURE__ */ jsx("span", { className: cn(getStyleTextClass(current?.style), condensed && "truncate"), children: current ? getBrandlessDisplayName(current) : modelLabel }) : null,
58041
58144
  effortLabel ? /* @__PURE__ */ jsx("span", { className: cn(showModelSelector && "text-muted-foreground", condensed && "shrink-0"), children: effortLabel }) : null
58042
58145
  ] });
58043
- const ariaLabel = !showModelSelector ? `Reasoning effort ${effortLabel}` : effortLabel ? `Model ${modelLabel}, effort ${effortLabel}` : `Model ${modelLabel}`;
58146
+ const ariaLabel = waiting ? "Model, loading" : !showModelSelector ? `Reasoning effort ${effortLabel}` : effortLabel ? `Model ${modelLabel}, effort ${effortLabel}` : `Model ${modelLabel}`;
58044
58147
  const contextAriaLabel = context ? context.compacting ? `${ariaLabel}, compacting context` : `${ariaLabel}, context ${Math.round(context.percent)}% used` : ariaLabel;
58045
58148
  const showTriggerIcon = open ? showsOpenModel : showModelSelector || Boolean(context);
58046
- const triggerIcon = current && showTriggerIcon ? /* @__PURE__ */ jsx(
58149
+ const triggerIcon = !showTriggerIcon ? null : current ? /* @__PURE__ */ jsx(
58047
58150
  ModelIcon,
58048
58151
  {
58049
58152
  row: modeToBrandRow(current),
58050
58153
  className: "size-3! shrink-0 text-muted-foreground"
58051
58154
  }
58052
- ) : null;
58155
+ ) : onAutomatic ? /* @__PURE__ */ jsx(SparklesThreeIcon, { className: "size-3! shrink-0 text-muted-foreground" }) : null;
58053
58156
  const renderTrigger = (extra) => isRail ? /* @__PURE__ */ jsx(
58054
58157
  ComposerRailTrigger,
58055
58158
  {
58056
58159
  ref: triggerRef,
58057
- disabled,
58160
+ disabled: disabled || waiting,
58058
58161
  className: cn(condensed && "min-w-0 shrink", open && OPEN_TRIGGER_CLASS),
58059
58162
  style: open && openWidth ? { width: openWidth } : void 0,
58060
58163
  labelClassName: centerLabel ? "flex-1 text-center" : void 0,
@@ -58067,7 +58170,7 @@ function ModelSelector({
58067
58170
  Button,
58068
58171
  {
58069
58172
  type: "button",
58070
- disabled,
58173
+ disabled: disabled || waiting,
58071
58174
  variant: "ghost",
58072
58175
  size: "sm",
58073
58176
  ref: triggerRef,
@@ -58104,8 +58207,10 @@ function ModelSelector({
58104
58207
  xaiSubscriptionConnected,
58105
58208
  eligibleSubscriptionModels,
58106
58209
  onSelectMode: handleSelectMode,
58210
+ onSelectAutomatic: automatic ? handleSelectAutomatic : void 0,
58107
58211
  onSelectEffort: handleSelectEffort,
58108
- onReset: () => handleReset()
58212
+ onReset: () => handleReset(),
58213
+ resetLabel
58109
58214
  }
58110
58215
  )
58111
58216
  ] });
@@ -58126,12 +58231,14 @@ function ModelSelector({
58126
58231
  showEffort,
58127
58232
  showReset,
58128
58233
  defaultSummary,
58234
+ resetLabel,
58129
58235
  codexConnect,
58130
58236
  chatGptSubscriptionConnected,
58131
58237
  xaiConnect,
58132
58238
  xaiSubscriptionConnected,
58133
58239
  eligibleSubscriptionModels,
58134
58240
  onSelectMode: handleSelectMode,
58241
+ onSelectAutomatic: automatic ? handleSelectAutomatic : void 0,
58135
58242
  onSelectEffort: applyEffort,
58136
58243
  onReset: handleReset,
58137
58244
  view: menuView,
@@ -61683,6 +61790,8 @@ function ChatInputBar({
61683
61790
  modes,
61684
61791
  modelMode = "standard",
61685
61792
  defaultMode,
61793
+ automaticRouting = false,
61794
+ modelChoicePending = false,
61686
61795
  onModelModeChange,
61687
61796
  approvalMode = "auto",
61688
61797
  onApprovalModeChange,
@@ -62041,6 +62150,8 @@ function ChatInputBar({
62041
62150
  disabled: isDisabled,
62042
62151
  sessionKey,
62043
62152
  defaultMode,
62153
+ automatic: automaticRouting,
62154
+ pending: modelChoicePending,
62044
62155
  variant: "rail",
62045
62156
  codexConnect: hasCodexMode ? {
62046
62157
  connected: codexConnected,
@@ -63111,6 +63222,8 @@ function ChatInput({
63111
63222
  modes,
63112
63223
  modelMode,
63113
63224
  defaultMode,
63225
+ automaticRouting,
63226
+ modelChoicePending,
63114
63227
  onModelModeChange,
63115
63228
  approvalMode,
63116
63229
  onApprovalModeChange,
@@ -63170,6 +63283,8 @@ function ChatInput({
63170
63283
  modes,
63171
63284
  modelMode,
63172
63285
  defaultMode,
63286
+ automaticRouting,
63287
+ modelChoicePending,
63173
63288
  onModelModeChange,
63174
63289
  approvalMode,
63175
63290
  onApprovalModeChange,
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
3
3
  import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from './chunk-T5SANYSX.js';
4
- import { useIsMobile, useTranslation } from './chunk-ECZL2OI4.js';
4
+ import { useIsMobile, useTranslation } from './chunk-T4RG6NMW.js';
5
5
  import { ToolCallItem, ProcessorIcon } from './chunk-QBV7MAFV.js';
6
6
  import { toolKindVerb, getToolMeta, Shimmer, Collapse, ToolGroupReasoningItem, SkillToolItem, DeviceDesktopIcon, WorldSearchIcon, FileTextIcon, useStreamdownPlugins, CircleXIcon, STREAMDOWN_LINK_SAFETY, Folder1Icon, AppIconFrame, AppIcon, Collapsible, CollapsibleTrigger, CollapsibleContent, SquareArrowTopRightIcon, Icon } from './chunk-PKNEC4LJ.js';
7
7
  import { ChevronDownMediumIcon, Button, Skeleton, buttonVariants } from './chunk-UWKO24VT.js';
@@ -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-5D4QWX23.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-BGRFXLUY.js';
4
4
  import { Popover, PopoverTrigger, PopoverContent, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-T5SANYSX.js';
5
- import { useTranslation, useIsMobile } from './chunk-ECZL2OI4.js';
5
+ import { useTranslation, useIsMobile } from './chunk-T4RG6NMW.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';
@@ -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-ECZL2OI4.js';
4
+ import { useIsMobile, useTranslation } from './chunk-T4RG6NMW.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,7 +1,7 @@
1
1
  'use client';
2
- import { usePlugins, useChatCapabilityEnabled, resolvePluginLanguage, renderPluginBlock, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, ActionMenu, useArtifactStore, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, useArtifact, resolveArtifactIconFormat, artifactFormatIcon, useArtifactFileObjectUrl, artifactFormatSubtitle, ChatImageLightbox, ArrowsShowIcon, FileDownloadIcon, useClient, processMessageParts, getMessageDisplayTimestampValue, getMessageCreatedAtMs, isApprovalRequested, extractCitationsFromSteps, useSourcesEnrichment, extractImagesFromSteps, dedupeImageResults, getDocumentStreamArtifacts, getToolOutput, useCanvasStore, ImageResultsGallery, MessageDecisionCards, useChatCapabilities, useOptionalWorkspaceContext, useCitationViewer, useChatOverviewStore, dedup, extractDomain, sourceKind, SourceFavicon, Input, exportDocumentPdf, FilePdfIcon, StudioDisplayIcon, WorldIcon, MessageStepsGroup, getToolState, getToolInput, getToolErrorText, useChatOptInEnabled, ArrowRightIcon, formatFileSize, FileThumbnail, MobileScreenSheet, useAgentHistorySource, treatyErrorMessage, useRouter, useBasePath, useAgentPanelStore, AgentRoutineForm, getFileCategory, unwrap, unwrapData, CircleCheckIcon, agentRoutineKeys, LoaderIcon, useOptionalAgentsContext, avatarMotionForStream, AGENT_AVATAR_SIZE } from './chunk-5D4QWX23.js';
2
+ import { usePlugins, useChatCapabilityEnabled, resolvePluginLanguage, renderPluginBlock, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, ActionMenu, useArtifactStore, ArtifactActionsMenu, DotGrid1x3HorizontalTightIcon, useArtifact, resolveArtifactIconFormat, artifactFormatIcon, useArtifactFileObjectUrl, artifactFormatSubtitle, ChatImageLightbox, ArrowsShowIcon, FileDownloadIcon, useClient, processMessageParts, getMessageDisplayTimestampValue, getMessageCreatedAtMs, isApprovalRequested, extractCitationsFromSteps, useSourcesEnrichment, extractImagesFromSteps, dedupeImageResults, getDocumentStreamArtifacts, getToolOutput, useCanvasStore, ImageResultsGallery, MessageDecisionCards, useChatCapabilities, useOptionalWorkspaceContext, useCitationViewer, useChatOverviewStore, dedup, extractDomain, sourceKind, SourceFavicon, Input, exportDocumentPdf, FilePdfIcon, StudioDisplayIcon, WorldIcon, MessageStepsGroup, getToolState, getToolInput, getToolErrorText, useChatOptInEnabled, ArrowRightIcon, formatFileSize, FileThumbnail, MobileScreenSheet, useAgentHistorySource, treatyErrorMessage, useRouter, useBasePath, useAgentPanelStore, AgentRoutineForm, getFileCategory, unwrap, unwrapData, CircleCheckIcon, agentRoutineKeys, LoaderIcon, useOptionalAgentsContext, avatarMotionForStream, AGENT_AVATAR_SIZE } from './chunk-BGRFXLUY.js';
3
3
  import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, Popover, PopoverTrigger, PopoverContent } from './chunk-T5SANYSX.js';
4
- import { useIsMobile, useTranslation } from './chunk-ECZL2OI4.js';
4
+ import { useIsMobile, useTranslation } from './chunk-T4RG6NMW.js';
5
5
  import { MessageToolbar, MessageResponse, SquareArrowTopRightIcon, FileTextIcon, Shimmer, ClipboardIcon, Message, MessageContent, PencilIcon, deferDuringLayoutMotion, HoverCard, HoverCardTrigger, HoverCardContent, Collapse, Icon, CircleXIcon, ClockIcon } from './chunk-PKNEC4LJ.js';
6
6
  import { ChevronDownMediumIcon, Button, ScrollArea, Skeleton } from './chunk-UWKO24VT.js';
7
7
  import { CrossMediumIcon } from './chunk-2P4IEVOQ.js';
@@ -1445,44 +1445,121 @@ var en_default = {
1445
1445
  "admin.data.connectionFailure.hostUnresolved": "The host could not be resolved. Check the host name.",
1446
1446
  "admin.data.connectionFailure.connectionFailed": "The connection failed. Check the Source settings and try again.",
1447
1447
  "admin.data.connectionFailure.readOnlyRole": "The database role must be read-only before this Source can be used.",
1448
- "admin.overview.pageTitle": "Admin",
1449
1448
  "admin.overview.subtitleSingleOrg": "Governance for {org}",
1450
- "admin.overview.statMembers": "{count} members",
1451
- "admin.overview.statMembersOne": "1 member",
1452
- "admin.overview.statPending": "{count} pending",
1453
- "admin.overview.statWorkspaces": "{count} workspaces",
1454
- "admin.overview.statModels": "{count} models",
1455
- "admin.overview.tileMembers": "Members",
1456
- "admin.overview.tilePending": "Pending invites",
1457
- "admin.overview.tileWorkspaces": "Workspaces",
1458
- "admin.overview.tileModels": "Models",
1459
- "admin.overview.usage.title": "Usage (30 days)",
1460
- "admin.overview.kpi.totalSpend": "Total spend",
1461
- "admin.overview.kpi.acrossWorkspaces": "across {n} workspaces",
1462
- "admin.overview.kpi.pending": "{n} pending",
1463
- "admin.overview.kpi.allActive": "All active",
1464
- "admin.overview.kpi.unavailable": "Unavailable",
1465
- "admin.overview.kpi.idle": "{n} idle 30d",
1466
- "admin.overview.spendByWorkspace.title": "Spend by workspace",
1467
- "admin.overview.spendByWorkspace.empty": "No spend recorded for this period.",
1449
+ "admin.overview.activity.title": "Activity",
1450
+ "admin.overview.activity.description": "What the organization did. Pick a tile to chart it.",
1451
+ "admin.overview.activity.metrics": "Activity metric",
1452
+ "admin.overview.activity.people": "Active people",
1453
+ "admin.overview.activity.workspaces": "Active workspaces",
1454
+ "admin.overview.activity.workspacesOf": "of {n}",
1455
+ "admin.overview.activity.costPerPerson": "Cost per active person",
1456
+ "admin.overview.activity.noun.workspaces": "active workspaces",
1457
+ "admin.overview.activity.noun.costPerPerson": "cost per active person",
1458
+ "admin.overview.activity.captionWorkspaces": "Share of each workspace\u2019s members who were active",
1459
+ "admin.overview.activity.captionCostPerPerson": "Each workspace\u2019s spend divided by its active people",
1460
+ "admin.overview.activity.activeOfMembers": "{active} of {members} active",
1461
+ "admin.overview.activity.activeCount": "{n} active",
1462
+ "admin.overview.activity.emptyNewBodyRanked": "Once people use agents, chat or workflows, {metric} appears here, compared by workspace.",
1463
+ "admin.overview.activity.peopleOf": "of {n} \xB7 {pct}",
1464
+ "admin.overview.activity.spend": "Spend",
1465
+ "admin.overview.activity.noun.spend": "spend",
1466
+ "admin.overview.activity.captionSpend": "Total for the period, compared by workspace",
1467
+ "admin.overview.activity.spendCustomRange": "Spend and cost per active person are available for the last 7, 30 or 90 days, not a custom range.",
1468
+ "admin.overview.activity.spendShowPreset": "Show 7 days",
1469
+ "admin.overview.activity.captionPeople": "Daily count of people who used the platform",
1470
+ "admin.overview.activity.openUsage": "Open Usage",
1471
+ "admin.overview.activity.neverTitle": "No activity yet",
1472
+ "admin.overview.activity.neverBody": "Active people, runs, tokens and agent activity appear here once people start using agents, chat or workflows.",
1473
+ "admin.overview.activity.quietPeriod": "Nothing in the last {n} days",
1474
+ "admin.overview.activity.quietRange": "Nothing in this period",
1475
+ "admin.overview.activity.error": "Activity couldn\u2019t be loaded.",
1476
+ "admin.overview.activity.chartError": "The chart couldn\u2019t be loaded.",
1477
+ "admin.overview.activity.otherWorkspaces": "Other workspaces",
1478
+ "admin.overview.activity.retry": "Try again",
1479
+ "admin.overview.activity.noun.people": "active people",
1480
+ "admin.overview.activity.emptyNewTitle": "No {metric} yet",
1481
+ "admin.overview.activity.emptyNewBodyPeople": "Once people use agents, chat or workflows, the daily count of active people appears here.",
1482
+ "admin.overview.activity.emptyPeriodTitle": "No {metric} in this period",
1483
+ "admin.overview.activity.emptyPeriodBody": "Choose a longer period to look further back.",
1484
+ "admin.overview.activity.emptyPeriodBodyLongest": "Nothing was recorded in this period.",
1485
+ "admin.overview.activity.showLonger": "Show 90 days",
1486
+ "admin.overview.area.members.expiringSoonOne": "{n} invitation expiring soon",
1487
+ "admin.overview.area.members.expiredOne": "{n} invitation expired",
1488
+ "admin.overview.area.members.pendingOne": "{n} pending invitation",
1489
+ "admin.overview.area.ai.modelsOne": "{n} model enabled",
1490
+ "admin.overview.changes.description": "Who changed access, keys and settings.",
1468
1491
  "admin.overview.attention.title": "Needs attention",
1469
- "admin.overview.attention.allClear": "All clear \u2014 nothing needs your attention right now.",
1470
- "admin.overview.attention.inviteExpiring": "{count} invitation expires in 48 hours",
1471
- "admin.overview.attention.inviteExpiringMany": "{count} invitations expire in 48 hours",
1472
- "admin.overview.attention.roleOrphan": "Role '{role}' has no assigned members",
1473
- "admin.overview.attention.modelUnused": "{count} model entries had no usage in the last 30 days",
1474
- "admin.overview.attention.auditQuiet": "Last audit event recorded over 7 days ago",
1475
- "admin.overview.activity.title": "Recent activity",
1476
- "admin.overview.activity.viewAll": "View full audit log",
1477
- "admin.overview.activity.empty": "No recent activity",
1478
- "admin.overview.usage.tokens": "Tokens",
1479
- "admin.overview.usage.cost": "Cost",
1480
- "admin.overview.usage.tasks": "Tasks",
1481
- "admin.overview.usage.approvals": "Approvals",
1482
- "admin.overview.usage.notYet": "Usage data appears after the first agent run.",
1483
- "admin.overview.firstTime.title": "Welcome to {org}",
1484
- "admin.overview.firstTime.body": "Invite your team to get started.",
1485
- "admin.overview.firstTime.cta": "Invite members",
1492
+ "admin.overview.attention.setupLeft": "{n} setup steps left",
1493
+ "admin.overview.attention.setupLeftOne": "{n} setup step left",
1494
+ "admin.overview.attention.clearTitle": "Nothing needs you",
1495
+ "admin.overview.attention.clearBody": "Invitations, API keys, custom roles and the AI provider are all in order.",
1496
+ "admin.overview.attention.emails": "{emails}",
1497
+ "admin.overview.attention.inviteExpiring": "{count} invitation expires within 12 hours",
1498
+ "admin.overview.attention.inviteExpiringMany": "{count} invitations expire within 12 hours",
1499
+ "admin.overview.attention.inviteExpired": "{count} invitation has expired",
1500
+ "admin.overview.attention.inviteExpiredMany": "{count} invitations have expired",
1501
+ "admin.overview.attention.roleOrphan": "Custom role \u201C{role}\u201D has no members",
1502
+ "admin.overview.attention.roleOrphanMany": "{count} custom roles have no members",
1503
+ "admin.overview.attention.keyExpiring": "API key \u201C{name}\u201D expires soon",
1504
+ "admin.overview.attention.keyExpiringMany": "{count} API keys expire soon",
1505
+ "admin.overview.attention.keyOrphaned": "API key \u201C{name}\u201D has stopped working",
1506
+ "admin.overview.attention.keyOrphanedMany": "{count} API keys have stopped working",
1507
+ "admin.overview.attention.keyOrphanedDetail": "The person who created it left the organization. Rotate it to issue it under your account.",
1508
+ "admin.overview.attention.noProvider": "No AI provider is connected",
1509
+ "admin.overview.attention.noProviderDetail": "Agents, chat and the built-in assistant can\u2019t use AI until you add one.",
1510
+ "admin.overview.attention.action.review": "Review",
1511
+ "admin.overview.attention.action.rotate": "Rotate",
1512
+ "admin.overview.attention.action.connect": "Add provider",
1513
+ "admin.overview.organization.title": "Organization",
1514
+ "admin.overview.organization.caption": "As it is right now",
1515
+ "admin.overview.organization.areas": "Organization areas",
1516
+ "admin.overview.area.unavailable": "Unavailable",
1517
+ "admin.overview.area.members.label": "Members",
1518
+ "admin.overview.area.members.expiringSoon": "{n} invitations expiring soon",
1519
+ "admin.overview.area.members.expired": "{n} invitations expired",
1520
+ "admin.overview.area.members.pending": "{n} pending invitations",
1521
+ "admin.overview.area.members.noPending": "No pending invitations",
1522
+ "admin.overview.area.workspaces.label": "Workspaces",
1523
+ "admin.overview.area.workspaces.archived": "{n} archived",
1524
+ "admin.overview.area.workspaces.noneArchived": "None archived",
1525
+ "admin.overview.area.roles.label": "Roles",
1526
+ "admin.overview.area.roles.withoutMembers": "{n} without members",
1527
+ "admin.overview.area.roles.custom": "{n} custom",
1528
+ "admin.overview.area.roles.builtInOnly": "Built-in roles only",
1529
+ "admin.overview.area.ai.label": "AI providers",
1530
+ "admin.overview.area.ai.models": "{n} models enabled",
1531
+ "admin.overview.area.ai.noProvider": "No provider connected",
1532
+ "admin.overview.area.apiKeys.label": "API keys",
1533
+ "admin.overview.area.apiKeys.stopped": "{n} stopped working",
1534
+ "admin.overview.area.apiKeys.expiring": "{n} expiring soon",
1535
+ "admin.overview.area.apiKeys.healthy": "None expiring soon",
1536
+ "admin.overview.area.apiKeys.none": "No keys yet",
1537
+ "admin.overview.changes.title": "Recent changes",
1538
+ "admin.overview.changes.viewAll": "Open audit log",
1539
+ "admin.overview.changes.category.all": "All",
1540
+ "admin.overview.changes.category.access": "Access",
1541
+ "admin.overview.changes.category.keys": "Keys & secrets",
1542
+ "admin.overview.changes.category.settings": "Settings",
1543
+ "admin.overview.changes.event": "{resource} {verb}",
1544
+ "admin.overview.changes.apiKeyActor": "API key {name}",
1545
+ "admin.overview.changes.apiKey": "An API key",
1546
+ "admin.overview.changes.unknownActor": "Unknown person",
1547
+ "admin.overview.changes.emptyTitle": "No changes yet",
1548
+ "admin.overview.changes.emptyBody": "Access, key and settings changes appear here as your team works.",
1549
+ "admin.overview.changes.emptyAccessTitle": "No access changes yet",
1550
+ "admin.overview.changes.emptyAccessBody": "Invitations, members, roles and workspace membership that change show up here.",
1551
+ "admin.overview.changes.emptyKeysTitle": "No key or secret changes yet",
1552
+ "admin.overview.changes.emptyKeysBody": "API keys, provider credentials and workspace secrets that are created, rotated or revoked show up here.",
1553
+ "admin.overview.changes.emptySettingsTitle": "No settings changes yet",
1554
+ "admin.overview.changes.emptySettingsBody": "Changes to organization settings, AI providers, models, workspaces and usage limits show up here.",
1555
+ "admin.overview.changes.showAll": "Show all changes",
1556
+ "admin.overview.changes.error": "Recent changes couldn\u2019t be loaded.",
1557
+ "admin.overview.setup.workspace": "Create a workspace",
1558
+ "admin.overview.setup.workspaceBody": "Workspaces hold agents and knowledge, and control who can reach them.",
1559
+ "admin.overview.setup.workspaceAction": "Create workspace",
1560
+ "admin.overview.setup.invite": "Invite your team",
1561
+ "admin.overview.setup.inviteBody": "Add people by email and choose their role.",
1562
+ "admin.overview.setup.inviteAction": "Invite members",
1486
1563
  "admin.overview.errorTitle": "Could not load admin data",
1487
1564
  "admin.overview.errorBody": "Something went wrong loading this page.",
1488
1565
  "admin.members.pageTitle": "Members",
@@ -1624,6 +1701,109 @@ var en_default = {
1624
1701
  "admin.models.pageTitle": "Models",
1625
1702
  "admin.models.addModel": "Add model",
1626
1703
  "admin.models.imageGroup": "Image generation",
1704
+ "admin.ai.notAdded": "not added",
1705
+ "admin.ai.add": "Add",
1706
+ "admin.ai.addProvider": "Add {provider}",
1707
+ "admin.embedding.heading": "Embedding models",
1708
+ "admin.embedding.subtitle": "The model that prepares your organization\u2019s documents, memory and media so agents can search them. Knowledge bases and Media Sets all follow this choice.",
1709
+ "admin.embedding.label": "Embedding model",
1710
+ "admin.embedding.select": "Select a model",
1711
+ "admin.embedding.perMillion": "/ 1M",
1712
+ "admin.embedding.tokens": "{count} tokens",
1713
+ "admin.embedding.addAnyProvider": "Add a provider",
1714
+ "admin.embedding.modelCountOne": "1 model",
1715
+ "admin.embedding.modelCountMany": "{count} models",
1716
+ "admin.embedding.priceNote": "Published list prices; what your organization pays depends on its agreement with the provider.",
1717
+ "admin.embedding.notSetUp": "Not set up",
1718
+ "admin.embedding.noProvider": "None of your providers offers embedding models yet.",
1719
+ "admin.embedding.choose": "Choose a model so agents can search your organization\u2019s content.",
1720
+ "admin.embedding.waitingOne": "1 item is waiting to be prepared.",
1721
+ "admin.embedding.waitingMany": "{count} items are waiting to be prepared.",
1722
+ "admin.embedding.current": "Current",
1723
+ "admin.embedding.cantRun": "Search can\u2019t use this model until {provider} is added.",
1724
+ "admin.embedding.switchTo": "Switch to {model} via {provider}?",
1725
+ "admin.embedding.useModel": "Use {model} via {provider}?",
1726
+ "admin.embedding.reprepareOne": "1 item is prepared again. Search is incomplete until that finishes.",
1727
+ "admin.embedding.reprepareMany": "{count} items are prepared again. Search is incomplete until that finishes.",
1728
+ "admin.embedding.prepareOne": "1 item is prepared. Search is incomplete until that finishes.",
1729
+ "admin.embedding.prepareMany": "{count} items are prepared. Search is incomplete until that finishes.",
1730
+ "admin.embedding.nothingToPrepare": "Nothing is prepared yet, so this takes effect at once.",
1731
+ "admin.embedding.review": "Review change",
1732
+ "admin.embedding.via": "{model} via {provider}",
1733
+ "admin.embedding.setError": "The model could not be set.",
1734
+ "admin.embedding.run.preparingFor": "Preparing content for {model}",
1735
+ "admin.embedding.run.percent": "{percent}%",
1736
+ "admin.embedding.run.stoppedAt": "Preparation stopped at {percent}%",
1737
+ "admin.embedding.run.leavesOut": "search leaves out the rest",
1738
+ "admin.embedding.run.details": "Details",
1739
+ "admin.embedding.run.hideDetails": "Hide details",
1740
+ "admin.embedding.run.stop": "Stop",
1741
+ "admin.embedding.run.resume": "Resume",
1742
+ "admin.embedding.run.keep": "Keep preparing",
1743
+ "admin.embedding.run.confirmTitle": "Stop preparing?",
1744
+ "admin.embedding.run.confirmBody": "{model} stays the model. What's prepared stays searchable; search leaves out the rest until you resume.",
1745
+ "admin.embedding.run.progressLabel": "Preparation progress",
1746
+ "admin.embedding.run.replacing": "Replacing",
1747
+ "admin.embedding.run.started": "Started",
1748
+ "admin.embedding.run.items": "Items",
1749
+ "admin.embedding.run.itemsValue": "{done} of {planned} prepared",
1750
+ "admin.embedding.run.kind.knowledge": "Knowledge bases",
1751
+ "admin.embedding.run.kind.memory": "Agent memory",
1752
+ "admin.embedding.run.kind.media": "Media Sets",
1753
+ "admin.embedding.run.kindValue": "{done} of {planned}",
1754
+ "admin.embedding.run.ready": "Ready",
1755
+ "admin.embedding.run.unscoped": "{count} items are not attached to a workspace and are not covered here. Ask your administrator to prepare them separately.",
1756
+ "admin.embedding.run.error.providerUnavailable": "the provider could not be reached",
1757
+ "admin.embedding.run.error.auth": "the provider rejected this organization\u2019s credentials",
1758
+ "admin.embedding.run.error.rateLimited": "the provider is rate-limiting this organization",
1759
+ "admin.embedding.run.error.dimensionMismatch": "the chosen model does not produce results this platform can store",
1760
+ "admin.embedding.run.error.noProgress": "preparation stopped making progress",
1761
+ "admin.embedding.run.error.continuationCap": "preparation ran far longer than the content should need",
1762
+ "admin.embedding.run.error.rowCeiling": "preparation processed far more content than expected",
1763
+ "admin.embedding.run.error.unknown": "the reason is unknown",
1764
+ "admin.voices.heading": "Voices",
1765
+ "admin.voices.subtitle": "Voices agents can speak with. Each agent picks one by name in its settings; an agent with none chosen doesn\u2019t speak.",
1766
+ "admin.voices.add": "Add voice",
1767
+ "admin.voices.adding": "Adding\u2026",
1768
+ "admin.voices.needKeyTitle": "Voices need ElevenLabs",
1769
+ "admin.voices.needKeyBody": "Agents speak through ElevenLabs. Add its API key, then register the voices agents can use.",
1770
+ "admin.voices.keyRemovedTitle": "Agents can\u2019t speak until ElevenLabs is added again",
1771
+ "admin.voices.keyRemovedBody": "The organization\u2019s ElevenLabs key was removed, so every voice below is silent.",
1772
+ "admin.voices.addElevenLabs": "Add ElevenLabs",
1773
+ "admin.voices.emptyTitle": "No voices yet",
1774
+ "admin.voices.emptyBody": "Register an ElevenLabs voice by name, then choose it in an agent\u2019s settings.",
1775
+ "admin.voices.unused": "Not used by any agent",
1776
+ "admin.voices.usedByOne": "Used by 1 agent",
1777
+ "admin.voices.usedByMany": "Used by {count} agents",
1778
+ "admin.voices.rowActions": "Actions for {name}",
1779
+ "admin.voices.remove": "Remove",
1780
+ "admin.voices.removeTitle": "Remove {name}?",
1781
+ "admin.voices.removeBody": "Agents can no longer choose {name}. An agent that speaks with it has to be switched to another voice first.",
1782
+ "admin.voices.inUseTitle": "{name} is still in use",
1783
+ "admin.voices.inUseBody": "These agents speak with {name}. Choose another voice for them in their Models settings and publish, then remove it.",
1784
+ "admin.voices.inUseUnnamed": "An agent without a name",
1785
+ "admin.voices.removeConfirm": "Remove voice",
1786
+ "admin.voices.dialogTitle": "Add voice",
1787
+ "admin.voices.dialogDescription": "Give an ElevenLabs voice a name. Agents choose it by that name in their settings.",
1788
+ "admin.voices.name": "Name",
1789
+ "admin.voices.namePlaceholder": "Ben",
1790
+ "admin.voices.nameHint": "What agents\u2019 settings show.",
1791
+ "admin.voices.nameTaken": "A voice with this name already exists.",
1792
+ "admin.voices.voiceId": "ElevenLabs voice ID",
1793
+ "admin.voices.voiceIdPlaceholder": "Pg9csYyww2U9PYHJWRGS",
1794
+ "admin.voices.voiceIdHint": "In ElevenLabs, open the voice and copy its ID.",
1795
+ "admin.voices.findVoice": "Find a voice",
1796
+ "admin.voices.required": "Enter this value.",
1797
+ "admin.voices.speed": "Speaking speed",
1798
+ "admin.voices.speedHint": "How fast every agent reads its replies. Takes effect on the next reply.",
1799
+ "admin.voices.speedSlower": "Slower",
1800
+ "admin.voices.speedSlightlySlower": "Slightly slower",
1801
+ "admin.voices.speedNatural": "Natural",
1802
+ "admin.voices.speedSlightlyFaster": "Slightly faster",
1803
+ "admin.voices.speedFaster": "Faster",
1804
+ "admin.voices.speedDefault": "Default",
1805
+ "admin.voices.speedOption": "{label} ({value}\xD7)",
1806
+ "admin.voices.speedValue": "{value}\xD7",
1627
1807
  "admin.imageModel.heading": "Image generation",
1628
1808
  "admin.imageModel.subtitle": "The model used to generate images and slide-template decks for this organization.",
1629
1809
  "admin.imageModel.label": "Image model",
@@ -1677,7 +1857,9 @@ var en_default = {
1677
1857
  "admin.models.form.modelPicker.catalog": "Catalog",
1678
1858
  "admin.models.form.modelPicker.reasoning": "Reasoning",
1679
1859
  "admin.models.empty.title": "No models yet",
1680
- "admin.models.empty.body": "Add a model from an approved provider so agents can use it.",
1860
+ "admin.models.empty.body": "Choose which of your providers\u2019 models agents and chat can use.",
1861
+ "admin.models.empty.noProvider": "Models come from your providers. Add a provider above first.",
1862
+ "admin.models.empty.readOnly": "Ask an administrator of your organization to add models.",
1681
1863
  "admin.models.delete.title": "Delete model '{slug}'?",
1682
1864
  "admin.models.delete.body": "This will fail if any agents are currently using this model.",
1683
1865
  "admin.models.delete.confirm": "Delete model",
@@ -6155,44 +6337,121 @@ var id_default = {
6155
6337
  "admin.data.connectionFailure.hostUnresolved": "Host tidak dapat ditemukan. Periksa nama host.",
6156
6338
  "admin.data.connectionFailure.connectionFailed": "Koneksi gagal. Periksa pengaturan Sumber lalu coba lagi.",
6157
6339
  "admin.data.connectionFailure.readOnlyRole": "Peran basis data harus hanya-baca sebelum Sumber ini dapat digunakan.",
6158
- "admin.overview.pageTitle": "Admin",
6159
6340
  "admin.overview.subtitleSingleOrg": "Tata kelola untuk {org}",
6160
- "admin.overview.statMembers": "{count} anggota",
6161
- "admin.overview.statMembersOne": "1 anggota",
6162
- "admin.overview.statPending": "{count} menunggu",
6163
- "admin.overview.statWorkspaces": "{count} workspace",
6164
- "admin.overview.statModels": "{count} model",
6165
- "admin.overview.tileMembers": "Anggota",
6166
- "admin.overview.tilePending": "Undangan tertunda",
6167
- "admin.overview.tileWorkspaces": "Workspace",
6168
- "admin.overview.tileModels": "Model",
6169
- "admin.overview.usage.title": "Penggunaan (30 hari)",
6170
- "admin.overview.kpi.totalSpend": "Total biaya",
6171
- "admin.overview.kpi.acrossWorkspaces": "di {n} workspace",
6172
- "admin.overview.kpi.pending": "{n} tertunda",
6173
- "admin.overview.kpi.allActive": "Semua aktif",
6174
- "admin.overview.kpi.unavailable": "Tidak tersedia",
6175
- "admin.overview.kpi.idle": "{n} tidak terpakai 30h",
6176
- "admin.overview.spendByWorkspace.title": "Biaya per workspace",
6177
- "admin.overview.spendByWorkspace.empty": "Belum ada biaya pada periode ini.",
6341
+ "admin.overview.activity.title": "Aktivitas",
6342
+ "admin.overview.activity.description": "Apa yang dilakukan organisasi. Pilih kartu untuk menampilkan grafiknya.",
6343
+ "admin.overview.activity.metrics": "Metrik aktivitas",
6344
+ "admin.overview.activity.people": "Orang aktif",
6345
+ "admin.overview.activity.workspaces": "Workspace aktif",
6346
+ "admin.overview.activity.workspacesOf": "dari {n}",
6347
+ "admin.overview.activity.costPerPerson": "Biaya per orang aktif",
6348
+ "admin.overview.activity.noun.workspaces": "workspace aktif",
6349
+ "admin.overview.activity.noun.costPerPerson": "biaya per orang aktif",
6350
+ "admin.overview.activity.captionWorkspaces": "Porsi anggota setiap workspace yang aktif",
6351
+ "admin.overview.activity.captionCostPerPerson": "Pengeluaran setiap workspace dibagi jumlah orang aktifnya",
6352
+ "admin.overview.activity.activeOfMembers": "{active} dari {members} aktif",
6353
+ "admin.overview.activity.activeCount": "{n} aktif",
6354
+ "admin.overview.activity.emptyNewBodyRanked": "Setelah orang memakai agen, chat, atau workflow, {metric} muncul di sini, dibandingkan per workspace.",
6355
+ "admin.overview.activity.peopleOf": "dari {n} \xB7 {pct}",
6356
+ "admin.overview.activity.spend": "Pengeluaran",
6357
+ "admin.overview.activity.noun.spend": "pengeluaran",
6358
+ "admin.overview.activity.captionSpend": "Total untuk periode ini, dibandingkan per workspace",
6359
+ "admin.overview.activity.spendCustomRange": "Pengeluaran dan biaya per orang aktif tersedia untuk 7, 30, atau 90 hari terakhir, bukan rentang kustom.",
6360
+ "admin.overview.activity.spendShowPreset": "Tampilkan 7 hari",
6361
+ "admin.overview.activity.captionPeople": "Jumlah harian orang yang memakai platform",
6362
+ "admin.overview.activity.openUsage": "Buka Penggunaan",
6363
+ "admin.overview.activity.neverTitle": "Belum ada aktivitas",
6364
+ "admin.overview.activity.neverBody": "Orang aktif, run, token, dan aktivitas agen muncul di sini setelah orang mulai memakai agen, chat, atau workflow.",
6365
+ "admin.overview.activity.quietPeriod": "Tidak ada aktivitas dalam {n} hari terakhir",
6366
+ "admin.overview.activity.quietRange": "Tidak ada aktivitas pada periode ini",
6367
+ "admin.overview.activity.error": "Aktivitas tidak dapat dimuat.",
6368
+ "admin.overview.activity.chartError": "Grafik tidak dapat dimuat.",
6369
+ "admin.overview.activity.otherWorkspaces": "Workspace lainnya",
6370
+ "admin.overview.activity.retry": "Coba lagi",
6371
+ "admin.overview.activity.noun.people": "orang aktif",
6372
+ "admin.overview.activity.emptyNewTitle": "Belum ada {metric}",
6373
+ "admin.overview.activity.emptyNewBodyPeople": "Setelah orang memakai agen, chat, atau workflow, jumlah harian orang aktif muncul di sini.",
6374
+ "admin.overview.activity.emptyPeriodTitle": "Tidak ada {metric} pada periode ini",
6375
+ "admin.overview.activity.emptyPeriodBody": "Pilih periode yang lebih panjang untuk melihat lebih jauh ke belakang.",
6376
+ "admin.overview.activity.emptyPeriodBodyLongest": "Tidak ada yang tercatat pada periode ini.",
6377
+ "admin.overview.activity.showLonger": "Tampilkan 90 hari",
6378
+ "admin.overview.area.members.expiringSoonOne": "{n} undangan segera kedaluwarsa",
6379
+ "admin.overview.area.members.expiredOne": "{n} undangan kedaluwarsa",
6380
+ "admin.overview.area.members.pendingOne": "{n} undangan tertunda",
6381
+ "admin.overview.area.ai.modelsOne": "{n} model aktif",
6382
+ "admin.overview.changes.description": "Siapa yang mengubah akses, kunci, dan pengaturan.",
6178
6383
  "admin.overview.attention.title": "Perlu perhatian",
6179
- "admin.overview.attention.allClear": "Tidak ada yang perlu perhatian saat ini.",
6180
- "admin.overview.attention.inviteExpiring": "{count} undangan berakhir dalam 48 jam",
6181
- "admin.overview.attention.inviteExpiringMany": "{count} undangan berakhir dalam 48 jam",
6182
- "admin.overview.attention.roleOrphan": "Peran '{role}' tidak memiliki anggota",
6183
- "admin.overview.attention.modelUnused": "{count} entri model tidak digunakan dalam 30 hari terakhir",
6184
- "admin.overview.attention.auditQuiet": "Peristiwa audit terakhir lebih dari 7 hari yang lalu",
6185
- "admin.overview.activity.title": "Aktivitas terbaru",
6186
- "admin.overview.activity.viewAll": "Lihat log audit lengkap",
6187
- "admin.overview.activity.empty": "Belum ada aktivitas",
6188
- "admin.overview.usage.tokens": "Token",
6189
- "admin.overview.usage.cost": "Biaya",
6190
- "admin.overview.usage.tasks": "Tugas",
6191
- "admin.overview.usage.approvals": "Persetujuan",
6192
- "admin.overview.usage.notYet": "Data penggunaan muncul setelah agen pertama dijalankan.",
6193
- "admin.overview.firstTime.title": "Selamat datang di {org}",
6194
- "admin.overview.firstTime.body": "Undang tim Anda untuk memulai.",
6195
- "admin.overview.firstTime.cta": "Undang anggota",
6384
+ "admin.overview.attention.setupLeft": "{n} langkah penyiapan tersisa",
6385
+ "admin.overview.attention.setupLeftOne": "{n} langkah penyiapan tersisa",
6386
+ "admin.overview.attention.clearTitle": "Tidak ada yang perlu Anda tangani",
6387
+ "admin.overview.attention.clearBody": "Undangan, kunci API, peran kustom, dan penyedia AI semuanya beres.",
6388
+ "admin.overview.attention.emails": "{emails}",
6389
+ "admin.overview.attention.inviteExpiring": "{count} undangan kedaluwarsa dalam 12 jam",
6390
+ "admin.overview.attention.inviteExpiringMany": "{count} undangan kedaluwarsa dalam 12 jam",
6391
+ "admin.overview.attention.inviteExpired": "{count} undangan sudah kedaluwarsa",
6392
+ "admin.overview.attention.inviteExpiredMany": "{count} undangan sudah kedaluwarsa",
6393
+ "admin.overview.attention.roleOrphan": "Peran kustom \u201C{role}\u201D tidak memiliki anggota",
6394
+ "admin.overview.attention.roleOrphanMany": "{count} peran kustom tidak memiliki anggota",
6395
+ "admin.overview.attention.keyExpiring": "Kunci API \u201C{name}\u201D segera kedaluwarsa",
6396
+ "admin.overview.attention.keyExpiringMany": "{count} kunci API segera kedaluwarsa",
6397
+ "admin.overview.attention.keyOrphaned": "Kunci API \u201C{name}\u201D berhenti berfungsi",
6398
+ "admin.overview.attention.keyOrphanedMany": "{count} kunci API berhenti berfungsi",
6399
+ "admin.overview.attention.keyOrphanedDetail": "Pembuatnya telah keluar dari organisasi. Rotasi kunci untuk menerbitkannya atas akun Anda.",
6400
+ "admin.overview.attention.noProvider": "Belum ada penyedia AI yang terhubung",
6401
+ "admin.overview.attention.noProviderDetail": "Agen, chat, dan asisten bawaan tidak dapat memakai AI sampai Anda menambahkannya.",
6402
+ "admin.overview.attention.action.review": "Tinjau",
6403
+ "admin.overview.attention.action.rotate": "Rotasi",
6404
+ "admin.overview.attention.action.connect": "Tambah penyedia",
6405
+ "admin.overview.organization.title": "Organisasi",
6406
+ "admin.overview.organization.caption": "Kondisi saat ini",
6407
+ "admin.overview.organization.areas": "Area organisasi",
6408
+ "admin.overview.area.unavailable": "Tidak tersedia",
6409
+ "admin.overview.area.members.label": "Anggota",
6410
+ "admin.overview.area.members.expiringSoon": "{n} undangan segera kedaluwarsa",
6411
+ "admin.overview.area.members.expired": "{n} undangan kedaluwarsa",
6412
+ "admin.overview.area.members.pending": "{n} undangan tertunda",
6413
+ "admin.overview.area.members.noPending": "Tidak ada undangan tertunda",
6414
+ "admin.overview.area.workspaces.label": "Workspace",
6415
+ "admin.overview.area.workspaces.archived": "{n} diarsipkan",
6416
+ "admin.overview.area.workspaces.noneArchived": "Tidak ada yang diarsipkan",
6417
+ "admin.overview.area.roles.label": "Peran",
6418
+ "admin.overview.area.roles.withoutMembers": "{n} tanpa anggota",
6419
+ "admin.overview.area.roles.custom": "{n} kustom",
6420
+ "admin.overview.area.roles.builtInOnly": "Hanya peran bawaan",
6421
+ "admin.overview.area.ai.label": "Penyedia AI",
6422
+ "admin.overview.area.ai.models": "{n} model aktif",
6423
+ "admin.overview.area.ai.noProvider": "Belum ada penyedia",
6424
+ "admin.overview.area.apiKeys.label": "Kunci API",
6425
+ "admin.overview.area.apiKeys.stopped": "{n} berhenti berfungsi",
6426
+ "admin.overview.area.apiKeys.expiring": "{n} segera kedaluwarsa",
6427
+ "admin.overview.area.apiKeys.healthy": "Tidak ada yang segera kedaluwarsa",
6428
+ "admin.overview.area.apiKeys.none": "Belum ada kunci",
6429
+ "admin.overview.changes.title": "Perubahan terbaru",
6430
+ "admin.overview.changes.viewAll": "Buka log audit",
6431
+ "admin.overview.changes.category.all": "Semua",
6432
+ "admin.overview.changes.category.access": "Akses",
6433
+ "admin.overview.changes.category.keys": "Kunci & rahasia",
6434
+ "admin.overview.changes.category.settings": "Pengaturan",
6435
+ "admin.overview.changes.event": "{resource} {verb}",
6436
+ "admin.overview.changes.apiKeyActor": "Kunci API {name}",
6437
+ "admin.overview.changes.apiKey": "Sebuah kunci API",
6438
+ "admin.overview.changes.unknownActor": "Orang tidak dikenal",
6439
+ "admin.overview.changes.emptyTitle": "Belum ada perubahan",
6440
+ "admin.overview.changes.emptyBody": "Perubahan akses, kunci, dan pengaturan muncul di sini seiring tim Anda bekerja.",
6441
+ "admin.overview.changes.emptyAccessTitle": "Belum ada perubahan akses",
6442
+ "admin.overview.changes.emptyAccessBody": "Undangan, anggota, peran, dan keanggotaan workspace yang berubah muncul di sini.",
6443
+ "admin.overview.changes.emptyKeysTitle": "Belum ada perubahan kunci atau rahasia",
6444
+ "admin.overview.changes.emptyKeysBody": "Kunci API, kredensial penyedia, dan rahasia workspace yang dibuat, dirotasi, atau dicabut muncul di sini.",
6445
+ "admin.overview.changes.emptySettingsTitle": "Belum ada perubahan pengaturan",
6446
+ "admin.overview.changes.emptySettingsBody": "Perubahan pada pengaturan organisasi, penyedia AI, model, workspace, dan batas penggunaan muncul di sini.",
6447
+ "admin.overview.changes.showAll": "Tampilkan semua perubahan",
6448
+ "admin.overview.changes.error": "Perubahan terbaru tidak dapat dimuat.",
6449
+ "admin.overview.setup.workspace": "Buat workspace",
6450
+ "admin.overview.setup.workspaceBody": "Workspace menampung agen dan pengetahuan, serta mengatur siapa yang dapat mengaksesnya.",
6451
+ "admin.overview.setup.workspaceAction": "Buat workspace",
6452
+ "admin.overview.setup.invite": "Undang tim Anda",
6453
+ "admin.overview.setup.inviteBody": "Tambahkan orang lewat email dan pilih perannya.",
6454
+ "admin.overview.setup.inviteAction": "Undang anggota",
6196
6455
  "admin.overview.errorTitle": "Tidak dapat memuat data admin",
6197
6456
  "admin.overview.errorBody": "Terjadi kesalahan saat memuat halaman ini.",
6198
6457
  "admin.members.pageTitle": "Anggota",
@@ -6334,6 +6593,109 @@ var id_default = {
6334
6593
  "admin.models.pageTitle": "Model",
6335
6594
  "admin.models.addModel": "Tambah model",
6336
6595
  "admin.models.imageGroup": "Pembuatan gambar",
6596
+ "admin.ai.notAdded": "belum ditambahkan",
6597
+ "admin.ai.add": "Tambah",
6598
+ "admin.ai.addProvider": "Tambah {provider}",
6599
+ "admin.embedding.heading": "Model embedding",
6600
+ "admin.embedding.subtitle": "Model yang menyiapkan dokumen, memori, dan media organisasi Anda agar bisa dicari agen. Semua basis pengetahuan dan Media Set mengikuti pilihan ini.",
6601
+ "admin.embedding.label": "Model embedding",
6602
+ "admin.embedding.select": "Pilih model",
6603
+ "admin.embedding.perMillion": "/ 1 jt",
6604
+ "admin.embedding.tokens": "{count} token",
6605
+ "admin.embedding.addAnyProvider": "Tambah provider",
6606
+ "admin.embedding.modelCountOne": "1 model",
6607
+ "admin.embedding.modelCountMany": "{count} model",
6608
+ "admin.embedding.priceNote": "Harga daftar yang dipublikasikan; yang dibayar organisasi Anda bergantung pada perjanjiannya dengan provider.",
6609
+ "admin.embedding.notSetUp": "Belum disiapkan",
6610
+ "admin.embedding.noProvider": "Belum ada provider Anda yang menawarkan model embedding.",
6611
+ "admin.embedding.choose": "Pilih model agar agen dapat mencari konten organisasi Anda.",
6612
+ "admin.embedding.waitingOne": "1 item menunggu disiapkan.",
6613
+ "admin.embedding.waitingMany": "{count} item menunggu disiapkan.",
6614
+ "admin.embedding.current": "Saat ini",
6615
+ "admin.embedding.cantRun": "Pencarian tidak dapat memakai model ini sampai {provider} ditambahkan.",
6616
+ "admin.embedding.switchTo": "Beralih ke {model} melalui {provider}?",
6617
+ "admin.embedding.useModel": "Pakai {model} melalui {provider}?",
6618
+ "admin.embedding.reprepareOne": "1 item disiapkan ulang. Pencarian belum lengkap sampai selesai.",
6619
+ "admin.embedding.reprepareMany": "{count} item disiapkan ulang. Pencarian belum lengkap sampai selesai.",
6620
+ "admin.embedding.prepareOne": "1 item disiapkan. Pencarian belum lengkap sampai selesai.",
6621
+ "admin.embedding.prepareMany": "{count} item disiapkan. Pencarian belum lengkap sampai selesai.",
6622
+ "admin.embedding.nothingToPrepare": "Belum ada yang disiapkan, jadi perubahan langsung berlaku.",
6623
+ "admin.embedding.review": "Tinjau perubahan",
6624
+ "admin.embedding.via": "{model} melalui {provider}",
6625
+ "admin.embedding.setError": "Model tidak dapat disetel.",
6626
+ "admin.embedding.run.preparingFor": "Menyiapkan konten untuk {model}",
6627
+ "admin.embedding.run.percent": "{percent}%",
6628
+ "admin.embedding.run.stoppedAt": "Persiapan berhenti di {percent}%",
6629
+ "admin.embedding.run.leavesOut": "pencarian melewatkan sisanya",
6630
+ "admin.embedding.run.details": "Detail",
6631
+ "admin.embedding.run.hideDetails": "Sembunyikan detail",
6632
+ "admin.embedding.run.stop": "Hentikan",
6633
+ "admin.embedding.run.resume": "Lanjutkan",
6634
+ "admin.embedding.run.keep": "Terus siapkan",
6635
+ "admin.embedding.run.confirmTitle": "Hentikan persiapan?",
6636
+ "admin.embedding.run.confirmBody": "{model} tetap menjadi model. Yang sudah disiapkan tetap dapat dicari; pencarian melewatkan sisanya sampai Anda melanjutkan.",
6637
+ "admin.embedding.run.progressLabel": "Kemajuan persiapan",
6638
+ "admin.embedding.run.replacing": "Menggantikan",
6639
+ "admin.embedding.run.started": "Dimulai",
6640
+ "admin.embedding.run.items": "Item",
6641
+ "admin.embedding.run.itemsValue": "{done} dari {planned} disiapkan",
6642
+ "admin.embedding.run.kind.knowledge": "Basis pengetahuan",
6643
+ "admin.embedding.run.kind.memory": "Memori agen",
6644
+ "admin.embedding.run.kind.media": "Media Set",
6645
+ "admin.embedding.run.kindValue": "{done} dari {planned}",
6646
+ "admin.embedding.run.ready": "Siap",
6647
+ "admin.embedding.run.unscoped": "{count} item tidak terhubung ke workspace dan tidak tercakup di sini. Minta administrator Anda untuk menyiapkannya secara terpisah.",
6648
+ "admin.embedding.run.error.providerUnavailable": "provider tidak dapat dihubungi",
6649
+ "admin.embedding.run.error.auth": "provider menolak kredensial organisasi ini",
6650
+ "admin.embedding.run.error.rateLimited": "provider membatasi laju permintaan organisasi ini",
6651
+ "admin.embedding.run.error.dimensionMismatch": "model yang dipilih tidak menghasilkan hasil yang dapat disimpan platform ini",
6652
+ "admin.embedding.run.error.noProgress": "persiapan berhenti mengalami kemajuan",
6653
+ "admin.embedding.run.error.continuationCap": "persiapan berjalan jauh lebih lama dari yang dibutuhkan konten",
6654
+ "admin.embedding.run.error.rowCeiling": "persiapan memproses konten jauh lebih banyak dari yang diperkirakan",
6655
+ "admin.embedding.run.error.unknown": "penyebabnya tidak diketahui",
6656
+ "admin.voices.heading": "Suara",
6657
+ "admin.voices.subtitle": "Suara yang bisa dipakai agen untuk berbicara. Setiap agen memilih satu berdasarkan nama di pengaturannya; agen tanpa pilihan tidak berbicara.",
6658
+ "admin.voices.add": "Tambah suara",
6659
+ "admin.voices.adding": "Menambahkan\u2026",
6660
+ "admin.voices.needKeyTitle": "Suara memerlukan ElevenLabs",
6661
+ "admin.voices.needKeyBody": "Agen berbicara melalui ElevenLabs. Tambahkan API key-nya, lalu daftarkan suara yang bisa dipakai agen.",
6662
+ "admin.voices.keyRemovedTitle": "Agen tidak bisa berbicara sampai ElevenLabs ditambahkan lagi",
6663
+ "admin.voices.keyRemovedBody": "Kunci ElevenLabs organisasi telah dihapus, jadi semua suara di bawah tidak bersuara.",
6664
+ "admin.voices.addElevenLabs": "Tambah ElevenLabs",
6665
+ "admin.voices.emptyTitle": "Belum ada suara",
6666
+ "admin.voices.emptyBody": "Daftarkan suara ElevenLabs dengan sebuah nama, lalu pilih di pengaturan agen.",
6667
+ "admin.voices.unused": "Tidak dipakai agen mana pun",
6668
+ "admin.voices.usedByOne": "Dipakai 1 agen",
6669
+ "admin.voices.usedByMany": "Dipakai {count} agen",
6670
+ "admin.voices.rowActions": "Tindakan untuk {name}",
6671
+ "admin.voices.remove": "Hapus",
6672
+ "admin.voices.removeTitle": "Hapus {name}?",
6673
+ "admin.voices.removeBody": "Agen tidak bisa lagi memilih {name}. Agen yang memakainya harus dialihkan ke suara lain terlebih dahulu.",
6674
+ "admin.voices.inUseTitle": "{name} masih dipakai",
6675
+ "admin.voices.inUseBody": "Agen-agen ini berbicara dengan {name}. Pilih suara lain untuk mereka di pengaturan Model lalu publikasikan, kemudian hapus suara ini.",
6676
+ "admin.voices.inUseUnnamed": "Agen tanpa nama",
6677
+ "admin.voices.removeConfirm": "Hapus suara",
6678
+ "admin.voices.dialogTitle": "Tambah suara",
6679
+ "admin.voices.dialogDescription": "Beri nama untuk suara ElevenLabs. Agen memilihnya dengan nama itu di pengaturannya.",
6680
+ "admin.voices.name": "Nama",
6681
+ "admin.voices.namePlaceholder": "Ben",
6682
+ "admin.voices.nameHint": "Yang ditampilkan di pengaturan agen.",
6683
+ "admin.voices.nameTaken": "Suara dengan nama ini sudah ada.",
6684
+ "admin.voices.voiceId": "ID suara ElevenLabs",
6685
+ "admin.voices.voiceIdPlaceholder": "Pg9csYyww2U9PYHJWRGS",
6686
+ "admin.voices.voiceIdHint": "Di ElevenLabs, buka suaranya lalu salin ID-nya.",
6687
+ "admin.voices.findVoice": "Cari suara",
6688
+ "admin.voices.required": "Isi nilai ini.",
6689
+ "admin.voices.speed": "Kecepatan bicara",
6690
+ "admin.voices.speedHint": "Seberapa cepat setiap agen membacakan balasannya. Berlaku pada balasan berikutnya.",
6691
+ "admin.voices.speedSlower": "Lebih lambat",
6692
+ "admin.voices.speedSlightlySlower": "Sedikit lebih lambat",
6693
+ "admin.voices.speedNatural": "Alami",
6694
+ "admin.voices.speedSlightlyFaster": "Sedikit lebih cepat",
6695
+ "admin.voices.speedFaster": "Lebih cepat",
6696
+ "admin.voices.speedDefault": "Bawaan",
6697
+ "admin.voices.speedOption": "{label} ({value}\xD7)",
6698
+ "admin.voices.speedValue": "{value}\xD7",
6337
6699
  "admin.imageModel.heading": "Pembuatan gambar",
6338
6700
  "admin.imageModel.subtitle": "Model yang dipakai untuk membuat gambar dan dek templat slide untuk organisasi ini.",
6339
6701
  "admin.imageModel.label": "Model gambar",
@@ -6387,7 +6749,9 @@ var id_default = {
6387
6749
  "admin.models.form.modelPicker.catalog": "Katalog",
6388
6750
  "admin.models.form.modelPicker.reasoning": "Penalaran",
6389
6751
  "admin.models.empty.title": "Belum ada model",
6390
- "admin.models.empty.body": "Tambahkan model dari provider yang disetujui agar agen dapat menggunakannya.",
6752
+ "admin.models.empty.body": "Pilih model dari provider Anda yang dapat dipakai agen dan chat.",
6753
+ "admin.models.empty.noProvider": "Model berasal dari provider Anda. Tambahkan provider di atas terlebih dahulu.",
6754
+ "admin.models.empty.readOnly": "Minta administrator organisasi Anda untuk menambahkan model.",
6391
6755
  "admin.models.delete.title": "Hapus model '{slug}'?",
6392
6756
  "admin.models.delete.body": "Gagal jika ada agen yang sedang menggunakan model ini.",
6393
6757
  "admin.models.delete.confirm": "Hapus model",
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { useTranslation } from './chunk-ECZL2OI4.js';
2
+ import { useTranslation } from './chunk-T4RG6NMW.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';
package/dist/header.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use client';
2
- export { ChatHeader, ChatHeaderActions } from './chunk-U5SH5XBO.js';
2
+ export { ChatHeader, ChatHeaderActions } from './chunk-FUAY64JS.js';
3
3
  import './chunk-X3QVICX7.js';
4
- import './chunk-5D4QWX23.js';
4
+ import './chunk-BGRFXLUY.js';
5
5
  import './chunk-CWAOLMFS.js';
6
6
  import './chunk-T5SANYSX.js';
7
- import './chunk-ECZL2OI4.js';
7
+ import './chunk-T4RG6NMW.js';
8
8
  import './chunk-QBV7MAFV.js';
9
9
  import './chunk-PKNEC4LJ.js';
10
10
  import './chunk-UWKO24VT.js';
package/dist/message.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { Message, Thinking } from './chunk-YHDDUQCX.js';
3
- import './chunk-5D4QWX23.js';
2
+ export { Message, Thinking } from './chunk-SZYQPW6R.js';
3
+ import './chunk-BGRFXLUY.js';
4
4
  import './chunk-CWAOLMFS.js';
5
5
  import './chunk-T5SANYSX.js';
6
- import './chunk-ECZL2OI4.js';
6
+ import './chunk-T4RG6NMW.js';
7
7
  import './chunk-QBV7MAFV.js';
8
8
  import './chunk-PKNEC4LJ.js';
9
9
  import './chunk-UWKO24VT.js';
@@ -70,6 +70,8 @@ interface NewSessionAgent extends AgentManifestEntry {
70
70
  kind?: "conversation" | "work";
71
71
  workspaceId?: string;
72
72
  features?: Record<string, boolean>;
73
+ /** Automatic is set up and allowed for this Agent: the composer starts on it. */
74
+ automaticRouting?: true;
73
75
  }
74
76
 
75
77
  /**
@@ -1,8 +1,8 @@
1
1
  'use client';
2
- export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-QQNCWSNF.js';
2
+ export { DEFAULT_SHORTCUTS, NewSessionPrompt, buildDefaultShortcuts } from './chunk-KJ33HNY4.js';
3
3
  import './chunk-X3QVICX7.js';
4
4
  import './chunk-T5SANYSX.js';
5
- import './chunk-ECZL2OI4.js';
5
+ import './chunk-T4RG6NMW.js';
6
6
  import './chunk-2P4IEVOQ.js';
7
7
  import './chunk-PUMRNN3R.js';
8
8
  import './chunk-LGVMMBL3.js';
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { DeckNotesCard, deckOwnsArrowKeys } from './chunk-4FRTPVJT.js';
3
- import { resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb, ArtifactSkeleton } from './chunk-74CXU2RG.js';
3
+ import { resolveStageWidth, zoomPercent, DECK_ZOOM_LEVELS, LazyThumb, ArtifactSkeleton } from './chunk-ZA7CTXPL.js';
4
4
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
5
- import { useTranslation, useIsMobile } from './chunk-ECZL2OI4.js';
5
+ import { useTranslation, useIsMobile } from './chunk-T4RG6NMW.js';
6
6
  import { Button, ChevronDownMediumIcon, ScrollArea } from './chunk-UWKO24VT.js';
7
7
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ChevronRightIcon } from './chunk-C3HW5S2Z.js';
8
8
  import { cn } from './chunk-LGVMMBL3.js';
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { zoomPercent, DECK_ZOOM_LEVELS, ArtifactSkeleton, LazyThumb } from './chunk-74CXU2RG.js';
2
+ import { zoomPercent, DECK_ZOOM_LEVELS, ArtifactSkeleton, LazyThumb } from './chunk-ZA7CTXPL.js';
3
3
  import { ChevronLeftIcon } from './chunk-CWAOLMFS.js';
4
- import { useTranslation, useIsMobile } from './chunk-ECZL2OI4.js';
4
+ import { useTranslation, useIsMobile } from './chunk-T4RG6NMW.js';
5
5
  import { Button, ChevronDownMediumIcon, ScrollArea } from './chunk-UWKO24VT.js';
6
6
  import { ChevronRightIcon, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem } from './chunk-C3HW5S2Z.js';
7
7
  import { cn } from './chunk-LGVMMBL3.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontera-sdk/chat-ui",
3
- "version": "1.50.81",
3
+ "version": "1.50.83",
4
4
  "description": "Ready-made React components for embedding a Frontera agent conversation — message rendering, tool calls, artifacts and composer.",
5
5
  "keywords": [
6
6
  "frontera",
@@ -89,8 +89,8 @@
89
89
  },
90
90
  "dependencies": {
91
91
  "@elysiajs/eden": "^1.4.9",
92
- "@frontera-sdk/chat": "1.50.81",
93
- "@frontera-sdk/core": "1.50.81",
92
+ "@frontera-sdk/chat": "1.50.83",
93
+ "@frontera-sdk/core": "1.50.83",
94
94
  "@radix-ui/react-alert-dialog": "^1.1.23",
95
95
  "@radix-ui/react-collapsible": "^1.1.12",
96
96
  "@radix-ui/react-compose-refs": "^1.1.5",