@frontera-sdk/chat-ui 1.50.81 → 1.50.82

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-MQDBY5CA.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-SSQ3SIWH.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-M65T2M4P.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],
@@ -57228,6 +57229,49 @@ function ComposerRailTrigger({
57228
57229
  }
57229
57230
  );
57230
57231
  }
57232
+ function SparklesThreeIcon(props) {
57233
+ return /* @__PURE__ */ jsxs(
57234
+ "svg",
57235
+ {
57236
+ "aria-hidden": "true",
57237
+ role: "img",
57238
+ "aria-label": "sparkles-three, ai 3 stars, sparkles, \u2728",
57239
+ width: "24px",
57240
+ height: "24px",
57241
+ viewBox: "0 0 24 24",
57242
+ fill: "none",
57243
+ xmlns: "http://www.w3.org/2000/svg",
57244
+ ...props,
57245
+ children: [
57246
+ /* @__PURE__ */ jsx(
57247
+ "path",
57248
+ {
57249
+ 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",
57250
+ fill: "currentColor"
57251
+ }
57252
+ ),
57253
+ /* @__PURE__ */ jsx(
57254
+ "path",
57255
+ {
57256
+ 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",
57257
+ fill: "currentColor"
57258
+ }
57259
+ ),
57260
+ /* @__PURE__ */ jsx(
57261
+ "path",
57262
+ {
57263
+ fillRule: "evenodd",
57264
+ clipRule: "evenodd",
57265
+ 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",
57266
+ stroke: "currentColor",
57267
+ strokeWidth: "1.5",
57268
+ strokeLinejoin: "round"
57269
+ }
57270
+ )
57271
+ ]
57272
+ }
57273
+ );
57274
+ }
57231
57275
  var DURATION_MS = 200;
57232
57276
  var easeOutCubic = (t2) => 1 - (1 - t2) ** 3;
