@elevasis/ui 2.64.1 → 2.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.js +2 -2
- package/dist/app/index.d.ts +26 -0
- package/dist/app/index.js +8 -8
- package/dist/auth/index.d.ts +12 -5
- package/dist/auth/index.js +8 -8
- package/dist/charts/index.js +8 -8
- package/dist/{chunk-DRQPEMJI.js → chunk-4DV4ECMG.js} +3 -0
- package/dist/{chunk-KRWALB24.js → chunk-6SSQGWK7.js} +1 -1
- package/dist/{chunk-ZTWA5H77.js → chunk-6ZAP3FOA.js} +0 -1
- package/dist/{chunk-PGAA4G3T.js → chunk-ANNM5R7S.js} +275 -382
- package/dist/{chunk-I3CFGE3N.js → chunk-BLXJEIQS.js} +1 -1
- package/dist/chunk-L7BZZ4SI.js +56 -0
- package/dist/chunk-P45GQ3ZW.js +104 -0
- package/dist/{chunk-EIXSQONC.js → chunk-RT4KRGZT.js} +37 -59
- package/dist/{chunk-FVOMKZ7S.js → chunk-Y6I3IC45.js} +3 -6
- package/dist/components/index.d.ts +274 -191
- package/dist/components/index.js +8 -8
- package/dist/components/navigation/index.js +8 -8
- package/dist/execution/index.d.ts +115 -104
- package/dist/execution/index.js +2 -2
- package/dist/features/auth/index.d.ts +125 -9
- package/dist/features/auth/index.js +154 -14
- package/dist/features/clients/index.js +8 -8
- package/dist/features/crm/index.d.ts +20 -0
- package/dist/features/crm/index.js +8 -8
- package/dist/features/dashboard/index.js +8 -8
- package/dist/features/delivery/index.d.ts +20 -0
- package/dist/features/delivery/index.js +8 -8
- package/dist/features/knowledge/index.js +8 -8
- package/dist/features/lead-gen/index.js +8 -8
- package/dist/features/monitoring/index.js +8 -8
- package/dist/features/monitoring/requests/index.js +9 -9
- package/dist/features/notes/index.js +2 -2
- package/dist/features/operations/index.d.ts +177 -106
- package/dist/features/operations/index.js +8 -8
- package/dist/features/public-agent-chat/index.js +1 -1
- package/dist/features/settings/index.d.ts +21 -0
- package/dist/features/settings/index.js +8 -8
- package/dist/hooks/access/index.js +8 -8
- package/dist/hooks/delivery/index.d.ts +20 -0
- package/dist/hooks/delivery/index.js +8 -8
- package/dist/hooks/index.d.ts +319 -145
- package/dist/hooks/index.js +8 -8
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -2
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +1 -1
- package/dist/hooks/published.d.ts +319 -145
- package/dist/hooks/published.js +8 -8
- package/dist/index.d.ts +409 -219
- package/dist/index.js +8 -8
- package/dist/initialization/index.d.ts +95 -28
- package/dist/initialization/index.js +3 -3
- package/dist/knowledge/index.js +12 -12
- package/dist/{knowledge-search-index-JOPRYZN6.js → knowledge-search-index-6EZNBNSR.js} +4 -4
- package/dist/layout/index.js +8 -8
- package/dist/organization/index.d.ts +63 -4
- package/dist/organization/index.js +8 -8
- package/dist/profile/index.d.ts +43 -2
- package/dist/profile/index.js +1 -1
- package/dist/provider/index.d.ts +20 -0
- package/dist/provider/index.js +8 -8
- package/dist/provider/published.d.ts +20 -0
- package/dist/provider/published.js +8 -8
- package/dist/supabase/index.d.ts +40 -0
- package/dist/test-utils/index.d.ts +5 -0
- package/dist/test-utils/index.js +4 -4
- package/dist/test-utils/setup-integration.js +1 -1
- package/dist/test-utils/setup.js +1 -1
- package/dist/types/index.d.ts +483 -244
- package/dist/utils/index.js +2 -2
- package/package.json +6 -4
- package/dist/chunk-LO7GWG24.js +0 -75
- package/dist/chunk-T4LA4RY2.js +0 -56
|
@@ -4,17 +4,17 @@ import { useSupabase } from './chunk-MKH2KOAO.js';
|
|
|
4
4
|
import { HTTP_HEADERS, ApiClientProvider, useApiClient } from './chunk-XNW3O6QW.js';
|
|
5
5
|
import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, sidebarItemPadding, sidebarItemHeight, sidebarIconSize, sidebarIconStroke, sidebarIconInnerSize, sidebarBottomSectionHeight, SubshellNavItem, sidebarGroupChevronSize, SubshellSidebarSection } from './chunk-GMXGDO3I.js';
|
|
6
6
|
import { CardHeader } from './chunk-62GVNH5U.js';
|
|
7
|
-
import { useInitialization, InitializationContext, InitializationProvider } from './chunk-
|
|
7
|
+
import { useInitialization, InitializationContext, InitializationProvider } from './chunk-P45GQ3ZW.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
10
|
import { StyledMarkdown, ChatInterface, ChatHeader } from './chunk-JFBZ6XDW.js';
|
|
11
11
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
12
|
-
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger
|
|
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-
|
|
14
|
-
import { useProfile, useUserProfile, ProfileProvider } from './chunk-
|
|
12
|
+
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger } from './chunk-HENXLGVD.js';
|
|
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-BLXJEIQS.js';
|
|
14
|
+
import { useProfile, useUserProfile, ProfileProvider } from './chunk-RT4KRGZT.js';
|
|
15
15
|
import { LabelSchema, DescriptionSchema, PathSchema, ModelIdSchema, IconNameSchema, SystemLifecycleSchema, OntologyIdSchema, SystemPathSchema, ActionInvocationSchema, SystemIdSchema, NodeIdStringSchema, JsonValueSchema, SystemInterfaceRefSchema, EntitiesDomainSchema, ActionsDomainSchema, DEFAULT_ORGANIZATION_MODEL_ACTIONS, OntologyScopeSchema, DEFAULT_ONTOLOGY_SCOPE, SystemsDomainSchema, DEFAULT_ORGANIZATION_MODEL_SYSTEMS, defineEntities, defineActions, listAllSystems, listResolvedOntologyRecords, getErrorInfo, getErrorTitle, formatErrorMessage, getSystem, compileOrganizationOntology, isAPIClientError, getResourceIcon, formatTimeAgo, PAGE_SIZE_DEFAULT, STALE_TIME_MONITORING, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT, formatDateTime, LEAD_GEN_API_INTERFACE, computeInterfaceReadiness, getAllBuildTemplates, getLeadGenStageCatalog, formatDate, formatRelativeTime, getResourcesForSystem, ontologyGraphNodeId, parseOntologyId, getAllProspectingStages, getAllPipelines, getAllProjectStatuses, OAUTH_FLOW_TIMEOUT, devOnlyFor, requiresAdminFor, topLevel, parentOf, ancestorsOf, childrenOf, findById, findByPath, getSystemAncestors, resolveSystemConfig, defaultPathFor } from './chunk-I7BZVVVU.js';
|
|
16
|
-
import { getTimeRangeLabel, getTimeRangeDates, formatBucketTime, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce } from './chunk-
|
|
17
|
-
import { ResourceStatusColors, toWorkflowLogMessages } from './chunk-
|
|
16
|
+
import { getTimeRangeLabel, getTimeRangeDates, formatBucketTime, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce } from './chunk-Y6I3IC45.js';
|
|
17
|
+
import { ResourceStatusColors, toWorkflowLogMessages } from './chunk-6SSQGWK7.js';
|
|
18
18
|
import { useElevasisServices, ElevasisServiceContext, ElevasisServiceProvider } from './chunk-BI5VDO2K.js';
|
|
19
19
|
import { brandSupabaseOrgId, brandWorkOsOrgId } from './chunk-MQZE7SUI.js';
|
|
20
20
|
import { ResourceTypeSchema, NonEmptyStringSchema, OriginResourceTypeSchema, UuidSchema, CredentialNameSchema } from './chunk-TVTSASST.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,
|
|
25
|
+
import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronRight, IconLayoutGrid, IconColumns, IconFileInvoice, IconMail, IconSend, IconFileText, 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, IconBrain, 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, 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, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconTimeline, IconNote, IconPalette, IconSparkles, 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';
|
|
@@ -42,7 +42,6 @@ import { create } from 'zustand';
|
|
|
42
42
|
import { persist, createJSONStorage } from 'zustand/middleware';
|
|
43
43
|
import { Position, Handle, getSmoothStepPath, BaseEdge as BaseEdge$1, EdgeLabelRenderer, Panel, useReactFlow, Controls, ReactFlowProvider, ReactFlow } from '@xyflow/react';
|
|
44
44
|
import '@xyflow/react/dist/style.css';
|
|
45
|
-
import dagre from '@dagrejs/dagre';
|
|
46
45
|
import { zod4Resolver } from 'mantine-form-zod-resolver';
|
|
47
46
|
import { Link, RichTextEditor as RichTextEditor$1 } from '@mantine/tiptap';
|
|
48
47
|
import { useEditor } from '@tiptap/react';
|
|
@@ -152,8 +151,20 @@ var MEMBERSHIP_STATUS_COLORS = {
|
|
|
152
151
|
active: "green",
|
|
153
152
|
inactive: "gray"
|
|
154
153
|
};
|
|
154
|
+
var PROVISIONING_STATE_DISPLAY = {
|
|
155
|
+
pre_provisioned: {
|
|
156
|
+
label: "Invited",
|
|
157
|
+
color: "orange",
|
|
158
|
+
description: "Invited but signup is not complete. The membership exists here; no WorkOS account is linked to it yet."
|
|
159
|
+
},
|
|
160
|
+
workos_only: {
|
|
161
|
+
label: "Sync gap",
|
|
162
|
+
color: "red",
|
|
163
|
+
description: "WorkOS has this membership but our database has no row for it, so it is not included in the member count. Remove and re-add the member to restore the record."
|
|
164
|
+
}
|
|
165
|
+
};
|
|
155
166
|
var MembershipRoleSchema = z.string().min(1).max(64);
|
|
156
|
-
z.enum(["active", "inactive"]);
|
|
167
|
+
var MembershipStatusSchema = z.enum(["active", "inactive"]);
|
|
157
168
|
var MembershipIdParamSchema = z.object({
|
|
158
169
|
id: z.string().min(1)
|
|
159
170
|
// WorkOS membership IDs can be various formats
|
|
@@ -175,6 +186,10 @@ var UpdateMembershipSchema = z.object({
|
|
|
175
186
|
var ListMembershipsQuerySchema = z.object({
|
|
176
187
|
userId: z.string().optional(),
|
|
177
188
|
organizationId: z.string().optional(),
|
|
189
|
+
// A querystring repeats keys rather than nesting arrays, so a single value
|
|
190
|
+
// arrives as a bare string. Normalize both shapes to an array.
|
|
191
|
+
statuses: z.union([MembershipStatusSchema, z.array(MembershipStatusSchema)]).transform((value) => Array.isArray(value) ? value : [value]).optional(),
|
|
192
|
+
order: z.enum(["asc", "desc"]).optional(),
|
|
178
193
|
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
179
194
|
before: z.string().optional(),
|
|
180
195
|
// WorkOS pagination cursor
|
|
@@ -4552,15 +4567,17 @@ var CustomModal = ({ children, opened, onClose, loading, style, size }) => {
|
|
|
4552
4567
|
);
|
|
4553
4568
|
};
|
|
4554
4569
|
function useCreateOrgRole() {
|
|
4555
|
-
const { apiRequest
|
|
4570
|
+
const { apiRequest } = useElevasisServices();
|
|
4571
|
+
const organization = useContext(OrganizationContext);
|
|
4572
|
+
const orgId = organization?.currentSupabaseOrganizationId ?? null;
|
|
4556
4573
|
const queryClient = useQueryClient();
|
|
4557
4574
|
return useMutation({
|
|
4558
|
-
mutationFn: (input) => apiRequest(`/organizations/${
|
|
4575
|
+
mutationFn: (input) => apiRequest(`/organizations/${orgId}/roles`, {
|
|
4559
4576
|
method: "POST",
|
|
4560
4577
|
body: JSON.stringify(input)
|
|
4561
4578
|
}),
|
|
4562
4579
|
onSettled: () => {
|
|
4563
|
-
queryClient.invalidateQueries({ queryKey: ["org-roles",
|
|
4580
|
+
queryClient.invalidateQueries({ queryKey: ["org-roles", orgId] });
|
|
4564
4581
|
}
|
|
4565
4582
|
});
|
|
4566
4583
|
}
|
|
@@ -5994,9 +6011,34 @@ function useStableAccessToken() {
|
|
|
5994
6011
|
return getAccessTokenRef.current();
|
|
5995
6012
|
}, []);
|
|
5996
6013
|
}
|
|
6014
|
+
|
|
6015
|
+
// src/organization/context/invalidate-org-scoped.ts
|
|
6016
|
+
function invalidateOrgScopedQueries(queryClient, orgIds) {
|
|
6017
|
+
const ids = new Set(orgIds.filter((id) => !!id));
|
|
6018
|
+
if (ids.size === 0) return;
|
|
6019
|
+
void queryClient.invalidateQueries({
|
|
6020
|
+
predicate: (query) => queryKeyReferencesOrg(query.queryKey, ids)
|
|
6021
|
+
});
|
|
6022
|
+
}
|
|
6023
|
+
function queryKeyReferencesOrg(queryKey, orgIds) {
|
|
6024
|
+
return queryKey.some((segment) => segmentReferencesOrg(segment, orgIds));
|
|
6025
|
+
}
|
|
6026
|
+
function segmentReferencesOrg(segment, orgIds) {
|
|
6027
|
+
if (typeof segment === "string") return orgIds.has(segment);
|
|
6028
|
+
if (Array.isArray(segment)) return segment.some((value) => typeof value === "string" && orgIds.has(value));
|
|
6029
|
+
if (segment && typeof segment === "object") {
|
|
6030
|
+
return Object.values(segment).some((value) => typeof value === "string" && orgIds.has(value));
|
|
6031
|
+
}
|
|
6032
|
+
return false;
|
|
6033
|
+
}
|
|
6034
|
+
|
|
6035
|
+
// src/auth/hooks/useSessionCheck.ts
|
|
5997
6036
|
function useSessionCheck() {
|
|
5998
6037
|
const { user } = useAuthContext();
|
|
5999
6038
|
const queryClient = useQueryClient();
|
|
6039
|
+
const organization = useContext(OrganizationContext);
|
|
6040
|
+
const currentWorkOSOrganizationId = organization?.currentWorkOSOrganizationId ?? null;
|
|
6041
|
+
const currentSupabaseOrganizationId = organization?.currentSupabaseOrganizationId ?? null;
|
|
6000
6042
|
const isCheckingRef = useRef(false);
|
|
6001
6043
|
const hadUserRef = useRef(false);
|
|
6002
6044
|
if (user) {
|
|
@@ -6015,7 +6057,7 @@ function useSessionCheck() {
|
|
|
6015
6057
|
}
|
|
6016
6058
|
if (user) {
|
|
6017
6059
|
await queryClient.cancelQueries();
|
|
6018
|
-
queryClient
|
|
6060
|
+
invalidateOrgScopedQueries(queryClient, [currentWorkOSOrganizationId, currentSupabaseOrganizationId]);
|
|
6019
6061
|
}
|
|
6020
6062
|
} finally {
|
|
6021
6063
|
isCheckingRef.current = false;
|
|
@@ -6027,21 +6069,43 @@ function useSessionCheck() {
|
|
|
6027
6069
|
document.removeEventListener("visibilitychange", handleVisibilityChange);
|
|
6028
6070
|
window.removeEventListener("focus", handleVisibilityChange);
|
|
6029
6071
|
};
|
|
6030
|
-
}, [user, queryClient]);
|
|
6072
|
+
}, [user, queryClient, currentWorkOSOrganizationId, currentSupabaseOrganizationId]);
|
|
6073
|
+
}
|
|
6074
|
+
|
|
6075
|
+
// src/auth/guards/computeProtectedRouteGate.ts
|
|
6076
|
+
var DEFAULT_WAIT_FOR_ORGANIZATION = true;
|
|
6077
|
+
function computeProtectedRouteGate({
|
|
6078
|
+
isInitializing,
|
|
6079
|
+
userReady,
|
|
6080
|
+
allReady,
|
|
6081
|
+
error,
|
|
6082
|
+
waitForOrganization
|
|
6083
|
+
}) {
|
|
6084
|
+
const unauthenticated = !isInitializing && !userReady && error?.layer !== "profile";
|
|
6085
|
+
const blockingError = !isInitializing && !!error && error.layer !== "organization";
|
|
6086
|
+
const waitingForOrg = !isInitializing && waitForOrganization && !allReady && error?.layer !== "organization";
|
|
6087
|
+
const showFallback = isInitializing || !blockingError && (unauthenticated || waitingForOrg);
|
|
6088
|
+
return { unauthenticated, blockingError, showFallback };
|
|
6031
6089
|
}
|
|
6032
6090
|
function ProtectedRoute({
|
|
6033
6091
|
children,
|
|
6034
6092
|
redirectTo = "/login",
|
|
6035
6093
|
fallback = null,
|
|
6036
6094
|
errorFallback,
|
|
6037
|
-
waitForOrganization =
|
|
6095
|
+
waitForOrganization = DEFAULT_WAIT_FOR_ORGANIZATION
|
|
6038
6096
|
}) {
|
|
6039
6097
|
const { userReady, allReady, isInitializing, error, retry } = useInitialization();
|
|
6040
6098
|
const { signIn, canRecover } = useAuthContext();
|
|
6041
6099
|
const navigate = useNavigate();
|
|
6042
6100
|
const location = useLocation();
|
|
6043
6101
|
const hasRedirected = useRef(false);
|
|
6044
|
-
const unauthenticated
|
|
6102
|
+
const { unauthenticated, blockingError, showFallback } = computeProtectedRouteGate({
|
|
6103
|
+
isInitializing,
|
|
6104
|
+
userReady,
|
|
6105
|
+
allReady,
|
|
6106
|
+
error,
|
|
6107
|
+
waitForOrganization
|
|
6108
|
+
});
|
|
6045
6109
|
useEffect(() => {
|
|
6046
6110
|
if (unauthenticated && !hasRedirected.current) {
|
|
6047
6111
|
hasRedirected.current = true;
|
|
@@ -6057,19 +6121,10 @@ function ProtectedRoute({
|
|
|
6057
6121
|
}
|
|
6058
6122
|
}
|
|
6059
6123
|
}, [unauthenticated, signIn, canRecover, navigate, redirectTo, location]);
|
|
6060
|
-
if (
|
|
6061
|
-
return /* @__PURE__ */ jsx(Fragment, { children:
|
|
6062
|
-
}
|
|
6063
|
-
if (error && error.layer !== "organization") {
|
|
6064
|
-
if (errorFallback) {
|
|
6065
|
-
return /* @__PURE__ */ jsx(Fragment, { children: errorFallback(error, retry) });
|
|
6066
|
-
}
|
|
6067
|
-
return null;
|
|
6068
|
-
}
|
|
6069
|
-
if (unauthenticated) {
|
|
6070
|
-
return /* @__PURE__ */ jsx(Fragment, { children: fallback });
|
|
6124
|
+
if (blockingError) {
|
|
6125
|
+
return errorFallback ? /* @__PURE__ */ jsx(Fragment, { children: errorFallback(error, retry) }) : null;
|
|
6071
6126
|
}
|
|
6072
|
-
if (
|
|
6127
|
+
if (showFallback) {
|
|
6073
6128
|
return /* @__PURE__ */ jsx(Fragment, { children: fallback });
|
|
6074
6129
|
}
|
|
6075
6130
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
@@ -8737,15 +8792,36 @@ function OrganizationProvider({ apiRequest, children }) {
|
|
|
8737
8792
|
if (workosOrgId === currentWorkOSOrganizationId) return;
|
|
8738
8793
|
const target = memberships.find((m) => m.organization?.workos_org_id === workosOrgId);
|
|
8739
8794
|
if (!target) return;
|
|
8795
|
+
const previousWorkOSOrgId = currentWorkOSOrganizationId;
|
|
8796
|
+
const previousSupabaseOrgId = currentSupabaseOrganizationId;
|
|
8740
8797
|
applyMembership(target);
|
|
8741
|
-
|
|
8742
|
-
|
|
8798
|
+
invalidateOrgScopedQueries(queryClient, [
|
|
8799
|
+
previousWorkOSOrgId,
|
|
8800
|
+
previousSupabaseOrgId,
|
|
8801
|
+
target.organization?.workos_org_id,
|
|
8802
|
+
target.organizationId
|
|
8803
|
+
]);
|
|
8804
|
+
}, [
|
|
8805
|
+
workosOrgId,
|
|
8806
|
+
currentWorkOSOrganizationId,
|
|
8807
|
+
currentSupabaseOrganizationId,
|
|
8808
|
+
memberships,
|
|
8809
|
+
applyMembership,
|
|
8810
|
+
queryClient
|
|
8811
|
+
]);
|
|
8743
8812
|
const switchOrganization = useCallback(
|
|
8744
8813
|
(workosOrgId2, options) => {
|
|
8745
8814
|
const target = memberships.find((m) => m.organization?.workos_org_id === workosOrgId2);
|
|
8746
8815
|
if (!target) return;
|
|
8816
|
+
const previousWorkOSOrgId = currentWorkOSOrganizationId;
|
|
8817
|
+
const previousSupabaseOrgId = currentSupabaseOrganizationId;
|
|
8747
8818
|
applyMembership(target);
|
|
8748
|
-
|
|
8819
|
+
invalidateOrgScopedQueries(queryClient, [
|
|
8820
|
+
previousWorkOSOrgId,
|
|
8821
|
+
previousSupabaseOrgId,
|
|
8822
|
+
target.organization?.workos_org_id,
|
|
8823
|
+
target.organizationId
|
|
8824
|
+
]);
|
|
8749
8825
|
if (options?.persist !== false) {
|
|
8750
8826
|
void apiRequest("/users/me", {
|
|
8751
8827
|
method: "PATCH",
|
|
@@ -8756,7 +8832,7 @@ function OrganizationProvider({ apiRequest, children }) {
|
|
|
8756
8832
|
});
|
|
8757
8833
|
}
|
|
8758
8834
|
},
|
|
8759
|
-
[memberships, applyMembership, queryClient, apiRequest]
|
|
8835
|
+
[memberships, applyMembership, queryClient, apiRequest, currentWorkOSOrganizationId, currentSupabaseOrganizationId]
|
|
8760
8836
|
);
|
|
8761
8837
|
const retry = useCallback(async () => {
|
|
8762
8838
|
hasInitializedRef.current = false;
|
|
@@ -8889,7 +8965,10 @@ function OrganizationSwitcher({
|
|
|
8889
8965
|
)
|
|
8890
8966
|
] });
|
|
8891
8967
|
}
|
|
8892
|
-
function OrganizationSwitcherConnected(
|
|
8968
|
+
function OrganizationSwitcherConnected({
|
|
8969
|
+
isLoading: extraLoading = false,
|
|
8970
|
+
onSwitched
|
|
8971
|
+
} = {}) {
|
|
8893
8972
|
const { switchToOrganization } = useAuth();
|
|
8894
8973
|
const { currentMembership, memberships, isInitializing, isOrgRefreshing, switchOrganization } = useOrganization();
|
|
8895
8974
|
return /* @__PURE__ */ jsx(
|
|
@@ -8897,10 +8976,11 @@ function OrganizationSwitcherConnected() {
|
|
|
8897
8976
|
{
|
|
8898
8977
|
currentOrganization: currentMembership?.organization,
|
|
8899
8978
|
memberships,
|
|
8900
|
-
isLoading: isInitializing || isOrgRefreshing,
|
|
8979
|
+
isLoading: extraLoading || isInitializing || isOrgRefreshing,
|
|
8901
8980
|
onSwitch: async (workosOrgId) => {
|
|
8902
8981
|
await switchToOrganization({ organizationId: workosOrgId });
|
|
8903
8982
|
switchOrganization(workosOrgId);
|
|
8983
|
+
onSwitched?.(workosOrgId);
|
|
8904
8984
|
}
|
|
8905
8985
|
}
|
|
8906
8986
|
);
|
|
@@ -13134,42 +13214,11 @@ function useDeactivateMembership() {
|
|
|
13134
13214
|
const membershipService = new OrganizationMembershipService(apiRequest);
|
|
13135
13215
|
return await membershipService.deactivateMembership(membershipId);
|
|
13136
13216
|
},
|
|
13137
|
-
|
|
13138
|
-
await queryClient.cancelQueries({ queryKey: ["memberships"] });
|
|
13139
|
-
const previousData = queryClient.getQueryData(["memberships"]);
|
|
13140
|
-
if (variables.userId) {
|
|
13141
|
-
queryClient.setQueryData(
|
|
13142
|
-
["memberships", "user", variables.userId],
|
|
13143
|
-
(old) => {
|
|
13144
|
-
if (!old) return old;
|
|
13145
|
-
return old.map(
|
|
13146
|
-
(membership) => membership.id === variables.membershipId ? { ...membership, status: "inactive", updatedAt: (/* @__PURE__ */ new Date()).toISOString() } : membership
|
|
13147
|
-
);
|
|
13148
|
-
}
|
|
13149
|
-
);
|
|
13150
|
-
}
|
|
13151
|
-
if (variables.organizationId) {
|
|
13152
|
-
queryClient.setQueryData(
|
|
13153
|
-
["memberships", "organization", variables.organizationId],
|
|
13154
|
-
(old) => {
|
|
13155
|
-
if (!old) return old;
|
|
13156
|
-
return old.map(
|
|
13157
|
-
(membership) => membership.id === variables.membershipId ? { ...membership, status: "inactive", updatedAt: (/* @__PURE__ */ new Date()).toISOString() } : membership
|
|
13158
|
-
);
|
|
13159
|
-
}
|
|
13160
|
-
);
|
|
13161
|
-
}
|
|
13162
|
-
return { previousData };
|
|
13163
|
-
},
|
|
13164
|
-
onError: (error, _variables, context) => {
|
|
13165
|
-
if (context?.previousData) {
|
|
13166
|
-
queryClient.setQueryData(["memberships"], context.previousData);
|
|
13167
|
-
}
|
|
13217
|
+
onError: (error) => {
|
|
13168
13218
|
adapter.apiError(error);
|
|
13169
13219
|
},
|
|
13170
|
-
onSuccess
|
|
13171
|
-
|
|
13172
|
-
},
|
|
13220
|
+
// Fires on both success and failure. A prior `onSuccess` invalidated the
|
|
13221
|
+
// same key redundantly.
|
|
13173
13222
|
onSettled: () => {
|
|
13174
13223
|
queryClient.invalidateQueries({ queryKey: ["memberships"] });
|
|
13175
13224
|
}
|
|
@@ -13184,50 +13233,18 @@ function useReactivateMembership() {
|
|
|
13184
13233
|
const membershipService = new OrganizationMembershipService(apiRequest);
|
|
13185
13234
|
return await membershipService.reactivateMembership(membershipId);
|
|
13186
13235
|
},
|
|
13187
|
-
|
|
13188
|
-
await queryClient.cancelQueries({ queryKey: ["memberships"] });
|
|
13189
|
-
const previousData = queryClient.getQueryData(["memberships"]);
|
|
13190
|
-
if (variables.userId) {
|
|
13191
|
-
queryClient.setQueryData(
|
|
13192
|
-
["memberships", "user", variables.userId],
|
|
13193
|
-
(old) => {
|
|
13194
|
-
if (!old) return old;
|
|
13195
|
-
return old.map(
|
|
13196
|
-
(membership) => membership.id === variables.membershipId ? { ...membership, status: "active", updatedAt: (/* @__PURE__ */ new Date()).toISOString() } : membership
|
|
13197
|
-
);
|
|
13198
|
-
}
|
|
13199
|
-
);
|
|
13200
|
-
}
|
|
13201
|
-
if (variables.organizationId) {
|
|
13202
|
-
queryClient.setQueryData(
|
|
13203
|
-
["memberships", "organization", variables.organizationId],
|
|
13204
|
-
(old) => {
|
|
13205
|
-
if (!old) return old;
|
|
13206
|
-
return old.map(
|
|
13207
|
-
(membership) => membership.id === variables.membershipId ? { ...membership, status: "active", updatedAt: (/* @__PURE__ */ new Date()).toISOString() } : membership
|
|
13208
|
-
);
|
|
13209
|
-
}
|
|
13210
|
-
);
|
|
13211
|
-
}
|
|
13212
|
-
return { previousData };
|
|
13213
|
-
},
|
|
13214
|
-
onError: (error, _variables, context) => {
|
|
13215
|
-
if (context?.previousData) {
|
|
13216
|
-
queryClient.setQueryData(["memberships"], context.previousData);
|
|
13217
|
-
}
|
|
13236
|
+
onError: (error) => {
|
|
13218
13237
|
adapter.apiError(error);
|
|
13219
13238
|
},
|
|
13220
|
-
onSuccess: () => {
|
|
13221
|
-
queryClient.invalidateQueries({ queryKey: ["memberships"] });
|
|
13222
|
-
},
|
|
13223
13239
|
onSettled: () => {
|
|
13224
13240
|
queryClient.invalidateQueries({ queryKey: ["memberships"] });
|
|
13225
13241
|
}
|
|
13226
13242
|
});
|
|
13227
13243
|
}
|
|
13228
13244
|
function useOrgRoles(orgId) {
|
|
13229
|
-
const { apiRequest,
|
|
13230
|
-
const
|
|
13245
|
+
const { apiRequest, isReady } = useElevasisServices();
|
|
13246
|
+
const organization = useContext(OrganizationContext);
|
|
13247
|
+
const targetOrgId = orgId ?? organization?.currentSupabaseOrganizationId ?? void 0;
|
|
13231
13248
|
return useQuery({
|
|
13232
13249
|
queryKey: ["org-roles", targetOrgId],
|
|
13233
13250
|
queryFn: () => apiRequest(`/organizations/${targetOrgId}/roles`),
|
|
@@ -13236,33 +13253,39 @@ function useOrgRoles(orgId) {
|
|
|
13236
13253
|
});
|
|
13237
13254
|
}
|
|
13238
13255
|
function useUpdateOrgRole() {
|
|
13239
|
-
const { apiRequest
|
|
13256
|
+
const { apiRequest } = useElevasisServices();
|
|
13257
|
+
const organization = useContext(OrganizationContext);
|
|
13258
|
+
const orgId = organization?.currentSupabaseOrganizationId ?? null;
|
|
13240
13259
|
const queryClient = useQueryClient();
|
|
13241
13260
|
return useMutation({
|
|
13242
|
-
mutationFn: ({ roleId, input }) => apiRequest(`/organizations/${
|
|
13261
|
+
mutationFn: ({ roleId, input }) => apiRequest(`/organizations/${orgId}/roles/${roleId}`, {
|
|
13243
13262
|
method: "PATCH",
|
|
13244
13263
|
body: JSON.stringify(input)
|
|
13245
13264
|
}),
|
|
13246
13265
|
onSettled: (_data, _error, { roleId }) => {
|
|
13247
|
-
queryClient.invalidateQueries({ queryKey: ["org-roles",
|
|
13248
|
-
queryClient.invalidateQueries({ queryKey: ["org-role",
|
|
13266
|
+
queryClient.invalidateQueries({ queryKey: ["org-roles", orgId] });
|
|
13267
|
+
queryClient.invalidateQueries({ queryKey: ["org-role", orgId, roleId] });
|
|
13249
13268
|
}
|
|
13250
13269
|
});
|
|
13251
13270
|
}
|
|
13252
13271
|
function useDeleteOrgRole() {
|
|
13253
|
-
const { apiRequest
|
|
13272
|
+
const { apiRequest } = useElevasisServices();
|
|
13273
|
+
const organization = useContext(OrganizationContext);
|
|
13274
|
+
const orgId = organization?.currentSupabaseOrganizationId ?? null;
|
|
13254
13275
|
const queryClient = useQueryClient();
|
|
13255
13276
|
return useMutation({
|
|
13256
|
-
mutationFn: (roleId) => apiRequest(`/organizations/${
|
|
13277
|
+
mutationFn: (roleId) => apiRequest(`/organizations/${orgId}/roles/${roleId}`, {
|
|
13257
13278
|
method: "DELETE"
|
|
13258
13279
|
}),
|
|
13259
13280
|
onSettled: () => {
|
|
13260
|
-
queryClient.invalidateQueries({ queryKey: ["org-roles",
|
|
13281
|
+
queryClient.invalidateQueries({ queryKey: ["org-roles", orgId] });
|
|
13261
13282
|
}
|
|
13262
13283
|
});
|
|
13263
13284
|
}
|
|
13264
13285
|
function useAssignRole() {
|
|
13265
|
-
const { apiRequest
|
|
13286
|
+
const { apiRequest } = useElevasisServices();
|
|
13287
|
+
const organization = useContext(OrganizationContext);
|
|
13288
|
+
const orgId = organization?.currentSupabaseOrganizationId ?? null;
|
|
13266
13289
|
const queryClient = useQueryClient();
|
|
13267
13290
|
return useMutation({
|
|
13268
13291
|
mutationFn: ({ membershipId, roleId }) => apiRequest(`/memberships/${membershipId}/roles`, {
|
|
@@ -13270,30 +13293,34 @@ function useAssignRole() {
|
|
|
13270
13293
|
body: JSON.stringify({ roleId })
|
|
13271
13294
|
}),
|
|
13272
13295
|
onSettled: (_data, _error, { membershipId }) => {
|
|
13273
|
-
queryClient.invalidateQueries({ queryKey: ["member-roles",
|
|
13274
|
-
queryClient.invalidateQueries({ queryKey: ["organization-permissions",
|
|
13275
|
-
queryClient.invalidateQueries({ queryKey: ["org-roles",
|
|
13296
|
+
queryClient.invalidateQueries({ queryKey: ["member-roles", orgId, membershipId] });
|
|
13297
|
+
queryClient.invalidateQueries({ queryKey: ["organization-permissions", orgId] });
|
|
13298
|
+
queryClient.invalidateQueries({ queryKey: ["org-roles", orgId] });
|
|
13276
13299
|
}
|
|
13277
13300
|
});
|
|
13278
13301
|
}
|
|
13279
13302
|
function useRevokeRole() {
|
|
13280
|
-
const { apiRequest
|
|
13303
|
+
const { apiRequest } = useElevasisServices();
|
|
13304
|
+
const organization = useContext(OrganizationContext);
|
|
13305
|
+
const orgId = organization?.currentSupabaseOrganizationId ?? null;
|
|
13281
13306
|
const queryClient = useQueryClient();
|
|
13282
13307
|
return useMutation({
|
|
13283
13308
|
mutationFn: ({ membershipId, roleId }) => apiRequest(`/memberships/${membershipId}/roles/${roleId}`, {
|
|
13284
13309
|
method: "DELETE"
|
|
13285
13310
|
}),
|
|
13286
13311
|
onSettled: (_data, _error, { membershipId }) => {
|
|
13287
|
-
queryClient.invalidateQueries({ queryKey: ["member-roles",
|
|
13288
|
-
queryClient.invalidateQueries({ queryKey: ["organization-permissions",
|
|
13289
|
-
queryClient.invalidateQueries({ queryKey: ["org-roles",
|
|
13312
|
+
queryClient.invalidateQueries({ queryKey: ["member-roles", orgId, membershipId] });
|
|
13313
|
+
queryClient.invalidateQueries({ queryKey: ["organization-permissions", orgId] });
|
|
13314
|
+
queryClient.invalidateQueries({ queryKey: ["org-roles", orgId] });
|
|
13290
13315
|
}
|
|
13291
13316
|
});
|
|
13292
13317
|
}
|
|
13293
13318
|
function useEffectivePermissions(membershipId) {
|
|
13294
|
-
const { apiRequest,
|
|
13319
|
+
const { apiRequest, isReady } = useElevasisServices();
|
|
13320
|
+
const organization = useContext(OrganizationContext);
|
|
13321
|
+
const orgId = organization?.currentSupabaseOrganizationId ?? null;
|
|
13295
13322
|
return useQuery({
|
|
13296
|
-
queryKey: ["member-roles",
|
|
13323
|
+
queryKey: ["member-roles", orgId, membershipId],
|
|
13297
13324
|
queryFn: () => apiRequest(`/memberships/${membershipId}/effective-permissions`),
|
|
13298
13325
|
enabled: isReady && !!membershipId,
|
|
13299
13326
|
staleTime: STALE_TIME_DEFAULT
|
|
@@ -13586,12 +13613,30 @@ function useExecutionLogsFilters(_timeRange) {
|
|
|
13586
13613
|
return { filters, updateFilter, resetFilters };
|
|
13587
13614
|
}
|
|
13588
13615
|
function useOrganizationMembers(organizationId, params) {
|
|
13589
|
-
const { apiRequest } = useElevasisServices();
|
|
13616
|
+
const { apiRequest, isReady } = useElevasisServices();
|
|
13590
13617
|
return useQuery({
|
|
13591
13618
|
queryKey: ["organization-members", organizationId, params],
|
|
13592
13619
|
queryFn: async () => {
|
|
13593
13620
|
const searchParams = new URLSearchParams();
|
|
13594
13621
|
searchParams.append("organizationId", organizationId);
|
|
13622
|
+
if (params?.userId) {
|
|
13623
|
+
searchParams.append("userId", params.userId);
|
|
13624
|
+
}
|
|
13625
|
+
for (const status of params?.statuses ?? []) {
|
|
13626
|
+
searchParams.append("statuses", status);
|
|
13627
|
+
}
|
|
13628
|
+
if (params?.order) {
|
|
13629
|
+
searchParams.append("order", params.order);
|
|
13630
|
+
}
|
|
13631
|
+
if (params?.limit !== void 0) {
|
|
13632
|
+
searchParams.append("limit", String(params.limit));
|
|
13633
|
+
}
|
|
13634
|
+
if (params?.before) {
|
|
13635
|
+
searchParams.append("before", params.before);
|
|
13636
|
+
}
|
|
13637
|
+
if (params?.after) {
|
|
13638
|
+
searchParams.append("after", params.after);
|
|
13639
|
+
}
|
|
13595
13640
|
const response = await apiRequest(`/memberships?${searchParams.toString()}`);
|
|
13596
13641
|
return response.data.map((membership) => ({
|
|
13597
13642
|
...membership,
|
|
@@ -13599,7 +13644,7 @@ function useOrganizationMembers(organizationId, params) {
|
|
|
13599
13644
|
updatedAt: membership.updatedAt
|
|
13600
13645
|
}));
|
|
13601
13646
|
},
|
|
13602
|
-
enabled: !!organizationId,
|
|
13647
|
+
enabled: isReady && !!organizationId,
|
|
13603
13648
|
staleTime: STALE_TIME_MONITORING,
|
|
13604
13649
|
gcTime: GC_TIME_SHORT,
|
|
13605
13650
|
refetchOnWindowFocus: false
|
|
@@ -17237,209 +17282,6 @@ function ToolsListDisplay({ tools, compact = false, maxVisible = 0 }) {
|
|
|
17237
17282
|
] })
|
|
17238
17283
|
] });
|
|
17239
17284
|
}
|
|
17240
|
-
var NODE_WIDTH = 200;
|
|
17241
|
-
var NODE_HEIGHT = 100;
|
|
17242
|
-
var RANK_SEP = 80;
|
|
17243
|
-
var NODE_SEP = 30;
|
|
17244
|
-
function useNewKnowledgeMapLayout(knowledgeMap, agentName) {
|
|
17245
|
-
return useMemo(() => {
|
|
17246
|
-
if (!knowledgeMap || knowledgeMap.nodes.length === 0) {
|
|
17247
|
-
return { nodes: [], edges: [] };
|
|
17248
|
-
}
|
|
17249
|
-
const agentNodeId = "__agent__";
|
|
17250
|
-
const edges = knowledgeMap.nodes.map((node) => ({
|
|
17251
|
-
id: `edge-${agentNodeId}-${node.id}`,
|
|
17252
|
-
source: agentNodeId,
|
|
17253
|
-
target: node.id,
|
|
17254
|
-
type: "knowledgeMap",
|
|
17255
|
-
data: {}
|
|
17256
|
-
}));
|
|
17257
|
-
const dagreGraph = new dagre.graphlib.Graph();
|
|
17258
|
-
dagreGraph.setDefaultEdgeLabel(() => ({}));
|
|
17259
|
-
dagreGraph.setGraph({
|
|
17260
|
-
rankdir: "TB",
|
|
17261
|
-
ranksep: RANK_SEP,
|
|
17262
|
-
nodesep: NODE_SEP,
|
|
17263
|
-
marginx: 40,
|
|
17264
|
-
marginy: 40
|
|
17265
|
-
});
|
|
17266
|
-
dagreGraph.setNode(agentNodeId, { width: NODE_WIDTH, height: NODE_HEIGHT });
|
|
17267
|
-
knowledgeMap.nodes.forEach((node) => {
|
|
17268
|
-
dagreGraph.setNode(node.id, { width: NODE_WIDTH, height: NODE_HEIGHT });
|
|
17269
|
-
});
|
|
17270
|
-
edges.forEach((edge) => {
|
|
17271
|
-
dagreGraph.setEdge(edge.source, edge.target);
|
|
17272
|
-
});
|
|
17273
|
-
dagre.layout(dagreGraph);
|
|
17274
|
-
const agentDagreNode = dagreGraph.node(agentNodeId);
|
|
17275
|
-
const agentNode = {
|
|
17276
|
-
id: agentNodeId,
|
|
17277
|
-
type: "knowledgeMap",
|
|
17278
|
-
position: {
|
|
17279
|
-
x: agentDagreNode.x - NODE_WIDTH / 2,
|
|
17280
|
-
y: agentDagreNode.y - NODE_HEIGHT / 2
|
|
17281
|
-
},
|
|
17282
|
-
data: {
|
|
17283
|
-
id: agentNodeId,
|
|
17284
|
-
name: agentName,
|
|
17285
|
-
description: "Agent with lazy-loading knowledge",
|
|
17286
|
-
loaded: true,
|
|
17287
|
-
hasPrompt: false,
|
|
17288
|
-
isAgentNode: true
|
|
17289
|
-
}
|
|
17290
|
-
};
|
|
17291
|
-
const knowledgeNodes = knowledgeMap.nodes.map((node) => {
|
|
17292
|
-
const dagreNode = dagreGraph.node(node.id);
|
|
17293
|
-
return {
|
|
17294
|
-
id: node.id,
|
|
17295
|
-
type: "knowledgeMap",
|
|
17296
|
-
position: {
|
|
17297
|
-
x: dagreNode.x - NODE_WIDTH / 2,
|
|
17298
|
-
y: dagreNode.y - NODE_HEIGHT / 2
|
|
17299
|
-
},
|
|
17300
|
-
data: {
|
|
17301
|
-
id: node.id,
|
|
17302
|
-
name: node.id,
|
|
17303
|
-
description: node.description,
|
|
17304
|
-
loaded: node.loaded,
|
|
17305
|
-
hasPrompt: node.hasPrompt,
|
|
17306
|
-
isAgentNode: false
|
|
17307
|
-
}
|
|
17308
|
-
};
|
|
17309
|
-
});
|
|
17310
|
-
return { nodes: [agentNode, ...knowledgeNodes], edges };
|
|
17311
|
-
}, [knowledgeMap, agentName]);
|
|
17312
|
-
}
|
|
17313
|
-
var NewKnowledgeMapNode = memo(function NewKnowledgeMapNode2({ data, selected }) {
|
|
17314
|
-
const nodeColor = data.isAgentNode ? "violet" : data.loaded ? "teal" : "blue";
|
|
17315
|
-
return /* @__PURE__ */ jsx(BaseNode, { color: nodeColor, selected, width: 200, handleDirection: "vertical", children: /* @__PURE__ */ jsxs(Stack, { gap: 6, children: [
|
|
17316
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
|
|
17317
|
-
data.isAgentNode ? /* @__PURE__ */ jsx(IconBrain, { size: 16, style: { flexShrink: 0 } }) : data.loaded ? /* @__PURE__ */ jsx(IconBrain, { size: 16, style: { flexShrink: 0 } }) : /* @__PURE__ */ jsx(IconBrain, { size: 16, style: { flexShrink: 0, opacity: 0.4 } }),
|
|
17318
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, truncate: true, style: { flex: 1, fontFamily: "var(--mantine-font-family-headings)" }, children: data.name })
|
|
17319
|
-
] }),
|
|
17320
|
-
data.description && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", lineClamp: 2, children: data.description }),
|
|
17321
|
-
/* @__PURE__ */ jsx(Group, { gap: 4, children: data.isAgentNode ? /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", children: "Root" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
17322
|
-
/* @__PURE__ */ jsx(
|
|
17323
|
-
Badge,
|
|
17324
|
-
{
|
|
17325
|
-
size: "xs",
|
|
17326
|
-
variant: "light",
|
|
17327
|
-
color: data.loaded ? "teal" : "gray",
|
|
17328
|
-
leftSection: /* @__PURE__ */ jsx(IconBrain, { size: 10 }),
|
|
17329
|
-
children: data.loaded ? "Loaded" : "Available"
|
|
17330
|
-
}
|
|
17331
|
-
),
|
|
17332
|
-
data.hasPrompt && /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: "orange", leftSection: /* @__PURE__ */ jsx(IconFileText, { size: 10 }), children: "Prompt" })
|
|
17333
|
-
] }) })
|
|
17334
|
-
] }) });
|
|
17335
|
-
});
|
|
17336
|
-
var NewKnowledgeMapEdge = memo(function NewKnowledgeMapEdge2({
|
|
17337
|
-
id,
|
|
17338
|
-
sourceX,
|
|
17339
|
-
sourceY,
|
|
17340
|
-
targetX,
|
|
17341
|
-
targetY,
|
|
17342
|
-
sourcePosition,
|
|
17343
|
-
targetPosition,
|
|
17344
|
-
selected,
|
|
17345
|
-
data
|
|
17346
|
-
}) {
|
|
17347
|
-
const colors = useGraphTheme();
|
|
17348
|
-
return /* @__PURE__ */ jsx(
|
|
17349
|
-
BaseEdge,
|
|
17350
|
-
{
|
|
17351
|
-
id,
|
|
17352
|
-
sourceX,
|
|
17353
|
-
sourceY,
|
|
17354
|
-
targetX,
|
|
17355
|
-
targetY,
|
|
17356
|
-
sourcePosition,
|
|
17357
|
-
targetPosition,
|
|
17358
|
-
color: colors.primary,
|
|
17359
|
-
glowColor: colors.primaryGlow,
|
|
17360
|
-
animated: false,
|
|
17361
|
-
selected,
|
|
17362
|
-
dimmed: data?.dimmed
|
|
17363
|
-
}
|
|
17364
|
-
);
|
|
17365
|
-
});
|
|
17366
|
-
var nodeTypes3 = {
|
|
17367
|
-
knowledgeMap: NewKnowledgeMapNode
|
|
17368
|
-
};
|
|
17369
|
-
var edgeTypes3 = {
|
|
17370
|
-
knowledgeMap: NewKnowledgeMapEdge
|
|
17371
|
-
};
|
|
17372
|
-
function NewKnowledgeMapGraphInner({ knowledgeMap, agentName, compact, fitViewTrigger }) {
|
|
17373
|
-
const { nodes: layoutNodes, edges: layoutEdges } = useNewKnowledgeMapLayout(knowledgeMap, agentName);
|
|
17374
|
-
const { nodes, edges, handleNodeMouseEnter, handleNodeMouseLeave } = useGraphHighlighting(layoutNodes, layoutEdges);
|
|
17375
|
-
if (!knowledgeMap || knowledgeMap.nodes.length === 0) {
|
|
17376
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
17377
|
-
!compact && /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, mb: "xs", style: { fontFamily: "var(--mantine-font-family-headings)" }, children: "Knowledge Map" }),
|
|
17378
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", fs: "italic", children: "No knowledge nodes configured" })
|
|
17379
|
-
] });
|
|
17380
|
-
}
|
|
17381
|
-
const containerHeight = calculateGraphHeight({
|
|
17382
|
-
itemCount: knowledgeMap.nodeCount,
|
|
17383
|
-
minHeight: 250,
|
|
17384
|
-
maxHeight: 450,
|
|
17385
|
-
heightPerItem: 60
|
|
17386
|
-
});
|
|
17387
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
17388
|
-
!compact && /* @__PURE__ */ jsxs(Group, { gap: "xs", mb: "xs", children: [
|
|
17389
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, style: { fontFamily: "var(--mantine-font-family-headings)" }, children: "Knowledge Map" }),
|
|
17390
|
-
/* @__PURE__ */ jsxs(Badge, { variant: "light", size: "xs", children: [
|
|
17391
|
-
knowledgeMap.nodeCount,
|
|
17392
|
-
" ",
|
|
17393
|
-
knowledgeMap.nodeCount === 1 ? "node" : "nodes"
|
|
17394
|
-
] })
|
|
17395
|
-
] }),
|
|
17396
|
-
/* @__PURE__ */ jsx(
|
|
17397
|
-
Box,
|
|
17398
|
-
{
|
|
17399
|
-
className: `elevasis-graph-root ${Graph_module_css_default.graphContainer}`,
|
|
17400
|
-
style: {
|
|
17401
|
-
width: "100%",
|
|
17402
|
-
height: containerHeight,
|
|
17403
|
-
border: "1px solid var(--color-border)",
|
|
17404
|
-
borderRadius: "var(--mantine-radius-md)",
|
|
17405
|
-
overflow: "hidden"
|
|
17406
|
-
},
|
|
17407
|
-
children: /* @__PURE__ */ jsxs(
|
|
17408
|
-
ReactFlow,
|
|
17409
|
-
{
|
|
17410
|
-
nodes,
|
|
17411
|
-
edges,
|
|
17412
|
-
nodeTypes: nodeTypes3,
|
|
17413
|
-
edgeTypes: edgeTypes3,
|
|
17414
|
-
onNodeMouseEnter: handleNodeMouseEnter,
|
|
17415
|
-
onNodeMouseLeave: handleNodeMouseLeave,
|
|
17416
|
-
fitView: true,
|
|
17417
|
-
fitViewOptions: { padding: 0.15 },
|
|
17418
|
-
proOptions: { hideAttribution: true },
|
|
17419
|
-
minZoom: GRAPH_CONSTANTS.MIN_ZOOM,
|
|
17420
|
-
maxZoom: GRAPH_CONSTANTS.MAX_ZOOM,
|
|
17421
|
-
nodesDraggable: false,
|
|
17422
|
-
nodesConnectable: false,
|
|
17423
|
-
elementsSelectable: true,
|
|
17424
|
-
selectNodesOnDrag: false,
|
|
17425
|
-
panOnDrag: true,
|
|
17426
|
-
zoomOnScroll: true,
|
|
17427
|
-
zoomOnPinch: true,
|
|
17428
|
-
panOnScroll: false,
|
|
17429
|
-
children: [
|
|
17430
|
-
/* @__PURE__ */ jsx(GraphBackground, {}),
|
|
17431
|
-
/* @__PURE__ */ jsx(GraphFitViewButton, { padding: 0.15, variant: "mantine", duration: 300 }),
|
|
17432
|
-
/* @__PURE__ */ jsx(GraphFitViewHandler, { trigger: fitViewTrigger })
|
|
17433
|
-
]
|
|
17434
|
-
}
|
|
17435
|
-
)
|
|
17436
|
-
}
|
|
17437
|
-
)
|
|
17438
|
-
] });
|
|
17439
|
-
}
|
|
17440
|
-
function NewKnowledgeMapGraph(props) {
|
|
17441
|
-
return /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(NewKnowledgeMapGraphInner, { ...props }) });
|
|
17442
|
-
}
|
|
17443
17285
|
function DefinitionSectionHeader({ expanded, onToggle, icon, title, count }) {
|
|
17444
17286
|
return /* @__PURE__ */ jsxs(Group, { gap: 4, onClick: onToggle, style: { cursor: "pointer", userSelect: "none" }, wrap: "nowrap", children: [
|
|
17445
17287
|
/* @__PURE__ */ jsx(
|
|
@@ -17466,8 +17308,6 @@ function DefinitionSectionHeader({ expanded, onToggle, icon, title, count }) {
|
|
|
17466
17308
|
function AgentDefinitionDisplay({ agent, defaultExpanded = false }) {
|
|
17467
17309
|
const [systemPromptExpanded, setSystemPromptExpanded] = useState(defaultExpanded);
|
|
17468
17310
|
const [configExpanded, setConfigExpanded] = useState(defaultExpanded);
|
|
17469
|
-
const [knowledgeMapExpanded, setKnowledgeMapExpanded] = useState(defaultExpanded);
|
|
17470
|
-
const [knowledgeMapFitTrigger, setKnowledgeMapFitTrigger] = useState(0);
|
|
17471
17311
|
const [toolsExpanded, setToolsExpanded] = useState(defaultExpanded);
|
|
17472
17312
|
const [memoryPrefsExpanded, setMemoryPrefsExpanded] = useState(defaultExpanded);
|
|
17473
17313
|
const hasConstraints = agent.config.constraints && Object.keys(agent.config.constraints).length > 0;
|
|
@@ -17565,36 +17405,6 @@ function AgentDefinitionDisplay({ agent, defaultExpanded = false }) {
|
|
|
17565
17405
|
),
|
|
17566
17406
|
/* @__PURE__ */ jsx(Collapse, { in: systemPromptExpanded, children: /* @__PURE__ */ jsx(Paper, { p: "sm", mt: "xs", children: /* @__PURE__ */ jsx(StyledMarkdown, { children: agent.config.systemPrompt }) }) })
|
|
17567
17407
|
] }),
|
|
17568
|
-
agent.knowledgeMap && agent.knowledgeMap.nodeCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
17569
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
17570
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
17571
|
-
/* @__PURE__ */ jsx(
|
|
17572
|
-
DefinitionSectionHeader,
|
|
17573
|
-
{
|
|
17574
|
-
expanded: knowledgeMapExpanded,
|
|
17575
|
-
onToggle: () => {
|
|
17576
|
-
const willExpand = !knowledgeMapExpanded;
|
|
17577
|
-
setKnowledgeMapExpanded(willExpand);
|
|
17578
|
-
if (willExpand) {
|
|
17579
|
-
setKnowledgeMapFitTrigger((prev) => prev + 1);
|
|
17580
|
-
}
|
|
17581
|
-
},
|
|
17582
|
-
icon: /* @__PURE__ */ jsx(IconNetwork, { size: 16, color: "var(--color-text-subtle)" }),
|
|
17583
|
-
title: "Knowledge Map",
|
|
17584
|
-
count: `${agent.knowledgeMap.nodeCount} ${agent.knowledgeMap.nodeCount === 1 ? "node" : "nodes"}`
|
|
17585
|
-
}
|
|
17586
|
-
),
|
|
17587
|
-
/* @__PURE__ */ jsx(Collapse, { in: knowledgeMapExpanded, children: /* @__PURE__ */ jsx("div", { style: { marginTop: "var(--mantine-spacing-xs)" }, children: /* @__PURE__ */ jsx(
|
|
17588
|
-
NewKnowledgeMapGraph,
|
|
17589
|
-
{
|
|
17590
|
-
knowledgeMap: agent.knowledgeMap,
|
|
17591
|
-
agentName: agent.config.name,
|
|
17592
|
-
compact: true,
|
|
17593
|
-
fitViewTrigger: knowledgeMapFitTrigger
|
|
17594
|
-
}
|
|
17595
|
-
) }) })
|
|
17596
|
-
] })
|
|
17597
|
-
] }),
|
|
17598
17408
|
/* @__PURE__ */ jsx(Divider, {}),
|
|
17599
17409
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
17600
17410
|
/* @__PURE__ */ jsx(
|
|
@@ -18998,6 +18808,13 @@ function MembershipStatusBadge({ status, size = "sm", variant = "light" }) {
|
|
|
18998
18808
|
};
|
|
18999
18809
|
return /* @__PURE__ */ jsx(Badge, { color: MEMBERSHIP_STATUS_COLORS[status], size, variant, children: getStatusLabel(status) });
|
|
19000
18810
|
}
|
|
18811
|
+
function ProvisioningStateBadge({ state, size = "sm", variant = "light" }) {
|
|
18812
|
+
if (!state || state === "linked") {
|
|
18813
|
+
return null;
|
|
18814
|
+
}
|
|
18815
|
+
const display = PROVISIONING_STATE_DISPLAY[state];
|
|
18816
|
+
return /* @__PURE__ */ jsx(Tooltip, { label: display.description, multiline: true, w: 280, children: /* @__PURE__ */ jsx(Badge, { color: display.color, size, variant, children: display.label }) });
|
|
18817
|
+
}
|
|
19001
18818
|
function OrganizationMembershipsList({
|
|
19002
18819
|
memberships,
|
|
19003
18820
|
loading,
|
|
@@ -23356,7 +23173,7 @@ Advanced personalization doubles reply rates: ~18% vs ~9% for generic.
|
|
|
23356
23173
|
icon: "playbook",
|
|
23357
23174
|
title: "Lead-Gen Playbook",
|
|
23358
23175
|
summary: "Empirical benchmarks, threshold guidance, provider economics, and codified learnings from 3 completed batches of the lead-gen pipeline.",
|
|
23359
|
-
body: "## Performance Benchmarks\n\nPer-stage success rates across the 3 completed Orange County batches (vet-1, auto-1, home-1).\n\n### Stage 1: Scrape (Raw to Filtered)\n\n| Metric | vet-1 | auto-1 | home-1 | Benchmark |\n| --- | --- | --- | --- | --- |\n| Raw results | 480 | 800 | 1000 | -- |\n| Companies created | 393 | 566 | 701 | -- |\n| Active in DB | 322 | 428 | 640 | -- |\n\n### Stage 3: Company Qualification Rate\n\n| Metric | vet-1 | auto-1 | home-1 | Benchmark |\n| --- | --- | --- | --- | --- |\n| Qualified | 213 (76%) | 284 (79%) | 326 (60%) | 60-80% |\n| Disqualified | 66 (24%) | 74 (21%) | 222 (40%) | 20-40% |\n\n### Stage 5: Email Verification\n\nVALID rate: ~33-41% of discovered emails across batches. Target bounce rate \\<2%.\n\n## Model Selection\n\
|
|
23176
|
+
body: "## Performance Benchmarks\n\nPer-stage success rates across the 3 completed Orange County batches (vet-1, auto-1, home-1).\n\n### Stage 1: Scrape (Raw to Filtered)\n\n| Metric | vet-1 | auto-1 | home-1 | Benchmark |\n| --- | --- | --- | --- | --- |\n| Raw results | 480 | 800 | 1000 | -- |\n| Companies created | 393 | 566 | 701 | -- |\n| Active in DB | 322 | 428 | 640 | -- |\n\n### Stage 3: Company Qualification Rate\n\n| Metric | vet-1 | auto-1 | home-1 | Benchmark |\n| --- | --- | --- | --- | --- |\n| Qualified | 213 (76%) | 284 (79%) | 326 (60%) | 60-80% |\n| Disqualified | 66 (24%) | 74 (21%) | 222 (40%) | 20-40% |\n\n### Stage 5: Email Verification\n\nVALID rate: ~33-41% of discovered emails across batches. Target bounce rate \\<2%.\n\n## Model Selection\n\nAll lead-gen LLM steps run on claude-sonnet-5 (Anthropic) \u2014 qualification, extraction, and personalization alike. There is no separate cheap tier for high-volume steps.\n\n## Provider Economics\n\nTomba domain search provides the best cost-per-verified-contact for local SMBs. Dual-verify (Tomba + Mails.so) catches most false positives.\n\n## Pipeline Stages\n\n1. Scrape (Google Maps via Apify)\n2. LLM Extract (website crawl \xE2\u2020\u2019 structured data)\n3. Company Qualification (LLM ICP scoring)\n4. Email Discovery (Tomba domain search)\n5. Email Verification (Mails.so)\n6. Opening Line Generation (ist-personalization-workflow)\n7. Campaign Upload (ist-upload-contacts-workflow)",
|
|
23360
23177
|
links: [{ nodeId: "system:sales.lead-gen" }],
|
|
23361
23178
|
ownerIds: [],
|
|
23362
23179
|
updatedAt: "2026-05-02"
|
|
@@ -23509,8 +23326,8 @@ Advanced personalization doubles reply rates: ~18% vs ~9% for generic.
|
|
|
23509
23326
|
kind: "playbook",
|
|
23510
23327
|
icon: "playbook",
|
|
23511
23328
|
title: "Social Monitoring",
|
|
23512
|
-
summary: "Automated Reddit monitoring pipeline \xE2\u20AC\u201D 4-step workflow (search, LLM score, LLM draft, store) with tiered subreddit scraping via Apify,
|
|
23513
|
-
body: "## Overview\n\nSocial monitoring surfaces Reddit posts where business owners discuss operational challenges, manual processes, and automation needs.\n\n```\nCron Trigger (3x/day: 16:00, 22:00, 04:00 UTC)\n \xE2\u2020\u2019 mnt-reddit-monitor-workflow (4-step pipeline)\n \xE2\u2020\u2019 Step 1: Search \xE2\u20AC\u201D 4 sequential Apify actors (one per tier)\n \xE2\u2020\u2019 Step 2: Score \xE2\u20AC\u201D
|
|
23329
|
+
summary: "Automated Reddit monitoring pipeline \xE2\u20AC\u201D 4-step workflow (search, LLM score, LLM draft, store) with tiered subreddit scraping via Apify, claude-sonnet-5 scoring and response drafting, and lead-gen optimized responses via the AlexElevasis account.",
|
|
23330
|
+
body: "## Overview\n\nSocial monitoring surfaces Reddit posts where business owners discuss operational challenges, manual processes, and automation needs.\n\n```\nCron Trigger (3x/day: 16:00, 22:00, 04:00 UTC)\n \xE2\u2020\u2019 mnt-reddit-monitor-workflow (4-step pipeline)\n \xE2\u2020\u2019 Step 1: Search \xE2\u20AC\u201D 4 sequential Apify actors (one per tier)\n \xE2\u2020\u2019 Step 2: Score \xE2\u20AC\u201D claude-sonnet-5 (concurrency 5)\n \xE2\u2020\u2019 Step 3: Draft \xE2\u20AC\u201D claude-sonnet-5 (high-score only)\n \xE2\u2020\u2019 Step 4: Report \xE2\u20AC\u201D Store to acq_social_posts, log breakdown\n \xE2\u2020\u2019 Command Center: /acquisition/monitoring\n```\n\n**Status:** Paused until further notice (2026-03-31). Pipeline technically validated but ROI is low without deep vertical expertise.\n\n## Velocity Batches\n\nSubreddits grouped by posting velocity, each with its own `maxPostsPerSource`.\n\n| Batch | Subs | Posts/Source | Example Subreddits |\n| --- | --- | --- | --- |\n| Medium Velocity | 2 | 5 | Accounting, Plumbing |\n| Buyer Low-Volume | 10 | 3 | CRM, EntrepreneurRideAlong, sweatystartup |\n| Trade Niche | 10 | 2 | electricians, Dentists, InsuranceAgent |\n| Decision Niche | 3 | 2 | logistics, FreightBrokers, healthIT |\n\n## Scoring\n\nPosts scored 0-100 by claude-sonnet-5 for business automation opportunity relevance. Posts scoring \\>= 60 get response drafts via claude-sonnet-5.\n\n## AlexElevasis Account\n\nAll responses posted via the AlexElevasis Reddit account. See Reddit Account strategy doc for warmup playbook and karma thresholds.",
|
|
23514
23331
|
ownerIds: [],
|
|
23515
23332
|
updatedAt: "2026-05-02"
|
|
23516
23333
|
},
|
|
@@ -23644,7 +23461,7 @@ Each stage desensitizes one fear at a time. Never skip ahead. The goal is consis
|
|
|
23644
23461
|
icon: "reference",
|
|
23645
23462
|
title: "Platform Systems Overview",
|
|
23646
23463
|
summary: "Authoritative overview of the Elevasis AI Orchestration Platform systems -- what's built, what each system does, and how the pieces fit together",
|
|
23647
|
-
body: "## Overview\n\nElevasis is a production AI orchestration platform that coordinates workflows, autonomous agents, and human approvals into a unified operating layer for SMBs. Everything described below is implemented and running in production.\n\n**Core Architecture:**\n\n| Layer | What It Does | Key Components |\n| --- | --- | --- |\n| **Execution** | Runs workflows and agents with schema validation | Workflow Engine, Agent Framework, Execution Runner |\n| **Control** | Human oversight, approvals, and decision capture | Command Queue (HITL), Dynamic Forms, Action System |\n| **Intelligence** | Autonomous reasoning, tool use, and memory management | ReAct Agents, Knowledge Map, Session Memory |\n| **Observability** | Real-time visibility into cost, performance, and health | Cost Tracking, Metrics, Activity Log, SSE Streaming |\n| **Platform** | Multi-tenancy, security, scheduling, integrations | Registry, RLS, Scheduler, Credential Vault, SDK |\n\n## Execution Engine\n\n### AI Workflows\n\nGraph-based workflow execution with schema-validated steps and conditional routing. Steps define explicit routing: linear, conditional (rule-based branching), or terminal. Context flows through the entire workflow.\n\n### Autonomous Agents\n\nProduction-grade ReAct-style agents with tool use, memory management, and security hardening.\n\n**LLM Provider Support:**
|
|
23464
|
+
body: "## Overview\n\nElevasis is a production AI orchestration platform that coordinates workflows, autonomous agents, and human approvals into a unified operating layer for SMBs. Everything described below is implemented and running in production.\n\n**Core Architecture:**\n\n| Layer | What It Does | Key Components |\n| --- | --- | --- |\n| **Execution** | Runs workflows and agents with schema validation | Workflow Engine, Agent Framework, Execution Runner |\n| **Control** | Human oversight, approvals, and decision capture | Command Queue (HITL), Dynamic Forms, Action System |\n| **Intelligence** | Autonomous reasoning, tool use, and memory management | ReAct Agents, Knowledge Map, Session Memory |\n| **Observability** | Real-time visibility into cost, performance, and health | Cost Tracking, Metrics, Activity Log, SSE Streaming |\n| **Platform** | Multi-tenancy, security, scheduling, integrations | Registry, RLS, Scheduler, Credential Vault, SDK |\n\n## Execution Engine\n\n### AI Workflows\n\nGraph-based workflow execution with schema-validated steps and conditional routing. Steps define explicit routing: linear, conditional (rule-based branching), or terminal. Context flows through the entire workflow.\n\n### Autonomous Agents\n\nProduction-grade ReAct-style agents with tool use, memory management, and security hardening.\n\n**LLM Provider Support:** Anthropic (claude-sonnet-5), OpenAI (GPT-5), OpenRouter (GLM-5)\n\n## Human-in-the-Loop (HITL)\n\nThe Command Queue surfaces pending approvals as structured tasks. Admin reviews, approves or edits, and the workflow continues. Every critical decision \xE2\u20AC\u201D sending emails to prospects, updating customer records, publishing content \xE2\u20AC\u201D requires human approval.\n\n## Integrations (12 active)\n\nAttio CRM, Cal.com, Instantly (cold email), Resend, Apify, Google Maps, Tomba, Mails.so, Supabase, Stripe, OpenAI, Anthropic Claude.\n\n## SDK\n\nTypeScript-based resource development with local testing, validation, and deployment pipeline. External consumers define workflows and agents in their own repos and deploy via `elevasis-sdk deploy`.",
|
|
23648
23465
|
links: [{ nodeId: "system:platform.projects" }],
|
|
23649
23466
|
ownerIds: [],
|
|
23650
23467
|
updatedAt: "2026-05-02"
|
|
@@ -27036,23 +26853,23 @@ var platformResourceDescriptors = defineResources(
|
|
|
27036
26853
|
]
|
|
27037
26854
|
},
|
|
27038
26855
|
{
|
|
27039
|
-
id: "
|
|
26856
|
+
id: "local-test-agent",
|
|
27040
26857
|
order: 10010,
|
|
27041
26858
|
kind: "agent",
|
|
27042
|
-
systemPath: "
|
|
27043
|
-
title: "
|
|
27044
|
-
description: "
|
|
27045
|
-
ownerRoleId: getPlatformOwnerRoleId("
|
|
27046
|
-
actsAsRoleId: getPlatformOwnerRoleId("
|
|
26859
|
+
systemPath: "platform",
|
|
26860
|
+
title: "Local Test Agent",
|
|
26861
|
+
description: "Generic session-capable agent used to exercise the agent loop, session memory, and prompt assembly against a live model before platform changes reach a tenant.",
|
|
26862
|
+
ownerRoleId: getPlatformOwnerRoleId("platform"),
|
|
26863
|
+
actsAsRoleId: getPlatformOwnerRoleId("platform"),
|
|
27047
26864
|
status: "active",
|
|
27048
26865
|
codeRefs: [
|
|
27049
26866
|
{
|
|
27050
|
-
path: "packages/elevasis-operations/src/
|
|
26867
|
+
path: "packages/elevasis-operations/src/diagnostics/local-test-agent.ts",
|
|
27051
26868
|
role: "entrypoint",
|
|
27052
|
-
symbol: "
|
|
26869
|
+
symbol: "localTestAgent"
|
|
27053
26870
|
},
|
|
27054
26871
|
{
|
|
27055
|
-
path: "packages/elevasis-operations/src/
|
|
26872
|
+
path: "packages/elevasis-operations/src/diagnostics/index.ts",
|
|
27056
26873
|
role: "config",
|
|
27057
26874
|
symbol: "agents"
|
|
27058
26875
|
},
|
|
@@ -27068,6 +26885,79 @@ var platformResourceDescriptors = defineResources(
|
|
|
27068
26885
|
{ kind: "api-endpoint", method: "POST", path: "/api/external/sessions" },
|
|
27069
26886
|
{ kind: "api-endpoint", method: "POST", path: "/api/external/sessions/:sessionId/turns" }
|
|
27070
26887
|
]
|
|
26888
|
+
},
|
|
26889
|
+
{
|
|
26890
|
+
id: "framework-probe-agent",
|
|
26891
|
+
order: 10020,
|
|
26892
|
+
kind: "agent",
|
|
26893
|
+
systemPath: "platform",
|
|
26894
|
+
title: "Framework Probe Agent",
|
|
26895
|
+
description: "Tool-bearing session agent used to measure agent-loop behavior \u2014 context carry across iterations, tool result handling, and schema compilation. Strict-clean control for the framework-probe-loose comparison.",
|
|
26896
|
+
ownerRoleId: getPlatformOwnerRoleId("platform"),
|
|
26897
|
+
actsAsRoleId: getPlatformOwnerRoleId("platform"),
|
|
26898
|
+
status: "active",
|
|
26899
|
+
codeRefs: [
|
|
26900
|
+
{
|
|
26901
|
+
path: "packages/elevasis-operations/src/diagnostics/framework-probe-agent.ts",
|
|
26902
|
+
role: "entrypoint",
|
|
26903
|
+
symbol: "frameworkProbeAgent"
|
|
26904
|
+
},
|
|
26905
|
+
{
|
|
26906
|
+
path: "packages/elevasis-operations/src/diagnostics/index.ts",
|
|
26907
|
+
role: "config",
|
|
26908
|
+
symbol: "agents"
|
|
26909
|
+
},
|
|
26910
|
+
{
|
|
26911
|
+
path: "packages/elevasis-operations/src/index.ts",
|
|
26912
|
+
role: "config",
|
|
26913
|
+
symbol: "deploymentSpec"
|
|
26914
|
+
}
|
|
26915
|
+
],
|
|
26916
|
+
agentKind: "utility",
|
|
26917
|
+
sessionCapable: true,
|
|
26918
|
+
invocations: [
|
|
26919
|
+
{ kind: "api-endpoint", method: "POST", path: "/api/external/sessions" },
|
|
26920
|
+
{ kind: "api-endpoint", method: "POST", path: "/api/external/sessions/:sessionId/turns" }
|
|
26921
|
+
]
|
|
26922
|
+
},
|
|
26923
|
+
// `framework-probe-loose-agent` (order 10021) was retired here. It carried one tool with a
|
|
26924
|
+
// `z.record(...)` field so the cost of a single un-compilable field could be measured rather
|
|
26925
|
+
// than argued. Wave O's `validateAgentGrammar` now rejects exactly that shape at deploy, by
|
|
26926
|
+
// tool and field name, so the agent cannot deploy -- which is the gate working, not a
|
|
26927
|
+
// regression. Order 10021 is left unused so the surrounding probe agents keep their numbers.
|
|
26928
|
+
{
|
|
26929
|
+
id: "framework-probe-truncate-agent",
|
|
26930
|
+
order: 10022,
|
|
26931
|
+
kind: "agent",
|
|
26932
|
+
systemPath: "platform",
|
|
26933
|
+
title: "Framework Probe Agent (truncation)",
|
|
26934
|
+
description: "Copy of framework-probe-agent on Haiku 4.5 with a deliberately small output cap, so the truncated-response path can be exercised. Also the only probe whose request carries an explicit temperature.",
|
|
26935
|
+
ownerRoleId: getPlatformOwnerRoleId("platform"),
|
|
26936
|
+
actsAsRoleId: getPlatformOwnerRoleId("platform"),
|
|
26937
|
+
status: "active",
|
|
26938
|
+
codeRefs: [
|
|
26939
|
+
{
|
|
26940
|
+
path: "packages/elevasis-operations/src/diagnostics/framework-probe-agent.ts",
|
|
26941
|
+
role: "entrypoint",
|
|
26942
|
+
symbol: "frameworkProbeTruncateAgent"
|
|
26943
|
+
},
|
|
26944
|
+
{
|
|
26945
|
+
path: "packages/elevasis-operations/src/diagnostics/index.ts",
|
|
26946
|
+
role: "config",
|
|
26947
|
+
symbol: "agents"
|
|
26948
|
+
},
|
|
26949
|
+
{
|
|
26950
|
+
path: "packages/elevasis-operations/src/index.ts",
|
|
26951
|
+
role: "config",
|
|
26952
|
+
symbol: "deploymentSpec"
|
|
26953
|
+
}
|
|
26954
|
+
],
|
|
26955
|
+
agentKind: "utility",
|
|
26956
|
+
sessionCapable: true,
|
|
26957
|
+
invocations: [
|
|
26958
|
+
{ kind: "api-endpoint", method: "POST", path: "/api/external/sessions" },
|
|
26959
|
+
{ kind: "api-endpoint", method: "POST", path: "/api/external/sessions/:sessionId/turns" }
|
|
26960
|
+
]
|
|
27071
26961
|
}
|
|
27072
26962
|
].map((resource2) => [resource2.id, resource2])
|
|
27073
26963
|
)
|
|
@@ -37546,7 +37436,6 @@ function AgentObjectView({ node, linkedNodes, registry, onSelectNode }) {
|
|
|
37546
37436
|
{ label: "Model Provider", value: extras.modelProvider },
|
|
37547
37437
|
{ label: "Model ID", value: extras.modelId },
|
|
37548
37438
|
{ label: "Tool Count", value: String(extras.toolCount) },
|
|
37549
|
-
{ label: "Knowledge Map", value: extras.hasKnowledgeMap ? "Yes" : "No" },
|
|
37550
37439
|
{ label: "Memory", value: extras.hasMemory ? "Yes" : "No" },
|
|
37551
37440
|
{ label: "Session Capable", value: extras.sessionCapable ? "Yes" : "No" }
|
|
37552
37441
|
] : [
|
|
@@ -44127,7 +44016,8 @@ function SessionConversationView({
|
|
|
44127
44016
|
placeholder = "Message the agent...",
|
|
44128
44017
|
onFirstSend,
|
|
44129
44018
|
pendingFirstMessage,
|
|
44130
|
-
onPendingSent
|
|
44019
|
+
onPendingSent,
|
|
44020
|
+
showAgentActivity = false
|
|
44131
44021
|
}) {
|
|
44132
44022
|
const [input, setInput] = useState("");
|
|
44133
44023
|
const [isDraftSubmitting, setIsDraftSubmitting] = useState(false);
|
|
@@ -44188,7 +44078,8 @@ function SessionConversationView({
|
|
|
44188
44078
|
onClearError: handleClearError,
|
|
44189
44079
|
emptyStateText,
|
|
44190
44080
|
emptyStateSubtext,
|
|
44191
|
-
placeholder
|
|
44081
|
+
placeholder,
|
|
44082
|
+
showAgentActivity
|
|
44192
44083
|
}
|
|
44193
44084
|
);
|
|
44194
44085
|
}
|
|
@@ -44380,7 +44271,6 @@ function getSessionView(search) {
|
|
|
44380
44271
|
return new URLSearchParams(search).get("view") === "info" ? "info" : "chat";
|
|
44381
44272
|
}
|
|
44382
44273
|
function SessionHeader({ session: _session, connectionState, tokenUsage }) {
|
|
44383
|
-
const mockTokenUsage = tokenUsage || { used: 45e3, total: 128e3 };
|
|
44384
44274
|
return /* @__PURE__ */ jsx(
|
|
44385
44275
|
ChatHeader,
|
|
44386
44276
|
{
|
|
@@ -44389,7 +44279,7 @@ function SessionHeader({ session: _session, connectionState, tokenUsage }) {
|
|
|
44389
44279
|
label: connectionState.isConnected ? "Connected" : "Disconnected",
|
|
44390
44280
|
color: connectionState.isConnected ? "green" : "gray"
|
|
44391
44281
|
},
|
|
44392
|
-
contextUsage:
|
|
44282
|
+
contextUsage: tokenUsage
|
|
44393
44283
|
}
|
|
44394
44284
|
);
|
|
44395
44285
|
}
|
|
@@ -47238,7 +47128,7 @@ function MemberAccessModal({ opened, onClose, orgId, member, defaultTab = "roles
|
|
|
47238
47128
|
] }) });
|
|
47239
47129
|
}
|
|
47240
47130
|
function RolesTabPanel({ orgId, member, onSaved }) {
|
|
47241
|
-
const { data: rolesData, isLoading: rolesLoading } = useOrgRoles(orgId
|
|
47131
|
+
const { data: rolesData, isLoading: rolesLoading } = useOrgRoles(orgId ? brandSupabaseOrgId(orgId) : void 0);
|
|
47242
47132
|
const assignMutation = useAssignRole();
|
|
47243
47133
|
const revokeMutation = useRevokeRole();
|
|
47244
47134
|
const canManagePrivileged = useAccess(AccessKeys.rolesManage).allowed;
|
|
@@ -47323,7 +47213,7 @@ function transformMemberForModal(member) {
|
|
|
47323
47213
|
};
|
|
47324
47214
|
}
|
|
47325
47215
|
function OrgMembersList({ orgId }) {
|
|
47326
|
-
const { data: members, isLoading, error } = useOrganizationMembers(orgId);
|
|
47216
|
+
const { data: members, isLoading, error } = useOrganizationMembers(brandSupabaseOrgId(orgId));
|
|
47327
47217
|
const [selectedMember, setSelectedMember] = useState(null);
|
|
47328
47218
|
const [modalOpened, setModalOpened] = useState(false);
|
|
47329
47219
|
const [defaultTab, setDefaultTab] = useState("roles");
|
|
@@ -47343,7 +47233,7 @@ function OrgMembersList({ orgId }) {
|
|
|
47343
47233
|
] }) });
|
|
47344
47234
|
}
|
|
47345
47235
|
if (error) {
|
|
47346
|
-
return /* @__PURE__ */ jsx(
|
|
47236
|
+
return /* @__PURE__ */ jsx(APIErrorAlert, { error, title: "Error loading members" });
|
|
47347
47237
|
}
|
|
47348
47238
|
if (!members || members.length === 0) {
|
|
47349
47239
|
return /* @__PURE__ */ jsx(EmptyState, { icon: IconUsers, title: "No members found" });
|
|
@@ -47372,7 +47262,10 @@ function OrgMembersList({ orgId }) {
|
|
|
47372
47262
|
isSystem: true
|
|
47373
47263
|
}
|
|
47374
47264
|
) }),
|
|
47375
|
-
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */
|
|
47265
|
+
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
47266
|
+
/* @__PURE__ */ jsx(MembershipStatusBadge, { status: member.status }),
|
|
47267
|
+
/* @__PURE__ */ jsx(ProvisioningStateBadge, { state: member.provisioningState })
|
|
47268
|
+
] }) }),
|
|
47376
47269
|
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Tooltip, { label: "Edit member access", withArrow: true, children: /* @__PURE__ */ jsx(ActionIcon, { variant: "light", size: "sm", color: "gray", onClick: () => openModal2(member, "roles"), children: /* @__PURE__ */ jsx(IconPencil, { size: 14 }) }) }) })
|
|
47377
47270
|
] }, member.id);
|
|
47378
47271
|
}) })
|
|
@@ -50742,7 +50635,7 @@ function ConceptInfoControl({ description }) {
|
|
|
50742
50635
|
var indexPromise = null;
|
|
50743
50636
|
function loadSearchIndex() {
|
|
50744
50637
|
if (!indexPromise) {
|
|
50745
|
-
indexPromise = import('./knowledge-search-index-
|
|
50638
|
+
indexPromise = import('./knowledge-search-index-6EZNBNSR.js').then(
|
|
50746
50639
|
(mod) => buildSearchIndex(mod.default ?? mod)
|
|
50747
50640
|
);
|
|
50748
50641
|
}
|
|
@@ -51508,4 +51401,4 @@ function useAccess(key) {
|
|
|
51508
51401
|
};
|
|
51509
51402
|
}
|
|
51510
51403
|
|
|
51511
|
-
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, LeadGenReadinessAlert, 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, useLeadGenActionRegistry, useLeadGenBulkActions, useLeadGenConfig, useLeadGenHeaderActions, useLeadGenRowActions, 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 };
|
|
51404
|
+
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, DEFAULT_WAIT_FOR_ORGANIZATION, 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, LeadGenReadinessAlert, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, LinksGroup, ListActionsProvider, ListBuilderIndexPage, ListBuilderPage, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyRolesPage, MyTasksPanel, NavigationButton, 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, ProvisioningStateBadge, 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, computeProtectedRouteGate, 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, useLeadGenActionRegistry, useLeadGenBulkActions, useLeadGenConfig, useLeadGenHeaderActions, useLeadGenRowActions, useList, useListActions, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, 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 };
|