@elevasis/ui 2.57.0 → 2.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/auth/index.js +2 -2
  3. package/dist/charts/index.js +2 -2
  4. package/dist/{chunk-ETZY6MFL.js → chunk-4N5GYO6R.js} +374 -385
  5. package/dist/{chunk-T73S4G4P.js → chunk-7AJKZM4F.js} +2 -0
  6. package/dist/components/chat/index.d.ts +3 -1
  7. package/dist/components/chat/index.js +1 -1
  8. package/dist/components/index.js +2 -2
  9. package/dist/components/navigation/index.js +2 -2
  10. package/dist/features/auth/index.js +3 -3
  11. package/dist/features/clients/index.js +2 -2
  12. package/dist/features/crm/index.js +2 -2
  13. package/dist/features/dashboard/index.js +2 -2
  14. package/dist/features/delivery/index.js +2 -2
  15. package/dist/features/knowledge/index.js +2 -2
  16. package/dist/features/lead-gen/index.js +2 -2
  17. package/dist/features/monitoring/index.js +2 -2
  18. package/dist/features/monitoring/requests/index.js +3 -3
  19. package/dist/features/operations/index.d.ts +30 -21
  20. package/dist/features/operations/index.js +2 -2
  21. package/dist/features/public-agent-chat/index.d.ts +42 -6
  22. package/dist/features/public-agent-chat/index.js +149 -30
  23. package/dist/features/settings/index.js +2 -2
  24. package/dist/hooks/access/index.js +2 -2
  25. package/dist/hooks/delivery/index.js +2 -2
  26. package/dist/hooks/index.d.ts +7 -1
  27. package/dist/hooks/index.js +2 -2
  28. package/dist/hooks/published.d.ts +7 -1
  29. package/dist/hooks/published.js +2 -2
  30. package/dist/index.d.ts +7 -1
  31. package/dist/index.js +2 -2
  32. package/dist/knowledge/index.js +3 -3
  33. package/dist/layout/index.js +2 -2
  34. package/dist/organization/index.js +2 -2
  35. package/dist/provider/index.js +2 -2
  36. package/dist/provider/published.js +2 -2
  37. package/package.json +3 -3
@@ -7,7 +7,7 @@ import { CardHeader } from './chunk-S3XR4II4.js';
7
7
  import { useInitialization, InitializationContext, InitializationProvider } from './chunk-LO7GWG24.js';
8
8
  import { OrganizationContext, useOrganization } from './chunk-DD3CCMCZ.js';
9
9
  import { SessionIdParamSchema, CreateSessionSchema, GetNotificationsQuerySchema, MarkAsReadParamsSchema, ExecutionIdParamsSchema, createLiveTempMessageIdentity, WebSocketSessionTurnSchema, mergeSessionMessages } from './chunk-M7WWRZ5Z.js';
10
- import { StyledMarkdown, ChatInterface, ChatHeader, ChatSidebar } from './chunk-T73S4G4P.js';
10
+ import { StyledMarkdown, ChatInterface, ChatHeader } from './chunk-7AJKZM4F.js';
11
11
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
12
12
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger, useGraphHighlighting, calculateGraphHeight, GRAPH_CONSTANTS } from './chunk-HENXLGVD.js';
13
13
  import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent, getResourceStatusColor, useMergedExecution, useTimelineData, useAgentIterationData } from './chunk-I3CFGE3N.js';
@@ -22,7 +22,7 @@ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
22
22
  import { createContext, forwardRef, lazy, memo, useEffect, useRef, createElement, useContext, useLayoutEffect, useMemo, useState, cloneElement, useCallback, useId, Fragment as Fragment$1, Component, useDeferredValue, useEffectEvent, Suspense } from 'react';
23
23
  import { useQueryClient, useMutation, useQuery, QueryClientProvider, useQueries, QueryClient } from '@tanstack/react-query';
24
24
  import { z } from 'zod';
25
- import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronRight, IconLayoutGrid, IconColumns, IconFileInvoice, IconMail, IconSend, IconClock, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconShieldLock, IconActivity, IconTopologyStar3, IconApps, IconBriefcase, IconBuilding, IconBolt, IconSearch, IconChartBar, IconUsers, IconInfoCircle, IconMessagePlus, IconDatabase, IconGitBranch, IconDashboard, IconBuildingStore, IconPlug, IconTargetArrow, IconBook, IconArchive, IconSettings, IconTool, IconCalendar, IconNotes, IconChecklist, IconFlag, IconList, IconAddressBook, IconTarget, IconCode, IconLock, IconShieldOff, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconMinus, IconTrendingUp, IconTrendingDown, IconAlertCircle, IconBan, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconArrowRight, IconPlus, IconDownload, IconChartLine, IconThumbDown, IconThumbUp, IconCircleX, IconFilterOff, IconArrowUpRight, IconExternalLink, IconChartPie, IconHeartbeat, IconCpu, IconCash, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconMoonStars, IconSun, IconFocus2, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconPencil, IconKey, IconExclamationMark, IconCopy, IconPower, IconTag, IconWebhook, IconReload, IconTerminal2, IconMessage, IconArrowLeft, IconCalendarRepeat, IconCalendarTime, IconRobot, IconDotsVertical, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconHistory, IconCurrencyDollar, IconTrophy, IconMessages, IconRestore, IconSparkles, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconLayoutSidebarRightExpand, IconNote, IconTimeline, IconPalette, IconStar, IconUserCog, IconUsersGroup, IconBrandDropbox, IconBrandGoogleDrive, IconClockExclamation, IconArrowDown, IconUserX, IconUserCheck, IconFileOff, IconActivityHeartbeat, IconClockPause, IconArrowsMaximize, IconShare2, IconFolder, IconCheckbox, IconPhone, IconStarFilled, IconWand, IconScript, IconPlugConnected, IconCircleCheckFilled } from '@tabler/icons-react';
25
+ import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronRight, IconLayoutGrid, IconColumns, IconFileInvoice, IconMail, IconSend, IconClock, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconShieldLock, IconActivity, IconTopologyStar3, IconApps, IconBriefcase, IconBuilding, IconBolt, IconSearch, IconChartBar, IconUsers, IconInfoCircle, IconMessagePlus, IconDatabase, IconGitBranch, IconDashboard, IconBuildingStore, IconPlug, IconTargetArrow, IconBook, IconArchive, IconSettings, IconTool, IconCalendar, IconNotes, IconChecklist, IconFlag, IconList, IconAddressBook, IconTarget, IconCode, IconLock, IconShieldOff, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconMinus, IconTrendingUp, IconTrendingDown, IconAlertCircle, IconBan, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconArrowRight, IconPlus, IconDownload, IconChartLine, IconThumbDown, IconThumbUp, IconCircleX, IconFilterOff, IconArrowUpRight, IconExternalLink, IconChartPie, IconHeartbeat, IconCpu, IconCash, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconMoonStars, IconSun, IconFocus2, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconPencil, IconKey, IconExclamationMark, IconCopy, IconPower, IconTag, IconWebhook, IconReload, IconTerminal2, IconMessage, IconArrowLeft, IconCalendarRepeat, IconCalendarTime, IconRobot, IconDotsVertical, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconHistory, IconCurrencyDollar, IconTrophy, IconMessages, IconRestore, IconSparkles, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconTimeline, IconNote, IconPalette, IconStar, IconUserCog, IconUsersGroup, IconBrandDropbox, IconBrandGoogleDrive, IconClockExclamation, IconArrowDown, IconUserX, IconUserCheck, IconFileOff, IconActivityHeartbeat, IconClockPause, IconArrowsMaximize, IconShare2, IconFolder, IconCheckbox, IconPhone, IconStarFilled, IconWand, IconScript, IconPlugConnected, IconCircleCheckFilled } from '@tabler/icons-react';
26
26
  import * as runtime from 'react/jsx-runtime';