57233
57277
  var snap = (px) => {
@@ -57288,6 +57332,7 @@ var EFFORT_ORDER = [
57288
57332
  "xhigh",
57289
57333
  "max"
57290
57334
  ];
57335
+ var AUTOMATIC_MODE = "$automatic";
57291
57336
  var EFFORT_LABELS = {
57292
57337
  minimal: "Minimal",
57293
57338
  low: "Light",
@@ -57495,6 +57540,7 @@ function ModelSelectorEffortPanel({
57495
57540
  canChooseModel,
57496
57541
  showReset,
57497
57542
  defaultSummary,
57543
+ resetLabel,
57498
57544
  onOpenModels,
57499
57545
  onSelectEffort,
57500
57546
  onReset
@@ -57523,7 +57569,7 @@ function ModelSelectorEffortPanel({
57523
57569
  /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "inline-flex size-7 shrink-0", children: /* @__PURE__ */ jsx(
57524
57570
  DropdownMenuItem,
57525
57571
  {
57526
- "aria-label": "Reset to default",
57572
+ "aria-label": resetLabel,
57527
57573
  "aria-description": showReset ? `Returns to ${defaultSummary}` : `Already using ${defaultSummary}`,
57528
57574
  disabled: !showReset,
57529
57575
  onSelect: (event) => event.preventDefault(),
@@ -57533,7 +57579,7 @@ function ModelSelectorEffortPanel({
57533
57579
  }
57534
57580
  ) }) }),
57535
57581
  /* @__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" }),
57582
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: showReset ? resetLabel : "Using the default" }),
57537
57583
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: defaultSummary })
57538
57584
  ] })
57539
57585
  ] }) })
@@ -57556,7 +57602,8 @@ function ModelSelectorModelList({
57556
57602
  xaiConnect,
57557
57603
  xaiSubscriptionConnected = false,
57558
57604
  eligibleSubscriptionModels,
57559
- onSelectMode
57605
+ onSelectMode,
57606
+ onSelectAutomatic
57560
57607
  }) {
57561
57608
  const { cloudModes, chatgptModes, grokModes } = partitionModelModes(
57562
57609
  modes,
@@ -57566,6 +57613,20 @@ function ModelSelectorModelList({
57566
57613
  const visibleModes = [...cloudModes, ...chatgptModes, ...grokModes];
57567
57614
  return /* @__PURE__ */ jsxs(Fragment, { children: [
57568
57615
  /* @__PURE__ */ jsx(DropdownMenuLabel, { className: "px-2.5 pt-1.5 pb-1 text-xs font-medium text-muted-foreground", children: "Select model" }),
57616
+ onSelectAutomatic ? /* @__PURE__ */ jsxs(
57617
+ DropdownMenuItem,
57618
+ {
57619
+ onClick: onSelectAutomatic,
57620
+ className: "justify-between gap-3 rounded-md px-2.5 py-1.5 text-sm",
57621
+ children: [
57622
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
57623
+ /* @__PURE__ */ jsx(SparklesThreeIcon, { className: "size-3.5 shrink-0 text-muted-foreground" }),
57624
+ /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: "Auto" })
57625
+ ] }),
57626
+ selectedModeKey === AUTOMATIC_MODE ? /* @__PURE__ */ jsx(Checkmark1Icon, { className: "size-4 shrink-0 text-foreground!" }) : null
57627
+ ]
57628
+ }
57629
+ ) : null,
57569
57630
  visibleModes.map((mode, index) => {
57570
57631
  const chatgptHeading = index === cloudModes.length && chatgptModes.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
57571
57632
  cloudModes.length > 0 && /* @__PURE__ */ jsx(DropdownMenuSeparator, { className: "my-1" }),
@@ -57663,12 +57724,14 @@ function ModelSelectorMenu({
57663
57724
  showEffort,
57664
57725
  showReset,
57665
57726
  defaultSummary,
57727
+ resetLabel,
57666
57728
  codexConnect,
57667
57729
  chatGptSubscriptionConnected = false,
57668
57730
  xaiConnect,
57669
57731
  xaiSubscriptionConnected = false,
57670
57732
  eligibleSubscriptionModels,
57671
57733
  onSelectMode,
57734
+ onSelectAutomatic,
57672
57735
  onSelectEffort,
57673
57736
  onReset,
57674
57737
  view,
@@ -57749,7 +57812,8 @@ function ModelSelectorMenu({
57749
57812
  xaiConnect,
57750
57813
  xaiSubscriptionConnected,
57751
57814
  eligibleSubscriptionModels,
57752
- onSelectMode: handleSelectMode
57815
+ onSelectMode: handleSelectMode,
57816
+ onSelectAutomatic
57753
57817
  }
57754
57818
  ) : /* @__PURE__ */ jsx("div", { className: "px-2.5 py-2 text-sm", children: displayMode ? getDisplayName(displayMode) : modelLabel }) : /* @__PURE__ */ jsx(
57755
57819
  ModelSelectorEffortPanel,
@@ -57761,6 +57825,7 @@ function ModelSelectorMenu({
57761
57825
  canChooseModel: showModelSelector,
57762
57826
  showReset,
57763
57827
  defaultSummary,
57828
+ resetLabel,
57764
57829
  onOpenModels: () => swapTo("models"),
57765
57830
  onSelectEffort,
57766
57831
  onReset: () => {
@@ -57777,7 +57842,7 @@ function ModelSelectorMenu({
57777
57842
  onClick: () => onReset(),
57778
57843
  className: "justify-between gap-2 rounded-md px-2.5 py-2 text-sm",
57779
57844
  children: [
57780
- /* @__PURE__ */ jsx("span", { children: "Reset to default" }),
57845
+ /* @__PURE__ */ jsx("span", { children: resetLabel }),
57781
57846
  /* @__PURE__ */ jsx(ArrowRotateClockwiseIcon, { className: "size-4 shrink-0 text-muted-foreground" })
57782
57847
  ]
57783
57848
  }
@@ -57809,8 +57874,10 @@ function ModelSelectorSheet({
57809
57874
  xaiSubscriptionConnected = false,
57810
57875
  eligibleSubscriptionModels,
57811
57876
  onSelectMode,
57877
+ onSelectAutomatic,
57812
57878
  onSelectEffort,
57813
- onReset
57879
+ onReset,
57880
+ resetLabel
57814
57881
  }) {
57815
57882
  const { cloudModes, chatgptModes, grokModes } = partitionModelModes(
57816
57883
  modes,
@@ -57821,6 +57888,22 @@ function ModelSelectorSheet({
57821
57888
  return /* @__PURE__ */ jsx(Sheet, { open, onOpenChange, children: /* @__PURE__ */ jsxs(SheetContent, { side: "bottom", className: "gap-0 p-0", "aria-describedby": void 0, children: [
57822
57889
  /* @__PURE__ */ jsx(SheetHeader, { className: "shrink-0 gap-1 px-4 pt-3 pb-3", children: /* @__PURE__ */ jsx(SheetTitle, { children: "Model" }) }),
57823
57890
  /* @__PURE__ */ jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto scrollbar p-2", children: [
57891
+ showModelSelector && onSelectAutomatic && /* @__PURE__ */ jsxs(
57892
+ "button",
57893
+ {
57894
+ type: "button",
57895
+ onClick: onSelectAutomatic,
57896
+ "aria-pressed": selectedModeKey === AUTOMATIC_MODE,
57897
+ 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",
57898
+ children: [
57899
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-2.5", children: [
57900
+ /* @__PURE__ */ jsx(SparklesThreeIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
57901
+ /* @__PURE__ */ jsx("span", { className: "truncate text-sm font-medium", children: "Auto" })
57902
+ ] }),
57903
+ selectedModeKey === AUTOMATIC_MODE ? /* @__PURE__ */ jsx(Checkmark1Icon, { className: "size-4 shrink-0 text-foreground" }) : null
57904
+ ]
57905
+ }
57906
+ ),
57824
57907
  showModelSelector && visibleModes.map((mode, index) => {
57825
57908
  const connection = mode.provider === "codex" ? codexConnect : mode.provider === "xai" ? xaiConnect : void 0;
57826
57909
  const checking = mode.provider === "openai-codex" && chatGptSubscriptionConnected && eligibleSubscriptionModels === void 0;
@@ -57907,7 +57990,7 @@ function ModelSelectorSheet({
57907
57990
  onClick: onReset,
57908
57991
  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
57992
  children: [
57910
- /* @__PURE__ */ jsx("span", { children: "Reset to default" }),
57993
+ /* @__PURE__ */ jsx("span", { children: resetLabel }),
57911
57994
  /* @__PURE__ */ jsx(ArrowRotateClockwiseIcon, { className: "size-4 shrink-0 text-muted-foreground" })
57912
57995
  ]
57913
57996
  }
@@ -57923,6 +58006,8 @@ function ModelSelector({
57923
58006
  disabled,
57924
58007
  sessionKey,
57925
58008
  defaultMode,
58009
+ automatic = false,
58010
+ pending = false,
57926
58011
  variant = "default",
57927
58012
  codexConnect,
57928
58013
  chatGptSubscriptionConnected = false,
@@ -57959,7 +58044,9 @@ function ModelSelector({
57959
58044
  const triggerRef = useRef(null);
57960
58045
  const [openWidth, setOpenWidth] = useState();
57961
58046
  const isMobile = useIsMobile();
57962
- const current = modeMap.get(currentMode) ?? visibleModes[0];
58047
+ const onAutomatic = automatic && currentMode === AUTOMATIC_MODE;
58048
+ const waiting = pending && !automatic && currentMode === AUTOMATIC_MODE;
58049
+ const current = onAutomatic || waiting ? void 0 : modeMap.get(currentMode) ?? visibleModes[0];
57963
58050
  const effortOptions = getModeEffortOptions(current);
57964
58051
  const defaultEffort = current?.reasoning?.defaultEffort ?? effortOptions[0];
57965
58052
  const activeEffort = reasoningEffort ?? defaultEffort;
@@ -57975,16 +58062,17 @@ function ModelSelector({
57975
58062
  if (!showModelSelector && !showEffort) return null;
57976
58063
  const isRail = variant === "rail";
57977
58064
  const effortLabel = showEffort && activeEffort ? EFFORT_LABELS[activeEffort] ?? activeEffort : null;
57978
- const modelLabel = current ? getShortDisplayName(current) : currentMode;
58065
+ const modelLabel = onAutomatic ? "Auto" : waiting ? "Model" : current ? getShortDisplayName(current) : currentMode;
57979
58066
  const defaultModeEntry = (defaultMode ? modeMap.get(defaultMode) : void 0) ?? visibleModes[0];
57980
58067
  const selectedModeKey = current?.key ?? currentMode;
57981
- const isDefaultModel = !showModelSelector || selectedModeKey === defaultModeEntry?.key;
58068
+ const isDefaultModel = !showModelSelector || selectedModeKey === (automatic ? AUTOMATIC_MODE : defaultModeEntry?.key);
57982
58069
  const isDefaultEffort = !showEffort || reasoningEffort == null || reasoningEffort === defaultEffort;
57983
58070
  const showReset = !isDefaultModel || !isDefaultEffort;
57984
58071
  const resetModel = showModelSelector ? defaultModeEntry : current;
57985
58072
  const resetEfforts = getModeEffortOptions(resetModel);
57986
58073
  const resetEffort = resetEfforts.length > 0 ? resetModel?.reasoning?.defaultEffort ?? resetEfforts[0] : void 0;
57987
- const defaultSummary = [
58074
+ const resetLabel = automatic ? "Return to Auto" : "Reset to default";
58075
+ const defaultSummary = automatic ? "Auto" : [
57988
58076
  resetModel ? getDisplayName(resetModel) : void 0,
57989
58077
  resetEffort ? EFFORT_LABELS[resetEffort] ?? resetEffort : void 0
57990
58078
  ].filter(Boolean).join(" \xB7 ");
@@ -58020,7 +58108,19 @@ function ModelSelector({
58020
58108
  applyEffort(effort);
58021
58109
  setOpen(false);
58022
58110
  };
58111
+ const handleSelectAutomatic = () => {
58112
+ if (!onAutomatic) {
58113
+ setReasoningEffort(sessionKey, null);
58114
+ onEffortChange?.(null);
58115
+ onModeChange(AUTOMATIC_MODE);
58116
+ }
58117
+ setOpen(false);
58118
+ };
58023
58119
  const handleReset = ({ keepOpen = false } = {}) => {
58120
+ if (automatic) {
58121
+ handleSelectAutomatic();
58122
+ return;
58123
+ }
58024
58124
  if (showEffort) {
58025
58125
  setReasoningEffort(sessionKey, null);
58026
58126
  onEffortChange?.(null);
@@ -58037,24 +58137,24 @@ function ModelSelector({
58037
58137
  const showsOpenModel = open && choosingModel && current !== void 0;
58038
58138
  const centerLabel = open && !showsOpenModel;
58039
58139
  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,
58140
+ showModelSelector ? /* @__PURE__ */ jsx("span", { className: cn(getStyleTextClass(current?.style), condensed && "truncate"), children: current ? getBrandlessDisplayName(current) : modelLabel }) : null,
58041
58141
  effortLabel ? /* @__PURE__ */ jsx("span", { className: cn(showModelSelector && "text-muted-foreground", condensed && "shrink-0"), children: effortLabel }) : null
58042
58142
  ] });
58043
- const ariaLabel = !showModelSelector ? `Reasoning effort ${effortLabel}` : effortLabel ? `Model ${modelLabel}, effort ${effortLabel}` : `Model ${modelLabel}`;
58143
+ const ariaLabel = waiting ? "Model, loading" : !showModelSelector ? `Reasoning effort ${effortLabel}` : effortLabel ? `Model ${modelLabel}, effort ${effortLabel}` : `Model ${modelLabel}`;
58044
58144
  const contextAriaLabel = context ? context.compacting ? `${ariaLabel}, compacting context` : `${ariaLabel}, context ${Math.round(context.percent)}% used` : ariaLabel;
58045
58145
  const showTriggerIcon = open ? showsOpenModel : showModelSelector || Boolean(context);
58046
- const triggerIcon = current && showTriggerIcon ? /* @__PURE__ */ jsx(
58146
+ const triggerIcon = !showTriggerIcon ? null : current ? /* @__PURE__ */ jsx(
58047
58147
  ModelIcon,
58048
58148
  {
58049
58149
  row: modeToBrandRow(current),
58050
58150
  className: "size-3! shrink-0 text-muted-foreground"
58051
58151
  }
58052
- ) : null;
58152
+ ) : onAutomatic ? /* @__PURE__ */ jsx(SparklesThreeIcon, { className: "size-3! shrink-0 text-muted-foreground" }) : null;
58053
58153
  const renderTrigger = (extra) => isRail ? /* @__PURE__ */ jsx(
58054
58154
  ComposerRailTrigger,
58055
58155
  {
58056
58156
  ref: triggerRef,
58057
- disabled,
58157
+ disabled: disabled || waiting,
58058
58158
  className: cn(condensed && "min-w-0 shrink", open && OPEN_TRIGGER_CLASS),
58059
58159
  style: open && openWidth ? { width: openWidth } : void 0,
58060
58160
  labelClassName: centerLabel ? "flex-1 text-center" : void 0,
@@ -58067,7 +58167,7 @@ function ModelSelector({
58067
58167
  Button,
58068
58168
  {
58069
58169
  type: "button",
58070
- disabled,
58170
+ disabled: disabled || waiting,
58071
58171
  variant: "ghost",
58072
58172
  size: "sm",
58073
58173
  ref: triggerRef,
@@ -58104,8 +58204,10 @@ function ModelSelector({
58104
58204
  xaiSubscriptionConnected,
58105
58205
  eligibleSubscriptionModels,
58106
58206
  onSelectMode: handleSelectMode,
58207
+ onSelectAutomatic: automatic ? handleSelectAutomatic : void 0,
58107
58208
  onSelectEffort: handleSelectEffort,
58108
- onReset: () => handleReset()
58209
+ onReset: () => handleReset(),
58210
+ resetLabel
58109
58211
  }
58110
58212
  )
58111
58213
  ] });
@@ -58126,12 +58228,14 @@ function ModelSelector({
58126
58228
  showEffort,
58127
58229
  showReset,
58128
58230
  defaultSummary,
58231
+ resetLabel,
58129
58232
  codexConnect,
58130
58233
  chatGptSubscriptionConnected,
58131
58234
  xaiConnect,
58132
58235
  xaiSubscriptionConnected,
58133
58236
  eligibleSubscriptionModels,
58134
58237
  onSelectMode: handleSelectMode,
58238
+ onSelectAutomatic: automatic ? handleSelectAutomatic : void 0,
58135
58239
  onSelectEffort: applyEffort,
58136
58240
  onReset: handleReset,
58137
58241
  view: menuView,
@@ -61683,6 +61787,8 @@ function ChatInputBar({
61683
61787
  modes,
61684
61788
  modelMode = "standard",
61685
61789
  defaultMode,
61790
+ automaticRouting = false,
61791
+ modelChoicePending = false,
61686
61792
  onModelModeChange,
61687
61793
  approvalMode = "auto",
61688
61794
  onApprovalModeChange,
@@ -62041,6 +62147,8 @@ function ChatInputBar({
62041
62147
  disabled: isDisabled,
62042
62148
  sessionKey,
62043
62149
  defaultMode,
62150
+ automatic: automaticRouting,
62151
+ pending: modelChoicePending,
62044
62152
  variant: "rail",
62045
62153
  codexConnect: hasCodexMode ? {
62046
62154
  connected: codexConnected,
@@ -63111,6 +63219,8 @@ function ChatInput({
63111
63219
  modes,
63112
63220
  modelMode,
63113
63221
  defaultMode,
63222
+ automaticRouting,
63223
+ modelChoicePending,
63114
63224
  onModelModeChange,
63115
63225
  approvalMode,
63116
63226
  onApprovalModeChange,
@@ -63170,6 +63280,8 @@ function ChatInput({
63170
63280
  modes,
63171
63281
  modelMode,
63172
63282
  defaultMode,
63283
+ automaticRouting,
63284
+ modelChoicePending,
63173
63285
  onModelModeChange,
63174
63286
  approvalMode,
63175
63287
  onApprovalModeChange,
@@ -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
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-M65T2M4P.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
- 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-M65T2M4P.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-MQDBY5CA.js';
3
3
  import './chunk-X3QVICX7.js';
4
- import './chunk-5D4QWX23.js';
4
+ import './chunk-M65T2M4P.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-SSQ3SIWH.js';
3
+ import './chunk-M65T2M4P.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.82",
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.82",
93
+ "@frontera-sdk/core": "1.50.82",
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",