27
27
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
28
28
  import { createUseExternalEvents, Collapse, Paper, Stack, Text, Group, Badge, Box, HoverCard, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, useComputedColorScheme, ThemeIcon, Center, Card, Title, Checkbox, Modal, TextInput, Textarea, Loader, Alert, Button, Space, Table, Select, Code, Grid, Timeline, NumberFormatter, SimpleGrid, SegmentedControl, ActionIcon, Switch, Pagination, mergeThemeOverrides, MantineProvider, Divider, Popover, Indicator, Container, useMantineColorScheme, CopyButton, PasswordInput, Anchor, useMantineTheme, RangeSlider, Progress, Tabs, Breadcrumbs as Breadcrumbs$1, NumberInput, ColorSwatch, RingProgress, LoadingOverlay, Accordion, MultiSelect, useTree, Tree, Radio, Pill, Drawer, Chip, JsonInput, TagsInput, List } from '@mantine/core';
@@ -9703,6 +9703,7 @@ var OperationsService = class {
9703
9703
  resourceId: session.resourceId,
9704
9704
  turnCount: session.turnCount,
9705
9705
  isEnded: session.isEnded,
9706
+ title: session.title ?? null,
9706
9707
  createdAt: new Date(session.createdAt),
9707
9708
  updatedAt: new Date(session.updatedAt)
9708
9709
  }));
@@ -10837,6 +10838,27 @@ function useDeleteSession() {
10837
10838
  }
10838
10839
  });
10839
10840
  }
10841
+ function useEndSession() {
10842
+ const { apiRequest } = useElevasisServices();
10843
+ const { currentSupabaseOrganizationId } = useOrganization();
10844
+ const queryClient = useQueryClient();
10845
+ return useMutation({
10846
+ mutationFn: async (sessionId) => {
10847
+ SessionIdParamSchema.parse({ sessionId });
10848
+ await apiRequest(`/sessions/${sessionId}/end`, {
10849
+ method: "POST"
10850
+ });
10851
+ },
10852
+ onSuccess: (_, sessionId) => {
10853
+ queryClient.invalidateQueries({
10854
+ queryKey: sessionsKeys.session(currentSupabaseOrganizationId, sessionId)
10855
+ });
10856
+ queryClient.invalidateQueries({
10857
+ queryKey: sessionsKeys.sessions(currentSupabaseOrganizationId)
10858
+ });
10859
+ }
10860
+ });
10861
+ }
10840
10862
  function useArchiveSession() {
10841
10863
  const { apiRequest } = useElevasisServices();
10842
10864
  const { currentSupabaseOrganizationId } = useOrganization();
@@ -44275,6 +44297,9 @@ function SessionListItem({ session, onClick, isSelected = false, onDeleted }) {
44275
44297
  };
44276
44298
  const titleColor = isSelected ? "var(--color-primary)" : "var(--color-text)";
44277
44299
  const descriptionColor = isSelected ? "var(--color-text)" : "var(--color-text-subtle)";
44300
+ const trimmedTitle = session.title?.trim();
44301
+ const primaryLabel = trimmedTitle ? trimmedTitle : `${session.turnCount} turns`;
44302
+ const metaLine = trimmedTitle ? `${session.turnCount} turns \xB7 ${formatLastActivity(session.updatedAt)}` : formatLastActivity(session.updatedAt);
44278
44303
  return /* @__PURE__ */ jsxs(Fragment, { children: [
44279
44304
  /* @__PURE__ */ jsx(
44280
44305
  Card,
@@ -44292,12 +44317,9 @@ function SessionListItem({ session, onClick, isSelected = false, onDeleted }) {
44292
44317
  onClick: handleClick,
44293
44318
  children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44294
44319
  /* @__PURE__ */ jsxs(Group, { gap: "xs", justify: "space-between", children: [
44295
- /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
44296
- /* @__PURE__ */ jsx(IconMessage, { color: titleColor, size: 14 }),
44297
- /* @__PURE__ */ jsxs(Text, { size: "xs", fw: 500, c: titleColor, children: [
44298
- session.turnCount,
44299
- " turns"
44300
- ] })
44320
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", style: { minWidth: 0 }, children: [
44321
+ /* @__PURE__ */ jsx(IconMessage, { color: titleColor, size: 14, style: { flexShrink: 0 } }),
44322
+ /* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, c: titleColor, lineClamp: 1, children: primaryLabel })
44301
44323
  ] }),
44302
44324
  /* @__PURE__ */ jsx(
44303
44325
  ActionIcon,
@@ -44312,7 +44334,7 @@ function SessionListItem({ session, onClick, isSelected = false, onDeleted }) {
44312
44334
  }
44313
44335
  )
44314
44336
  ] }),
44315
- /* @__PURE__ */ jsx(Text, { size: "xs", c: descriptionColor, children: formatLastActivity(session.updatedAt) })
44337
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: descriptionColor, children: metaLine })
44316
44338
  ] })
44317
44339
  }
44318
44340
  ),
@@ -44402,13 +44424,34 @@ function SessionsPage({
44402
44424
  ] }) }) })
44403
44425
  ] });
44404
44426
  }
44405
- function SessionHeader({
44406
- session: _session,
44407
- connectionState,
44408
- onToggleSidebar,
44409
- isSidebarOpen,
44410
- tokenUsage
44411
- }) {
44427
+
44428
+ // src/features/operations/sidebar/pathUtils.ts
44429
+ var RESOURCE_DETAIL_PATTERN = /^\/operations\/resources\/(workflow|agent)\/([^/]+)$/;
44430
+ var SESSION_DETAIL_PATTERN = /^\/operations\/sessions\/([^/]+)$/;
44431
+ function getActiveResource(pathname) {
44432
+ const match = pathname.match(RESOURCE_DETAIL_PATTERN);
44433
+ if (!match) return null;
44434
+ return {
44435
+ type: match[1],
44436
+ id: match[2]
44437
+ };
44438
+ }
44439
+ function isResourceDetailPage(pathname) {
44440
+ return RESOURCE_DETAIL_PATTERN.test(pathname);
44441
+ }
44442
+ function getSessionId(pathname) {
44443
+ const match = pathname.match(SESSION_DETAIL_PATTERN);
44444
+ return match?.[1];
44445
+ }
44446
+ function getSessionAgentParam(search) {
44447
+ if (!search) return void 0;
44448
+ return new URLSearchParams(search).get("agent") ?? void 0;
44449
+ }
44450
+ function getSessionView(search) {
44451
+ if (!search) return "chat";
44452
+ return new URLSearchParams(search).get("view") === "info" ? "info" : "chat";
44453
+ }
44454
+ function SessionHeader({ session: _session, connectionState, tokenUsage }) {
44412
44455
  const mockTokenUsage = tokenUsage || { used: 45e3, total: 128e3 };
44413
44456
  return /* @__PURE__ */ jsx(
44414
44457
  ChatHeader,
@@ -44418,11 +44461,7 @@ function SessionHeader({
44418
44461
  label: connectionState.isConnected ? "Connected" : "Disconnected",
44419
44462
  color: connectionState.isConnected ? "green" : "gray"
44420
44463
  },
44421
- contextUsage: mockTokenUsage,
44422
- sidebarIcon: /* @__PURE__ */ jsx(IconLayoutSidebarRightExpand, { size: 20 }),
44423
- onToggleSidebar,
44424
- isSidebarOpen,
44425
- sidebarTooltip: isSidebarOpen ? "Close details" : "Show details"
44464
+ contextUsage: mockTokenUsage
44426
44465
  }
44427
44466
  );
44428
44467
  }
@@ -44445,275 +44484,7 @@ function SessionChatInterface({
44445
44484
  placeholder: "Message the agent..."
44446
44485
  }) });
44447
44486
  }
44448
- function SessionDetailsSidebar({
44449
- session,
44450
- isOpen,
44451
- onClose,
44452
- organizationName,
44453
- onDeleted
44454
- }) {
44455
- const deleteSession = useDeleteSession();
44456
- const [isDeleting, setIsDeleting] = useState(false);
44457
- const [showConfirmation, setShowConfirmation] = useState(false);
44458
- const [copiedResource, setCopiedResource] = useState(false);
44459
- const [copiedSessionId, setCopiedSessionId] = useState(false);
44460
- const { data: executionsData } = useSessionExecutions(session.sessionId);
44461
- const [instructions, setInstructions] = useState(session.metadata?.instructions || "");
44462
- const [isSavingInstructions, setIsSavingInstructions] = useState(false);
44463
- const { data: resourcesData } = useResources();
44464
- const agent = resourcesData?.agents.find((a) => a.resourceId === session.resourceId);
44465
- const { data: agentDefinition } = useResourceDefinition(session.resourceId);
44466
- const agentInfo = {
44467
- name: agent?.name || session.resourceId,
44468
- description: agent?.description || "No description available",
44469
- resourceId: session.resourceId
44470
- };
44471
- const metrics = {
44472
- totalDuration: 0,
44473
- avgTurnTime: 0,
44474
- successRate: 0,
44475
- completedTurns: 0,
44476
- failedTurns: 0
44477
- };
44478
- if (executionsData?.executions) {
44479
- const executions = executionsData.executions;
44480
- metrics.totalDuration = executions.reduce((sum, ex) => sum + (ex.duration || 0), 0);
44481
- metrics.avgTurnTime = executions.length > 0 ? metrics.totalDuration / executions.length : 0;
44482
- metrics.completedTurns = executions.filter((ex) => ex.status === "completed" || ex.status === "warning").length;
44483
- metrics.failedTurns = executions.filter((ex) => ex.status === "failed").length;
44484
- metrics.successRate = executions.length > 0 ? metrics.completedTurns / executions.length * 100 : 0;
44485
- }
44486
- const handleConfirmDelete = async () => {
44487
- if (isDeleting) return;
44488
- setIsDeleting(true);
44489
- try {
44490
- await deleteSession.mutateAsync(session.sessionId);
44491
- setShowConfirmation(false);
44492
- onClose();
44493
- onDeleted?.();
44494
- } catch (error) {
44495
- console.error("Failed to delete session:", error);
44496
- } finally {
44497
- setIsDeleting(false);
44498
- }
44499
- };
44500
- const handleSaveInstructions = async () => {
44501
- setIsSavingInstructions(true);
44502
- try {
44503
- console.log("Saving instructions:", instructions);
44504
- await new Promise((resolve) => setTimeout(resolve, 500));
44505
- } finally {
44506
- setIsSavingInstructions(false);
44507
- }
44508
- };
44509
- const handleCopyResource = async () => {
44510
- const resourcePath = `${organizationName}/${session.resourceId}`;
44511
- await navigator.clipboard.writeText(resourcePath);
44512
- setCopiedResource(true);
44513
- setTimeout(() => setCopiedResource(false), 2e3);
44514
- };
44515
- const handleCopySessionId = async () => {
44516
- await navigator.clipboard.writeText(session.sessionId);
44517
- setCopiedSessionId(true);
44518
- setTimeout(() => setCopiedSessionId(false), 2e3);
44519
- };
44520
- return /* @__PURE__ */ jsxs(Fragment, { children: [
44521
- /* @__PURE__ */ jsxs(ChatSidebar, { isOpen, title: "Session Details", children: [
44522
- /* @__PURE__ */ jsx("div", { style: { flex: 1, overflow: "auto" }, children: /* @__PURE__ */ jsxs(Stack, { p: "sm", children: [
44523
- /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44524
- /* @__PURE__ */ jsxs("div", { children: [
44525
- /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44526
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Resource (CLI)" }),
44527
- /* @__PURE__ */ jsx(Tooltip, { label: copiedResource ? "Copied!" : "Copy resource path", position: "right", children: /* @__PURE__ */ jsx(
44528
- ActionIcon,
44529
- {
44530
- variant: "subtle",
44531
- color: copiedResource ? "green" : "gray",
44532
- onClick: handleCopyResource,
44533
- size: "xs",
44534
- children: copiedResource ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44535
- }
44536
- ) })
44537
- ] }),
44538
- /* @__PURE__ */ jsxs(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: [
44539
- organizationName,
44540
- "/",
44541
- session.resourceId
44542
- ] })
44543
- ] }),
44544
- /* @__PURE__ */ jsxs("div", { children: [
44545
- /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44546
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session ID" }),
44547
- /* @__PURE__ */ jsx(Tooltip, { label: copiedSessionId ? "Copied!" : "Copy session ID", position: "right", children: /* @__PURE__ */ jsx(
44548
- ActionIcon,
44549
- {
44550
- variant: "subtle",
44551
- color: copiedSessionId ? "green" : "gray",
44552
- onClick: handleCopySessionId,
44553
- size: "xs",
44554
- children: copiedSessionId ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44555
- }
44556
- ) })
44557
- ] }),
44558
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: session.sessionId })
44559
- ] })
44560
- ] }),
44561
- /* @__PURE__ */ jsx(Divider, {}),
44562
- /* @__PURE__ */ jsxs("div", { children: [
44563
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Agent" }),
44564
- /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44565
- /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, children: agentInfo.name }),
44566
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", lineClamp: 3, children: agentInfo.description }),
44567
- agentDefinition && "modelConfig" in agentDefinition && /* @__PURE__ */ jsxs(Fragment, { children: [
44568
- /* @__PURE__ */ jsx(Divider, { my: "xs" }),
44569
- /* @__PURE__ */ jsxs("div", { children: [
44570
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", fw: 600, mb: 4, children: "Model Configuration" }),
44571
- /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
44572
- agentDefinition.modelConfig.model && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44573
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Model" }),
44574
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: agentDefinition.modelConfig.model })
44575
- ] }),
44576
- agentDefinition.modelConfig.temperature !== void 0 && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44577
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Temperature" }),
44578
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: agentDefinition.modelConfig.temperature })
44579
- ] }),
44580
- agentDefinition.modelConfig.maxOutputTokens && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44581
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Max Tokens" }),
44582
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: agentDefinition.modelConfig.maxOutputTokens })
44583
- ] })
44584
- ] })
44585
- ] })
44586
- ] }),
44587
- agentDefinition && "tools" in agentDefinition && agentDefinition.tools.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
44588
- /* @__PURE__ */ jsx(Divider, { my: "sm" }),
44589
- /* @__PURE__ */ jsxs("div", { children: [
44590
- /* @__PURE__ */ jsxs(Text, { size: "sm", c: "dimmed", fw: 600, mb: 4, children: [
44591
- "Tools (",
44592
- agentDefinition.tools.length,
44593
- ")"
44594
- ] }),
44595
- /* @__PURE__ */ jsx(Stack, { gap: 4, children: agentDefinition.tools.map(
44596
- (tool, index) => {
44597
- const toolName = typeof tool === "string" ? tool : tool.name;
44598
- const toolKey = typeof tool === "string" ? tool : `${tool.name}-${index}`;
44599
- return /* @__PURE__ */ jsxs(Text, { size: "sm", ff: "monospace", c: "dimmed", children: [
44600
- "\u2022 ",
44601
- toolName
44602
- ] }, toolKey);
44603
- }
44604
- ) })
44605
- ] })
44606
- ] })
44607
- ] })
44608
- ] }),
44609
- /* @__PURE__ */ jsx(Divider, {}),
44610
- /* @__PURE__ */ jsxs("div", { children: [
44611
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: 8, children: [
44612
- /* @__PURE__ */ jsxs(Group, { gap: 4, children: [
44613
- /* @__PURE__ */ jsx(IconNote, { size: 14, color: "var(--color-text-subtle)" }),
44614
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session Instructions" })
44615
- ] }),
44616
- isSavingInstructions && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", style: { fontStyle: "italic" }, children: "Saving..." })
44617
- ] }),
44618
- /* @__PURE__ */ jsx(
44619
- Textarea,
44620
- {
44621
- placeholder: "Add custom instructions to append to the system prompt...",
44622
- value: instructions,
44623
- onChange: (e) => setInstructions(e.target.value),
44624
- onBlur: handleSaveInstructions,
44625
- autosize: true,
44626
- minRows: 4,
44627
- maxRows: 8,
44628
- size: "sm",
44629
- styles: {
44630
- input: {
44631
- fontSize: "var(--mantine-font-size-sm)"
44632
- }
44633
- }
44634
- }
44635
- )
44636
- ] }),
44637
- /* @__PURE__ */ jsxs("div", { children: [
44638
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Timestamps" }),
44639
- /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44640
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44641
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Created" }),
44642
- /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.createdAt).toLocaleString() })
44643
- ] }),
44644
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44645
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Last Updated" }),
44646
- /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.updatedAt).toLocaleString() })
44647
- ] }),
44648
- session.endedAt && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44649
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Ended" }),
44650
- /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.endedAt).toLocaleString() })
44651
- ] })
44652
- ] })
44653
- ] }),
44654
- (() => {
44655
- const modelConfig = session.metadata?.modelConfig;
44656
- if (!modelConfig) return null;
44657
- return /* @__PURE__ */ jsxs("div", { children: [
44658
- /* @__PURE__ */ jsx(Divider, {}),
44659
- /* @__PURE__ */ jsxs("div", { children: [
44660
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 4, children: "Model Configuration" }),
44661
- /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
44662
- modelConfig.model && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44663
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Model" }),
44664
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: modelConfig.model })
44665
- ] }),
44666
- modelConfig.temperature !== void 0 && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44667
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Temperature" }),
44668
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: modelConfig.temperature })
44669
- ] }),
44670
- modelConfig.maxOutputTokens && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44671
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Max Tokens" }),
44672
- /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: modelConfig.maxOutputTokens })
44673
- ] })
44674
- ] })
44675
- ] })
44676
- ] });
44677
- })()
44678
- ] }) }),
44679
- /* @__PURE__ */ jsx("div", { style: { borderTop: "1px solid var(--color-border)", padding: "var(--mantine-spacing-md)" }, children: /* @__PURE__ */ jsx(
44680
- Button,
44681
- {
44682
- fullWidth: true,
44683
- color: "red",
44684
- variant: "light",
44685
- leftSection: /* @__PURE__ */ jsx(IconTrash, { size: 16 }),
44686
- onClick: () => setShowConfirmation(true),
44687
- loading: isDeleting,
44688
- disabled: isDeleting,
44689
- children: "Delete Session"
44690
- }
44691
- ) })
44692
- ] }),
44693
- /* @__PURE__ */ jsx(
44694
- ConfirmationModal,
44695
- {
44696
- opened: showConfirmation,
44697
- onClose: () => setShowConfirmation(false),
44698
- icon: /* @__PURE__ */ jsx(IconAlertTriangle, {}),
44699
- title: "Delete Session",
44700
- text: "Are you sure you want to delete this session? All messages and execution history will be permanently removed. This action cannot be undone.",
44701
- buttonText: "Delete Session",
44702
- buttonColor: "red",
44703
- confirmationHandler: handleConfirmDelete,
44704
- loading: isDeleting
44705
- }
44706
- )
44707
- ] });
44708
- }
44709
- function SessionChatArea({
44710
- sessionId,
44711
- session,
44712
- organizationName,
44713
- onDeleted,
44714
- renderConversationView
44715
- }) {
44716
- const [isSidebarOpen, setIsSidebarOpen] = useState(false);
44487
+ function SessionChatArea({ sessionId, session, renderConversationView }) {
44717
44488
  const [connectionState, setConnectionState] = useState({
44718
44489
  isConnected: false,
44719
44490
  isProcessing: false,
@@ -44727,57 +44498,23 @@ function SessionChatArea({
44727
44498
  display: "flex",
44728
44499
  flexDirection: "column",
44729
44500
  gap: "16px",
44730
- height: `calc(100vh - ${topbarHeight}px)`,
44731
- flexShrink: 0,
44732
- overflowX: "hidden"
44501
+ flex: 1,
44502
+ minHeight: 0,
44503
+ height: "100%",
44504
+ overflow: "hidden",
44505
+ borderRadius: "var(--mantine-radius-md)",
44506
+ padding: 8
44733
44507
  },
44734
44508
  children: [
44735
- /* @__PURE__ */ jsxs(
44736
- "div",
44509
+ /* @__PURE__ */ jsx(SessionHeader, { session, connectionState }),
44510
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ jsx(
44511
+ SessionChatInterface,
44737
44512
  {
44738
- style: {
44739
- height: "100%",
44740
- display: "flex",
44741
- flexDirection: "column",
44742
- gap: "16px",
44743
- transition: "margin-right var(--duration-normal) var(--easing)",
44744
- marginRight: isSidebarOpen ? "320px" : "0",
44745
- overflow: "hidden",
44746
- borderRadius: "var(--mantine-radius-md)",
44747
- position: "relative",
44748
- padding: 8
44749
- },
44750
- children: [
44751
- /* @__PURE__ */ jsx(
44752
- SessionHeader,
44753
- {
44754
- session,
44755
- connectionState,
44756
- onToggleSidebar: () => setIsSidebarOpen(!isSidebarOpen),
44757
- isSidebarOpen
44758
- }
44759
- ),
44760
- /* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ jsx(
44761
- SessionChatInterface,
44762
- {
44763
- sessionId,
44764
- onConnectionStateChange: setConnectionState,
44765
- renderConversationView
44766
- }
44767
- ) })
44768
- ]
44513
+ sessionId,
44514
+ onConnectionStateChange: setConnectionState,
44515
+ renderConversationView
44769
44516
  }
44770
- ),
44771
- /* @__PURE__ */ jsx(
44772
- SessionDetailsSidebar,
44773
- {
44774
- session,
44775
- isOpen: isSidebarOpen,
44776
- onClose: () => setIsSidebarOpen(false),
44777
- organizationName,
44778
- onDeleted
44779
- }
44780
- )
44517
+ ) })
44781
44518
  ]
44782
44519
  }
44783
44520
  );
@@ -44866,6 +44603,207 @@ function ExecutionItem({ execution, session: _session, buildExecutionUrl }) {
44866
44603
  }
44867
44604
  );
44868
44605
  }
44606
+ function SessionDetailsPanel({ session, organizationName, onDeleted }) {
44607
+ const deleteSession = useDeleteSession();
44608
+ const endSession = useEndSession();
44609
+ const [isDeleting, setIsDeleting] = useState(false);
44610
+ const [isEnding, setIsEnding] = useState(false);
44611
+ const [showConfirmation, setShowConfirmation] = useState(false);
44612
+ const [copiedResource, setCopiedResource] = useState(false);
44613
+ const [copiedSessionId, setCopiedSessionId] = useState(false);
44614
+ const [instructions, setInstructions] = useState(session.metadata?.instructions || "");
44615
+ const [isSavingInstructions, setIsSavingInstructions] = useState(false);
44616
+ const handleConfirmDelete = async () => {
44617
+ if (isDeleting) return;
44618
+ setIsDeleting(true);
44619
+ try {
44620
+ await deleteSession.mutateAsync(session.sessionId);
44621
+ setShowConfirmation(false);
44622
+ onDeleted?.();
44623
+ } catch (error) {
44624
+ console.error("Failed to delete session:", error);
44625
+ } finally {
44626
+ setIsDeleting(false);
44627
+ }
44628
+ };
44629
+ const handleEndSession = async () => {
44630
+ if (isEnding) return;
44631
+ setIsEnding(true);
44632
+ try {
44633
+ await endSession.mutateAsync(session.sessionId);
44634
+ } catch (error) {
44635
+ console.error("Failed to end session:", error);
44636
+ } finally {
44637
+ setIsEnding(false);
44638
+ }
44639
+ };
44640
+ const handleSaveInstructions = async () => {
44641
+ setIsSavingInstructions(true);
44642
+ try {
44643
+ console.log("Saving instructions:", instructions);
44644
+ await new Promise((resolve) => setTimeout(resolve, 500));
44645
+ } finally {
44646
+ setIsSavingInstructions(false);
44647
+ }
44648
+ };
44649
+ const handleCopyResource = async () => {
44650
+ await navigator.clipboard.writeText(`${organizationName}/${session.resourceId}`);
44651
+ setCopiedResource(true);
44652
+ setTimeout(() => setCopiedResource(false), 2e3);
44653
+ };
44654
+ const handleCopySessionId = async () => {
44655
+ await navigator.clipboard.writeText(session.sessionId);
44656
+ setCopiedSessionId(true);
44657
+ setTimeout(() => setCopiedSessionId(false), 2e3);
44658
+ };
44659
+ const sessionModelConfig = session.metadata?.modelConfig;
44660
+ return /* @__PURE__ */ jsxs(Paper, { withBorder: true, p: "sm", children: [
44661
+ /* @__PURE__ */ jsxs(Stack, { children: [
44662
+ /* @__PURE__ */ jsx(Text, { fw: 600, size: "sm", style: { fontFamily: "var(--mantine-font-family-headings)" }, children: "Session Details" }),
44663
+ /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44664
+ /* @__PURE__ */ jsxs("div", { children: [
44665
+ /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44666
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Resource (CLI)" }),
44667
+ /* @__PURE__ */ jsx(Tooltip, { label: copiedResource ? "Copied!" : "Copy resource path", position: "left", children: /* @__PURE__ */ jsx(
44668
+ ActionIcon,
44669
+ {
44670
+ variant: "subtle",
44671
+ color: copiedResource ? "green" : "gray",
44672
+ onClick: handleCopyResource,
44673
+ size: "xs",
44674
+ children: copiedResource ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44675
+ }
44676
+ ) })
44677
+ ] }),
44678
+ /* @__PURE__ */ jsxs(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: [
44679
+ organizationName,
44680
+ "/",
44681
+ session.resourceId
44682
+ ] })
44683
+ ] }),
44684
+ /* @__PURE__ */ jsxs("div", { children: [
44685
+ /* @__PURE__ */ jsxs(Group, { gap: 4, mb: 4, justify: "space-between", children: [
44686
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session ID" }),
44687
+ /* @__PURE__ */ jsx(Tooltip, { label: copiedSessionId ? "Copied!" : "Copy session ID", position: "left", children: /* @__PURE__ */ jsx(
44688
+ ActionIcon,
44689
+ {
44690
+ variant: "subtle",
44691
+ color: copiedSessionId ? "green" : "gray",
44692
+ onClick: handleCopySessionId,
44693
+ size: "xs",
44694
+ children: copiedSessionId ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
44695
+ }
44696
+ ) })
44697
+ ] }),
44698
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", style: { wordBreak: "break-all" }, children: session.sessionId })
44699
+ ] })
44700
+ ] }),
44701
+ /* @__PURE__ */ jsx(Divider, {}),
44702
+ /* @__PURE__ */ jsxs("div", { children: [
44703
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: 8, children: [
44704
+ /* @__PURE__ */ jsxs(Group, { gap: 4, children: [
44705
+ /* @__PURE__ */ jsx(IconNote, { size: 14, color: "var(--color-text-subtle)" }),
44706
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", children: "Session Instructions" })
44707
+ ] }),
44708
+ isSavingInstructions && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", style: { fontStyle: "italic" }, children: "Saving..." })
44709
+ ] }),
44710
+ /* @__PURE__ */ jsx(
44711
+ Textarea,
44712
+ {
44713
+ placeholder: "Add custom instructions to append to the system prompt...",
44714
+ value: instructions,
44715
+ onChange: (e) => setInstructions(e.target.value),
44716
+ onBlur: handleSaveInstructions,
44717
+ autosize: true,
44718
+ minRows: 4,
44719
+ maxRows: 8,
44720
+ size: "sm",
44721
+ styles: { input: { fontSize: "var(--mantine-font-size-sm)" } }
44722
+ }
44723
+ )
44724
+ ] }),
44725
+ /* @__PURE__ */ jsx(Divider, {}),
44726
+ /* @__PURE__ */ jsxs("div", { children: [
44727
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Timestamps" }),
44728
+ /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
44729
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44730
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Created" }),
44731
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.createdAt).toLocaleString() })
44732
+ ] }),
44733
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44734
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Last Updated" }),
44735
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.updatedAt).toLocaleString() })
44736
+ ] }),
44737
+ session.endedAt && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44738
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Ended" }),
44739
+ /* @__PURE__ */ jsx(Text, { size: "sm", children: new Date(session.endedAt).toLocaleString() })
44740
+ ] })
44741
+ ] })
44742
+ ] }),
44743
+ sessionModelConfig && /* @__PURE__ */ jsxs(Fragment, { children: [
44744
+ /* @__PURE__ */ jsx(Divider, {}),
44745
+ /* @__PURE__ */ jsxs("div", { children: [
44746
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 600, tt: "uppercase", mb: 8, children: "Session Model Override" }),
44747
+ /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
44748
+ sessionModelConfig.model && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44749
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Model" }),
44750
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: sessionModelConfig.model })
44751
+ ] }),
44752
+ sessionModelConfig.temperature !== void 0 && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44753
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Temperature" }),
44754
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: sessionModelConfig.temperature })
44755
+ ] }),
44756
+ sessionModelConfig.maxOutputTokens && /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
44757
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "Max Tokens" }),
44758
+ /* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", children: sessionModelConfig.maxOutputTokens })
44759
+ ] })
44760
+ ] })
44761
+ ] })
44762
+ ] }),
44763
+ /* @__PURE__ */ jsx(Divider, {}),
44764
+ /* @__PURE__ */ jsx(
44765
+ Button,
44766
+ {
44767
+ fullWidth: true,
44768
+ color: "orange",
44769
+ variant: "light",
44770
+ leftSection: /* @__PURE__ */ jsx(IconPlayerStop, { size: 16 }),
44771
+ onClick: handleEndSession,
44772
+ loading: isEnding,
44773
+ disabled: isEnding || session.isEnded,
44774
+ children: session.isEnded ? "Conversation Ended" : "End Conversation"
44775
+ }
44776
+ ),
44777
+ /* @__PURE__ */ jsx(
44778
+ Button,
44779
+ {
44780
+ fullWidth: true,
44781
+ color: "red",
44782
+ variant: "light",
44783
+ leftSection: /* @__PURE__ */ jsx(IconTrash, { size: 16 }),
44784
+ onClick: () => setShowConfirmation(true),
44785
+ loading: isDeleting,
44786
+ disabled: isDeleting,
44787
+ children: "Delete Session"
44788
+ }
44789
+ )
44790
+ ] }),
44791
+ /* @__PURE__ */ jsx(
44792
+ ConfirmationModal,
44793
+ {
44794
+ opened: showConfirmation,
44795
+ onClose: () => setShowConfirmation(false),
44796
+ icon: /* @__PURE__ */ jsx(IconAlertTriangle, {}),
44797
+ title: "Delete Session",
44798
+ text: "Are you sure you want to delete this session? All messages and execution history will be permanently removed. This action cannot be undone.",
44799
+ buttonText: "Delete Session",
44800
+ buttonColor: "red",
44801
+ confirmationHandler: handleConfirmDelete,
44802
+ loading: isDeleting
44803
+ }
44804
+ )
44805
+ ] });
44806
+ }
44869
44807
  var DRAFT_SENTINEL2 = "new";
44870
44808
  function AgentChatOuterSubshellContainer({ children }) {
44871
44809
  return /* @__PURE__ */ jsx(
@@ -44883,13 +44821,15 @@ function AgentChatOuterSubshellContainer({ children }) {
44883
44821
  }
44884
44822
  function useDefaultConversationViewRenderer() {
44885
44823
  const { apiUrl } = useElevasisServices();
44886
- if (!apiUrl) {
44887
- throw new Error(
44888
- "SessionChatPage default conversation view requires apiUrl on ElevasisCoreProvider; mount with apiUrl or pass renderConversationView."
44889
- );
44890
- }
44891
44824
  return useCallback(
44892
- (args) => /* @__PURE__ */ jsx(SessionConversationView, { apiUrl, ...args }),
44825
+ (args) => {
44826
+ if (!apiUrl) {
44827
+ throw new Error(
44828
+ "SessionChatPage default conversation view requires apiUrl on ElevasisCoreProvider; mount with apiUrl or pass renderConversationView."
44829
+ );
44830
+ }
44831
+ return /* @__PURE__ */ jsx(SessionConversationView, { apiUrl, ...args });
44832
+ },
44893
44833
  [apiUrl]
44894
44834
  );
44895
44835
  }
@@ -44898,7 +44838,7 @@ function SessionChatPage({
44898
44838
  isReady,
44899
44839
  renderConversationView,
44900
44840
  buildExecutionUrl,
44901
- buildSessionListUrl: _buildSessionListUrl,
44841
+ buildSessionListUrl,
44902
44842
  organizationName,
44903
44843
  buildSessionDetailUrl
44904
44844
  }) {
@@ -44972,6 +44912,7 @@ function SessionChatPage({
44972
44912
  sessionId: effectiveSessionId,
44973
44913
  renderConversationView: resolvedRenderer,
44974
44914
  buildExecutionUrl,
44915
+ buildSessionListUrl,
44975
44916
  organizationName,
44976
44917
  pendingFirstMessage: pendingFirstMessage ?? void 0,
44977
44918
  onPendingSent
@@ -44982,6 +44923,7 @@ function SessionChatPageLive({
44982
44923
  sessionId,
44983
44924
  renderConversationView,
44984
44925
  buildExecutionUrl,
44926
+ buildSessionListUrl,
44985
44927
  organizationName,
44986
44928
  pendingFirstMessage,
44987
44929
  onPendingSent
@@ -45003,6 +44945,7 @@ function SessionChatPageLive({
45003
44945
  session,
45004
44946
  renderConversationView,
45005
44947
  buildExecutionUrl,
44948
+ buildSessionListUrl,
45006
44949
  organizationName,
45007
44950
  pendingFirstMessage,
45008
44951
  onPendingSent
@@ -45014,11 +44957,14 @@ function SessionChatPageContent({
45014
44957
  session,
45015
44958
  renderConversationView,
45016
44959
  buildExecutionUrl,
44960
+ buildSessionListUrl,
45017
44961
  organizationName,
45018
44962
  pendingFirstMessage,
45019
44963
  onPendingSent
45020
44964
  }) {
45021
44965
  const { data: resourceDefinition } = useResourceDefinition(session.resourceId);
44966
+ const { currentSearch } = useRouterContext();
44967
+ const activeView = getSessionView(currentSearch);
45022
44968
  const renderConversationViewWithPending = useCallback(
45023
44969
  (args) => renderConversationView({
45024
44970
  ...args,
@@ -45027,23 +44973,59 @@ function SessionChatPageContent({
45027
44973
  }),
45028
44974
  [renderConversationView, pendingFirstMessage, onPendingSent]
45029
44975
  );
45030
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(AgentChatOuterSubshellContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
44976
+ return /* @__PURE__ */ jsx(AgentChatOuterSubshellContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs("div", { style: { height: `calc(100vh - ${topbarHeight}px)`, display: "flex", flexDirection: "column" }, children: [
45031
44977
  /* @__PURE__ */ jsx(
45032
- SessionChatArea,
44978
+ "div",
45033
44979
  {
45034
- sessionId,
45035
- session,
45036
- organizationName,
45037
- renderConversationView: renderConversationViewWithPending
44980
+ style: {
44981
+ flex: 1,
44982
+ minHeight: 0,
44983
+ display: activeView === "chat" ? "flex" : "none",
44984
+ flexDirection: "column"
44985
+ },
44986
+ children: /* @__PURE__ */ jsx(
44987
+ SessionChatArea,
44988
+ {
44989
+ sessionId,
44990
+ session,
44991
+ renderConversationView: renderConversationViewWithPending
44992
+ }
44993
+ )
45038
44994
  }
45039
44995
  ),
45040
- /* @__PURE__ */ jsx("div", { style: { padding: "8px", display: "flex", flexDirection: "column", gap: "8px" }, children: /* @__PURE__ */ jsxs(Stack, { style: { flex: 1, height: "100%" }, children: [
45041
- resourceDefinition && /* @__PURE__ */ jsx(ResourceDefinitionSection, { resourceDefinition }),
45042
- /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { children: [
45043
- /* @__PURE__ */ jsx(SessionMemory, { memory: session.memorySnapshot }),
45044
- /* @__PURE__ */ jsx(SessionExecutionLogs, { sessionId, session, buildExecutionUrl })
45045
- ] }) })
45046
- ] }) })
44996
+ /* @__PURE__ */ jsx(
44997
+ "div",
44998
+ {
44999
+ style: {
45000
+ flex: 1,
45001
+ minHeight: 0,
45002
+ overflow: "auto",
45003
+ display: activeView === "info" ? "block" : "none"
45004
+ },
45005
+ children: /* @__PURE__ */ jsx("div", { style: { padding: "8px", display: "flex", flexDirection: "column", gap: "8px" }, children: /* @__PURE__ */ jsxs(Stack, { style: { flex: 1 }, children: [
45006
+ /* @__PURE__ */ jsx(
45007
+ SessionDetailsPanel,
45008
+ {
45009
+ session,
45010
+ organizationName,
45011
+ onDeleted: () => window.location.assign(buildSessionListUrl())
45012
+ }
45013
+ ),
45014
+ resourceDefinition && /* @__PURE__ */ jsx(ResourceDefinitionSection, { resourceDefinition }),
45015
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { children: [
45016
+ /* @__PURE__ */ jsx(SessionMemory, { memory: session.memorySnapshot }),
45017
+ /* @__PURE__ */ jsx(
45018
+ SessionExecutionLogs,
45019
+ {
45020
+ sessionId,
45021
+ session,
45022
+ buildExecutionUrl
45023
+ }
45024
+ )
45025
+ ] }) })
45026
+ ] }) })
45027
+ }
45028
+ )
45047
45029
  ] }) }) });
45048
45030
  }
45049
45031
  function AgentSessionGroup({
@@ -45106,7 +45088,9 @@ function SessionsSidebar({
45106
45088
  onAgentClick,
45107
45089
  buildSessionDetailUrl,
45108
45090
  sessionId,
45109
- agentParam
45091
+ agentParam,
45092
+ activeView,
45093
+ onViewChange
45110
45094
  }) {
45111
45095
  const theme = useMantineTheme();
45112
45096
  const { organizationReady } = useInitialization();
@@ -45124,6 +45108,32 @@ function SessionsSidebar({
45124
45108
  const hasSessionsData = agentSessions.length > 0;
45125
45109
  const isInitialLoading = !isReady || !organizationReady || isResourcesLoading && !hasResourcesData || isSessionView && (isCurrentSessionLoading || isSessionsLoading) && !hasSessionsData;
45126
45110
  return /* @__PURE__ */ jsxs(Box, { style: { flex: 1, minHeight: 0, padding: theme.spacing.sm, display: "flex", flexDirection: "column" }, children: [
45111
+ isSessionView && activeView && onViewChange && /* @__PURE__ */ jsx(
45112
+ SegmentedControl,
45113
+ {
45114
+ fullWidth: true,
45115
+ size: "xs",
45116
+ value: activeView,
45117
+ onChange: (value) => onViewChange(value),
45118
+ mb: "md",
45119
+ data: [
45120
+ {
45121
+ value: "chat",
45122
+ label: /* @__PURE__ */ jsxs(Center, { style: { gap: 6 }, children: [
45123
+ /* @__PURE__ */ jsx(IconMessageCircle, { size: 14 }),
45124
+ /* @__PURE__ */ jsx("span", { children: "Chat" })
45125
+ ] })
45126
+ },
45127
+ {
45128
+ value: "info",
45129
+ label: /* @__PURE__ */ jsxs(Center, { style: { gap: 6 }, children: [
45130
+ /* @__PURE__ */ jsx(IconInfoCircle, { size: 14 }),
45131
+ /* @__PURE__ */ jsx("span", { children: "Info" })
45132
+ ] })
45133
+ }
45134
+ ]
45135
+ }
45136
+ ),
45127
45137
  /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, c: "dimmed", tt: "uppercase", mb: "md", children: isSessionView ? "Agent Sessions" : "Agents" }),
45128
45138
  /* @__PURE__ */ jsx(ScrollArea, { style: { flex: 1, minHeight: 0 }, scrollbarSize: 8, children: isInitialLoading ? /* @__PURE__ */ jsx(SubshellSidebarLoader, {}) : isSessionView ? agentSessions.length > 0 ? /* @__PURE__ */ jsx(Stack, { gap: "xs", children: agentSessions.map((session) => /* @__PURE__ */ jsx(
45129
45139
  SessionListItem,
@@ -45161,9 +45171,9 @@ function AgentListItem({ agent, isSelected, onAgentClick }) {
45161
45171
  },
45162
45172
  onClick: () => onAgentClick(agent.resourceId),
45163
45173
  children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
45164
- /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
45165
- /* @__PURE__ */ jsx(IconBrain, { size: 16, color: theme.colors[theme.primaryColor][6] }),
45166
- /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: titleColor, children: agent.name })
45174
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", align: "flex-start", children: [
45175
+ /* @__PURE__ */ jsx(IconBrain, { size: 16, color: theme.colors[theme.primaryColor][6], style: { flexShrink: 0, marginTop: 2 } }),
45176
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: titleColor, style: { flex: 1, minWidth: 0 }, children: agent.name })
45167
45177
  ] }),
45168
45178
  agent.description && /* @__PURE__ */ jsx(Text, { size: "xs", c: descriptionColor, lineClamp: 2, children: agent.description })
45169
45179
  ] })
@@ -45175,29 +45185,6 @@ function AgentListItem({ agent, isSelected, onAgentClick }) {
45175
45185
  var OperationsSidebarTop = () => {
45176
45186
  return null;
45177
45187
  };
45178
-
45179
- // src/features/operations/sidebar/pathUtils.ts
45180
- var RESOURCE_DETAIL_PATTERN = /^\/operations\/resources\/(workflow|agent)\/([^/]+)$/;
45181
- var SESSION_DETAIL_PATTERN = /^\/operations\/sessions\/([^/]+)$/;
45182
- function getActiveResource(pathname) {
45183
- const match = pathname.match(RESOURCE_DETAIL_PATTERN);
45184
- if (!match) return null;
45185
- return {
45186
- type: match[1],
45187
- id: match[2]
45188
- };
45189
- }
45190
- function isResourceDetailPage(pathname) {
45191
- return RESOURCE_DETAIL_PATTERN.test(pathname);
45192
- }
45193
- function getSessionId(pathname) {
45194
- const match = pathname.match(SESSION_DETAIL_PATTERN);
45195
- return match?.[1];
45196
- }
45197
- function getSessionAgentParam(search) {
45198
- if (!search) return void 0;
45199
- return new URLSearchParams(search).get("agent") ?? void 0;
45200
- }
45201
45188
  var ExecutionLogsSidebar = () => {
45202
45189
  const { currentPath } = useRouterContext();
45203
45190
  const { operationsApiUrl, operationsSSEManager } = useElevasisSystems();
@@ -45626,6 +45613,8 @@ var OperationsSidebarMiddle = () => {
45626
45613
  isReady: true,
45627
45614
  sessionId: getSessionId(currentPath),
45628
45615
  agentParam: getSessionAgentParam(currentSearch),
45616
+ activeView: getSessionView(currentSearch),
45617
+ onViewChange: (view) => navigate(view === "info" ? `${currentPath}?view=info` : currentPath),
45629
45618
  buildSessionDetailUrl: (sessionId) => `/operations/sessions/${sessionId}`,
45630
45619
  onAgentClick: (agentId) => navigate(`/operations/sessions?agent=${encodeURIComponent(agentId)}`)
45631
45620
  }
@@ -51591,4 +51580,4 @@ function useAccess(key) {
51591
51580
  };
51592
51581
  }
51593
51582
 
51594
- export { APIErrorAlert, AbsoluteScheduleForm, AccessGuard, AccessKeys, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, ActivityTimeline, ActivityTrendChart, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationDetailPanel, AgentIterationEdge, AgentIterationNode, AgentResourceEntrySchema, AgentSessionGroup, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeyService, ApiKeySettings, AppErrorBoundary, AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, AppearanceContext, AppearanceProvider, AppearanceSettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CRM_ITEMS, CenteredErrorState, ChartFrame, Checklist, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CollapsibleSidebarGroup, CombinedTrendChart, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewPage, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, ConversationThread, CostAnalytics, CostBreakdownCard, CostByModelTable, CostMetricsCard, CostTrendChart, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateDeliveryEntityModal, CreateRoleModal, CreateScheduleModal, CreateWebhookEndpointModal, CredentialList, CredentialService, CredentialSettings, CrmActionsProvider, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, CyberParticles, DEAL_STAGES, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DEFAULT_KANBAN_CONFIG, DEFAULT_SEMANTIC_ICON_REGISTRY, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, Dashboard, DashboardOperationsOverview, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentService, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EMPTY_LIST_ACTIONS, EditApiKeyModal, EditCredentialModal, EditWebhookEndpointModal, ElevasisCoreProvider, ElevasisLoader, ElevasisSystemsProvider, ElevasisUIProvider, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorDetailsModal, ErrorReportCard, ExecuteWorkflowModal, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealth, ExecutionHealthCard, ExecutionLogsFilters, ExecutionLogsPage, ExecutionLogsTable, ExecutionPanel, ExecutionStats, ExecutionStatusBadge, FILTERABLE_DOMAIN_KEYS, FeatureUnavailableState, FilterBar, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, HeroStatsRow, IdentityDomainSchema, IntegrationResourceEntrySchema, JsonViewer, KNOWLEDGE_DOMAINS_WITH_PANELS, KNOWLEDGE_ICON_TOKEN_BY_KIND, KanbanBoard, KnowledgeSearchBar, KnowledgeTree, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, LinksGroup, ListActionsProvider, ListBuilderIndexPage, ListBuilderPage, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyRolesPage, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationCenter, NotificationItem, NotificationList, NotificationPanel, NotificationProvider, OAuthConnectModal, OAuthIntegrationsCard, OM_NESTED_TREE_GROUPS, OM_TREE_GROUPS, ORPHAN_STAGE_ORDER, OperationsOverview, OperationsService, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrgMembersList, OrganizationGraphPage, OrganizationMembershipService, OrganizationMembershipsList, OrganizationProvider, OrganizationSettings, OrganizationSwitcher, OrganizationSwitcherConnected, PIPELINE_FUNNEL_ORDER, PageContainer, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, PolicySchema, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, ProtectedRoute, QuickCreateActions, RecentExecutionsByResource, RecurringScheduleForm, RelativeScheduleForm, RequestActionIcon, RequestModal, ResourceCard, ResourceDefinitionSection, ResourceDetailPage, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, ResourceOverview, ResourcesPage, ResourcesSidebar, RichTextEditor, RoleBadge, RoleSchema, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, ScriptResourceEntrySchema, SemanticIcon, SessionChatArea, SessionChatInterface, SessionChatPage, SessionConversationView, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionMemory, SessionsPage, SessionsSidebar, Sidebar, SidebarContext, SidebarProvider, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StepConfigForm, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellNavList, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarLoader, SurfaceDefinitionSchema, SystemOpsView, SystemShell, TabCountBadge, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, Topbar, TopbarActions, TopbarContainer, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UnresolvedErrorsTeaser, UpcomingMilestonesPage, Vignette, VisualizerContainer, WebhookEndpointList, WebhookEndpointService, WebhookEndpointSettings, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionPanel, WorkflowExecutionTimeline, WorkflowResourceEntrySchema, ZodFormRenderer, acquisitionListKeys, aggregateSystemMetrics, buildErrorReport, buildKnowledgeOmTreeData, calculateProgress, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, createOrganizationsSlice, createTestSystemsProvider, createUseOrgInitialization, createUseOrganizations, crmManifest, crmPrioritySettingsKeys, dealKeys, dealNoteKeys, dealTaskKeys, deliveryManifest, deriveBusinessProgress, executionsKeys, extendSemanticIconRegistry, filterByDomainFilters, findKnowledgeTreeNodeByValue, findListActionByAction, findOmTreeGroup, formatDate3 as formatDate, formatDealStageLabel, formatResourceAttribution, formatStatusLabel, getConceptDefinition, getEnrichmentColor, getEnrichmentStatus, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getKnowledgeDomainFolderCommand, getKnowledgeGraphNodeCommand, getKnowledgeIconToken, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getKnowledgeTreeFolderCommand, getLeadGenApiInterfaceReadiness, getLeadGenExportWorkflowId, getListActionWorkflowId, getLogLevelConfig, getOntologyDomainLabel, getPrimaryOntologyItemsForDomain, getResourceFilterFacetIds, getSemanticIconComponent, getSeriesColor, getSharedOrganizationGraph, getStateKeyColor, getStatusColor4 as getStatusColor, getStepActionLabel, iconMap, isLeadGenExportAction, isSessionCapable, knowledgeManifest, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, leadGenManifest, mdxComponents, milestoneKeys, milestoneStatusColors, monitoringManifest, normaliseConceptKey, noteKeys, noteTypeColors, observabilityKeys, operationsKeys, operationsManifest, projectActivityKeys, projectKeys, projectNavigationGroups, projectNavigationSurfaces, projectStatusColors, requestTopbarActionManifest, requestsKeys, resolveBuildPlanSteps, resolveBuildState, resolveSemanticIconComponent, scheduleKeys, sessionsKeys, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, sortStageKeys, subsidebarWidth, taskKeys, taskStatusColors, taskTypeColors, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useAppearance, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBreadcrumbs, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useCrmActions, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useCyberColors, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteLists, useDeleteMilestone, useDeleteOrgRole, useDeleteProject, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useElevasisSystems, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphBackgroundStyles, useGraphTheme, useInFlightExecutions, useLeadGenConfig, useList, useListActions, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNewKnowledgeMapLayout, useNotificationAdapter, useNotificationCount, useNotifications, useOptionalElevasisSystems, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentCrmActivity, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResetCrmPrioritySettings, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResolvedOrganizationModel, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionCheck, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSidebar, useSidebarCollapse, useSortedData, useStableAccessToken, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateCrmPrioritySettings, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
51583
+ export { APIErrorAlert, AbsoluteScheduleForm, AccessGuard, AccessKeys, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, ActivityTimeline, ActivityTrendChart, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationDetailPanel, AgentIterationEdge, AgentIterationNode, AgentResourceEntrySchema, AgentSessionGroup, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeyService, ApiKeySettings, AppErrorBoundary, AppShellCenteredContainer, AppShellContainer, AppShellContentContainer, AppShellError, AppShellLoader, AppShellRightSideContainer, AppShellRightSideOuterContainer, AppTopbarAdjusterWrapper, AppearanceContext, AppearanceProvider, AppearanceSettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CRM_ITEMS, CenteredErrorState, ChartFrame, Checklist, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CollapsibleSidebarGroup, CombinedTrendChart, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewPage, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, ConversationThread, CostAnalytics, CostBreakdownCard, CostByModelTable, CostMetricsCard, CostTrendChart, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateDeliveryEntityModal, CreateRoleModal, CreateScheduleModal, CreateWebhookEndpointModal, CredentialList, CredentialService, CredentialSettings, CrmActionsProvider, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, CyberParticles, DEAL_STAGES, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DEFAULT_KANBAN_CONFIG, DEFAULT_SEMANTIC_ICON_REGISTRY, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, Dashboard, DashboardOperationsOverview, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentService, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EMPTY_LIST_ACTIONS, EditApiKeyModal, EditCredentialModal, EditWebhookEndpointModal, ElevasisCoreProvider, ElevasisLoader, ElevasisSystemsProvider, ElevasisUIProvider, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorDetailsModal, ErrorReportCard, ExecuteWorkflowModal, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealth, ExecutionHealthCard, ExecutionLogsFilters, ExecutionLogsPage, ExecutionLogsTable, ExecutionPanel, ExecutionStats, ExecutionStatusBadge, FILTERABLE_DOMAIN_KEYS, FeatureUnavailableState, FilterBar, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, HeroStatsRow, IdentityDomainSchema, IntegrationResourceEntrySchema, JsonViewer, KNOWLEDGE_DOMAINS_WITH_PANELS, KNOWLEDGE_ICON_TOKEN_BY_KIND, KanbanBoard, KnowledgeSearchBar, KnowledgeTree, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, LinksGroup, ListActionsProvider, ListBuilderIndexPage, ListBuilderPage, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyRolesPage, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationCenter, NotificationItem, NotificationList, NotificationPanel, NotificationProvider, OAuthConnectModal, OAuthIntegrationsCard, OM_NESTED_TREE_GROUPS, OM_TREE_GROUPS, ORPHAN_STAGE_ORDER, OperationsOverview, OperationsService, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrgMembersList, OrganizationGraphPage, OrganizationMembershipService, OrganizationMembershipsList, OrganizationProvider, OrganizationSettings, OrganizationSwitcher, OrganizationSwitcherConnected, PIPELINE_FUNNEL_ORDER, PageContainer, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, PolicySchema, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, ProtectedRoute, QuickCreateActions, RecentExecutionsByResource, RecurringScheduleForm, RelativeScheduleForm, RequestActionIcon, RequestModal, ResourceCard, ResourceDefinitionSection, ResourceDetailPage, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, ResourceOverview, ResourcesPage, ResourcesSidebar, RichTextEditor, RoleBadge, RoleSchema, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, ScriptResourceEntrySchema, SemanticIcon, SessionChatArea, SessionChatInterface, SessionChatPage, SessionConversationView, SessionDetailsPanel, SessionExecutionLogs, SessionHeader, SessionListItem, SessionMemory, SessionsPage, SessionsSidebar, Sidebar, SidebarContext, SidebarProvider, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StepConfigForm, SubshellContainer, SubshellContentContainer, SubshellLoader, SubshellNavList, SubshellRightSideContainer, SubshellSidebar, SubshellSidebarLoader, SurfaceDefinitionSchema, SystemOpsView, SystemShell, TabCountBadge, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, Topbar, TopbarActions, TopbarContainer, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UnresolvedErrorsTeaser, UpcomingMilestonesPage, Vignette, VisualizerContainer, WebhookEndpointList, WebhookEndpointService, WebhookEndpointSettings, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionPanel, WorkflowExecutionTimeline, WorkflowResourceEntrySchema, ZodFormRenderer, acquisitionListKeys, aggregateSystemMetrics, buildErrorReport, buildKnowledgeOmTreeData, calculateProgress, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, createOrganizationsSlice, createTestSystemsProvider, createUseOrgInitialization, createUseOrganizations, crmManifest, crmPrioritySettingsKeys, dealKeys, dealNoteKeys, dealTaskKeys, deliveryManifest, deriveBusinessProgress, executionsKeys, extendSemanticIconRegistry, filterByDomainFilters, findKnowledgeTreeNodeByValue, findListActionByAction, findOmTreeGroup, formatDate3 as formatDate, formatDealStageLabel, formatResourceAttribution, formatStatusLabel, getConceptDefinition, getEnrichmentColor, getEnrichmentStatus, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getKnowledgeDomainFolderCommand, getKnowledgeGraphNodeCommand, getKnowledgeIconToken, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getKnowledgeTreeFolderCommand, getLeadGenApiInterfaceReadiness, getLeadGenExportWorkflowId, getListActionWorkflowId, getLogLevelConfig, getOntologyDomainLabel, getPrimaryOntologyItemsForDomain, getResourceFilterFacetIds, getSemanticIconComponent, getSeriesColor, getSharedOrganizationGraph, getStateKeyColor, getStatusColor4 as getStatusColor, getStepActionLabel, iconMap, isLeadGenExportAction, isSessionCapable, knowledgeManifest, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, leadGenManifest, mdxComponents, milestoneKeys, milestoneStatusColors, monitoringManifest, normaliseConceptKey, noteKeys, noteTypeColors, observabilityKeys, operationsKeys, operationsManifest, projectActivityKeys, projectKeys, projectNavigationGroups, projectNavigationSurfaces, projectStatusColors, requestTopbarActionManifest, requestsKeys, resolveBuildPlanSteps, resolveBuildState, resolveSemanticIconComponent, scheduleKeys, sessionsKeys, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, sortStageKeys, subsidebarWidth, taskKeys, taskStatusColors, taskTypeColors, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useAppearance, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBreadcrumbs, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTask, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useCrmActions, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useCyberColors, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteLists, useDeleteMilestone, useDeleteOrgRole, useDeleteProject, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useElevasisSystems, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphBackgroundStyles, useGraphTheme, useInFlightExecutions, useLeadGenConfig, useList, useListActions, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNewKnowledgeMapLayout, useNotificationAdapter, useNotificationCount, useNotifications, useOptionalElevasisSystems, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentCrmActivity, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResetCrmPrioritySettings, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResolvedOrganizationModel, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionCheck, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSidebar, useSidebarCollapse, useSortedData, useStableAccessToken, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateCrmPrioritySettings, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };