@shuffleio/shuffle-mcps 0.0.60 → 0.0.64

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.
@@ -0,0 +1,64 @@
1
+ import {
2
+ API_CONFIG,
3
+ getAuthHeader
4
+ } from "./chunk-2PFFYHRO.mjs";
5
+
6
+ // appsCache.ts
7
+ var TTL_MS = 3e4;
8
+ var ERROR_TTL_MS = 3e4;
9
+ var cache = /* @__PURE__ */ new Map();
10
+ var cacheKey = (o) => `${o.baseUrl}|${o.path || "/api/v1/apps"}|${o.apiKey || ""}|${o.orgId || ""}`;
11
+ var doFetch = async (o) => {
12
+ const headers = {
13
+ ...getAuthHeader(o.orgId || void 0)
14
+ };
15
+ if (o.apiKey) headers["Authorization"] = `Bearer ${o.apiKey}`;
16
+ if (o.orgId) headers["Org-Id"] = o.orgId;
17
+ const response = await fetch(`${o.baseUrl}${o.path || "/api/v1/apps"}`, {
18
+ credentials: "include",
19
+ headers
20
+ });
21
+ if (!response.ok) return [];
22
+ const data = await response.json();
23
+ if (Array.isArray(data)) return data;
24
+ return Array.isArray(data?.data) ? data.data : [];
25
+ };
26
+ var fetchApps = (opts) => {
27
+ const key = cacheKey(opts);
28
+ const entry = cache.get(key) || {};
29
+ if (entry.data && entry.fetchedAt && Date.now() - entry.fetchedAt < TTL_MS) {
30
+ return Promise.resolve(entry.data);
31
+ }
32
+ if (entry.promise) return entry.promise;
33
+ const promise = doFetch(opts).then((data) => {
34
+ cache.set(key, { data, fetchedAt: Date.now() });
35
+ return data;
36
+ }).catch(() => {
37
+ cache.set(key, { data: [], fetchedAt: Date.now() - (TTL_MS - ERROR_TTL_MS) });
38
+ return [];
39
+ });
40
+ cache.set(key, { ...entry, promise });
41
+ return promise;
42
+ };
43
+ var invalidateAppsCache = (opts) => {
44
+ if (!opts) {
45
+ cache.clear();
46
+ return;
47
+ }
48
+ cache.delete(cacheKey(opts));
49
+ };
50
+ var fetchAppsViaApiConfig = () => {
51
+ const headers = getAuthHeader();
52
+ const orgId = headers["Org-Id"] || null;
53
+ return fetchApps({
54
+ baseUrl: API_CONFIG.baseUrl,
55
+ apiKey: API_CONFIG.apiKey,
56
+ orgId
57
+ });
58
+ };
59
+
60
+ export {
61
+ fetchApps,
62
+ invalidateAppsCache,
63
+ fetchAppsViaApiConfig
64
+ };
@@ -0,0 +1,155 @@
1
+ // ../Shuffle-Core/lib/analytics.ts
2
+ import ReactGA from "react-ga4";
3
+ import { isCloud } from "@shuffleio/shuffle-mcps";
4
+ var GA_MEASUREMENT_ID = "G-YSYM9JDVEE";
5
+ var _initialized = false;
6
+ function initAnalytics() {
7
+ if (_initialized) return;
8
+ if (!isCloud()) return;
9
+ if (typeof window === "undefined") return;
10
+ ReactGA.initialize(GA_MEASUREMENT_ID);
11
+ _initialized = true;
12
+ }
13
+ var canTrack = () => isCloud() && _initialized;
14
+ var GA_EVENTS = {
15
+ // Auth events
16
+ LOGIN_START: { category: "auth", action: "login_start" },
17
+ LOGIN_SUCCESS: { category: "auth", action: "login_success" },
18
+ LOGIN_FAILURE: { category: "auth", action: "login_failure" },
19
+ REGISTER_START: { category: "auth", action: "register_start" },
20
+ REGISTER_SUCCESS: { category: "auth", action: "register_success" },
21
+ LOGOUT: { category: "auth", action: "logout" },
22
+ // Onboarding events
23
+ ONBOARDING_START: { category: "onboarding", action: "onboarding_start" },
24
+ ONBOARDING_STEP: { category: "onboarding", action: "onboarding_step" },
25
+ ONBOARDING_COMPLETE: { category: "onboarding", action: "onboarding_complete" },
26
+ CHALLENGE_SELECTED: { category: "onboarding", action: "challenge_selected" },
27
+ TOOL_SELECTED: { category: "onboarding", action: "tool_selected" },
28
+ ONBOARDING_APP_CLICK: { category: "onboarding", action: "app_click" },
29
+ ONBOARDING_AUTH_TEST_SUCCESS: { category: "onboarding", action: "auth_test_success" },
30
+ ONBOARDING_AUTH_TEST_FAILURE: { category: "onboarding", action: "auth_test_failure" },
31
+ ONBOARDING_AUTOMATION_TOGGLE: { category: "onboarding", action: "automation_toggle" },
32
+ ONBOARDING_PRODUCT_CHOICE: { category: "onboarding", action: "product_choice" },
33
+ // Navigation events
34
+ CTA_CLICK: { category: "navigation", action: "cta_click" },
35
+ NAV_CLICK: { category: "navigation", action: "nav_click" },
36
+ EXTERNAL_LINK: { category: "navigation", action: "external_link" },
37
+ // Engagement events
38
+ SEARCH_USED: { category: "engagement", action: "search_used" },
39
+ CATEGORY_FILTER: { category: "engagement", action: "category_filter" },
40
+ APP_VIEWED: { category: "engagement", action: "app_viewed" },
41
+ // Conversion events
42
+ FREE_TRIAL_START: { category: "conversion", action: "free_trial_start" },
43
+ INTEGRATION_CONNECTED: { category: "conversion", action: "integration_connected" },
44
+ // Incident events
45
+ INCIDENT_AUTOMATION_CHANGE: { category: "incidents", action: "automation_change" },
46
+ INCIDENT_CREATE: { category: "incidents", action: "create" },
47
+ INCIDENT_RESOLVE: { category: "incidents", action: "resolve" },
48
+ INCIDENT_BULK_RESOLVE: { category: "incidents", action: "bulk_resolve" },
49
+ INCIDENT_SYNC: { category: "incidents", action: "sync" },
50
+ INCIDENT_INGESTION_TOGGLE: { category: "incidents", action: "ingestion_toggle" },
51
+ INCIDENT_MERGE: { category: "incidents", action: "merge" },
52
+ // Detection events
53
+ DETECTION_SENSOR_SELECT: { category: "detection", action: "sensor_select" },
54
+ DETECTION_SENSOR_CHECK: { category: "detection", action: "sensor_check" },
55
+ DETECTION_RULES_LOAD: { category: "detection", action: "rules_load" },
56
+ DETECTION_DEPLOY_CLICK: { category: "detection", action: "deploy_click" },
57
+ DETECTION_TEST_RUN: { category: "detection", action: "test_run" },
58
+ DETECTION_STEP_EXPAND: { category: "detection", action: "step_expand" },
59
+ DETECTION_ENV_CREATE: { category: "detection", action: "env_create" },
60
+ // Demo tour funnel events.
61
+ // Each fires with `label = stepId` and `value = stepIndex` so GA can build
62
+ // a step-ordinal funnel (e.g. how many users reach step 5 of the demo).
63
+ //
64
+ // Funnel layers:
65
+ // DEMO_START — user clicked "Start demo tour"
66
+ // DEMO_LIVE_ENV_* — environment bootstrap (workflows + feeds + IOCs) result
67
+ // DEMO_STEP_VIEW — user landed on a step (once per session per step)
68
+ // DEMO_STEP_ADVANCE — user clicked Next from a step (counts as "successful
69
+ // at this step" for steps without an explicit gate)
70
+ // DEMO_STEP_COMPLETE — gated step's requirement was satisfied (e.g. webhook on)
71
+ // DEMO_FORCE_CREATE_INCIDENTS — manual rescue button on the incidents step
72
+ // DEMO_FINISH — user reached the final wrap step
73
+ // DEMO_ABANDON — user closed/exited the tour before finishing
74
+ // DEMO_CLEANUP — user clicked "Clean up demo data"
75
+ // DEMO_MINIMIZE/RESTORE — drawer pill state
76
+ DEMO_START: { category: "demo", action: "demo_start" },
77
+ DEMO_LIVE_ENV_SUCCESS: { category: "demo", action: "demo_live_env_success" },
78
+ DEMO_LIVE_ENV_FAILURE: { category: "demo", action: "demo_live_env_failure" },
79
+ DEMO_STEP_VIEW: { category: "demo", action: "demo_step_view" },
80
+ DEMO_STEP_ADVANCE: { category: "demo", action: "demo_step_advance" },
81
+ DEMO_STEP_COMPLETE: { category: "demo", action: "demo_step_complete" },
82
+ DEMO_FORCE_CREATE_INCIDENTS: { category: "demo", action: "demo_force_create_incidents" },
83
+ DEMO_FINISH: { category: "demo", action: "demo_finish" },
84
+ DEMO_ABANDON: { category: "demo", action: "demo_abandon" },
85
+ DEMO_CLEANUP: { category: "demo", action: "demo_cleanup" },
86
+ DEMO_MINIMIZE: { category: "demo", action: "demo_minimize" },
87
+ DEMO_RESTORE: { category: "demo", action: "demo_restore" },
88
+ // Host monitor (Add Host) funnel events.
89
+ // OPEN — user opened the Add Host dialog
90
+ // DEPLOY — advanced from "checks" to "deploy" step (saw the install command)
91
+ // DETECTED — sensor actually checked in while the dialog was open (success)
92
+ // DISMISS — dialog closed (or page unmounted) without a successful detection (abandonment)
93
+ // Together these form a 4-step funnel: OPEN → DEPLOY → DETECTED, with DISMISS as the abandonment counter.
94
+ MONITOR_ADD_HOST_OPEN: { category: "monitors", action: "add_host_open" },
95
+ MONITOR_ADD_HOST_DEPLOY: { category: "monitors", action: "add_host_deploy" },
96
+ MONITOR_ADD_HOST_DETECTED: { category: "monitors", action: "add_host_detected" },
97
+ MONITOR_ADD_HOST_DISMISS: { category: "monitors", action: "add_host_dismiss" }
98
+ };
99
+ function trackEvent({ category, action, label, value, custom }) {
100
+ if (!canTrack()) return;
101
+ ReactGA.event(action, {
102
+ event_category: category,
103
+ event_label: label,
104
+ value,
105
+ ...custom
106
+ });
107
+ }
108
+ function trackPredefinedEvent(event, label, value, custom) {
109
+ trackEvent({
110
+ category: event.category,
111
+ action: event.action,
112
+ label,
113
+ value,
114
+ custom
115
+ });
116
+ }
117
+ function trackPageView(path, title) {
118
+ if (!canTrack()) return;
119
+ ReactGA.send({
120
+ hitType: "pageview",
121
+ page: path,
122
+ title: title || (typeof document !== "undefined" ? document.title : void 0)
123
+ });
124
+ }
125
+ function trackCTA(ctaName, location) {
126
+ trackPredefinedEvent(GA_EVENTS.CTA_CLICK, ctaName, void 0, {
127
+ cta_location: location
128
+ });
129
+ }
130
+ function trackOnboardingStep(stepNumber, stepName) {
131
+ trackPredefinedEvent(GA_EVENTS.ONBOARDING_STEP, stepName, stepNumber);
132
+ }
133
+ function trackReferralParams() {
134
+ if (typeof window === "undefined") return;
135
+ const params = new URLSearchParams(window.location.search);
136
+ const utmContent = params.get("utm_content");
137
+ const shuffleRef = params.get("shuffle_ref");
138
+ if (utmContent) {
139
+ trackEvent({ category: "navigation", action: "utm_content", label: utmContent });
140
+ }
141
+ if (shuffleRef) {
142
+ trackEvent({ category: "navigation", action: "shuffle_ref", label: shuffleRef });
143
+ }
144
+ }
145
+
146
+ export {
147
+ initAnalytics,
148
+ GA_EVENTS,
149
+ trackEvent,
150
+ trackPredefinedEvent,
151
+ trackPageView,
152
+ trackCTA,
153
+ trackOnboardingStep,
154
+ trackReferralParams
155
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ DATASTORE_CATEGORIES,
3
+ deleteDatastoreItem,
4
+ deleteDatastoreItems,
5
+ filterItemsByCategory,
6
+ getDatastoreByCategory,
7
+ getDatastoreItem,
8
+ getDatastoreItemPublic,
9
+ getDatastorePageSize,
10
+ setDatastoreItem,
11
+ setDatastoreItems,
12
+ setRuntimeOrgId
13
+ } from "./chunk-C7HCHOHU.mjs";
14
+ import "./chunk-2PFFYHRO.mjs";
15
+ export {
16
+ DATASTORE_CATEGORIES,
17
+ deleteDatastoreItem,
18
+ deleteDatastoreItems,
19
+ filterItemsByCategory,
20
+ getDatastoreByCategory,
21
+ getDatastoreItem,
22
+ getDatastoreItemPublic,
23
+ getDatastorePageSize,
24
+ setDatastoreItem,
25
+ setDatastoreItems,
26
+ setRuntimeOrgId
27
+ };
package/dist/index.d.mts CHANGED
@@ -136,6 +136,8 @@ interface AppAuthentication$1 {
136
136
  id: string;
137
137
  name: string;
138
138
  large_image: string;
139
+ categories?: string[];
140
+ description?: string;
139
141
  };
140
142
  fields: Array<{
141
143
  key: string;
@@ -149,6 +151,7 @@ interface AppAuthentication$1 {
149
151
  /** Whether the authentication has been validated (tests ran successfully) */
150
152
  valid: boolean;
151
153
  error?: string;
154
+ last_valid?: number;
152
155
  };
153
156
  }
154
157
  interface ShuffleMCPProps extends ShuffleHostProps {
@@ -371,6 +374,15 @@ interface AppAuthCardProps extends ShuffleHostProps {
371
374
  declare const AppAuthCard: ({ app, authState, isExpanded, onToggle, onAuthChange, onTestConnection, onSaveAuth, apiAuthEntries, onSelectAuth, onRefreshAuth, disableUrlPrefill, hideHeader, hideStatusChips, hideDocsLink, hideUrlFields, borderless, compactAuthForm, alwaysShowAuthSelector, suppressSaveToast, extraFieldsSlot, initialAuthConfig, globalUrl, userdata, isLoaded, isLoggedIn, serverside, }: AppAuthCardProps) => React$1.JSX.Element;
372
375
  declare const AppAuthConfig: ({ apps, authStates, authenticatedApps, onAuthChange, onTestConnection, onSaveAuth, onSelectAuth, onRefreshAuth, globalUrl, userdata, isLoaded, isLoggedIn, serverside, }: AppAuthConfigProps) => React$1.JSX.Element;
373
376
 
377
+ /**
378
+ * AppDetailContent — Single source of truth for app details, authentication,
379
+ * MCP testing, and action execution.
380
+ *
381
+ * Used by:
382
+ * 1. AppDetailDrawer — in drawer mode (slide-out drawer with close button & incident stats).
383
+ * 2. AppDetailPage — in page mode (full page with guest locking, quick info, and SEO reporting).
384
+ */
385
+
374
386
  interface AppInfo {
375
387
  name: string;
376
388
  description: string;
@@ -390,6 +402,8 @@ interface AppDetailContentProps extends ShuffleHostProps {
390
402
  appName: string | null;
391
403
  /** Pre-resolved Algolia objectID (optional fast path) */
392
404
  appId?: string | null;
405
+ /** Pre-resolved app icon/image (optional fast path from chip/picker) */
406
+ appImage?: string | null;
393
407
  /** Callback to close the view (drawer mode) */
394
408
  onClose?: () => void;
395
409
  /** Callback when data is refreshed */
@@ -478,6 +492,12 @@ interface AppTitleHeaderProps extends ShuffleHostProps {
478
492
  activateLoading?: boolean;
479
493
  /** Called when user clicks Activate/Deactivate. */
480
494
  onActivateToggle?: () => void;
495
+ /** Ingestion state — `null` or undefined hides the Ingest button. */
496
+ isIngestEnabled?: boolean | null;
497
+ /** Whether ingestion toggle is in-flight. */
498
+ ingestLoading?: boolean;
499
+ /** Called when user clicks Enable ingest / Ingest enabled. */
500
+ onIngestToggle?: () => void;
481
501
  /** When true, visually highlight the Activate button to signal an
482
502
  * automatic click is happening (e.g. from a usecase auto-activate flow). */
483
503
  highlightActivate?: boolean;
@@ -1229,6 +1249,34 @@ interface AskAiWidgetProps extends Omit<AskAiSidePanelProps, 'open' | 'onClose'>
1229
1249
  */
1230
1250
  declare const useContextAwareAgent: (pathname?: string, search?: string) => AgentResolvedContext;
1231
1251
 
1252
+ /**
1253
+ * ApiCallViewer — Standardized, compact API call inspector and test runner.
1254
+ * Used across App Integrations and Documentation.
1255
+ *
1256
+ * Supports switching between cURL, Python, HTTP, and JSON payload inspection,
1257
+ * live testing via Shuffle HTTP app, and collapsible JSON parsing via JsonView.
1258
+ */
1259
+
1260
+ interface ApiCallConfig {
1261
+ method: string;
1262
+ url: string;
1263
+ headers?: Record<string, string>;
1264
+ body?: unknown;
1265
+ }
1266
+ type SnippetLang = 'curl' | 'python' | 'http' | 'json';
1267
+ interface ApiCallViewerProps extends ShuffleHostProps {
1268
+ /** Structured API call configuration */
1269
+ config?: ApiCallConfig;
1270
+ /** Raw cURL command string (e.g. from documentation markdown) */
1271
+ rawCurl?: string;
1272
+ /** Whether to mask the Authorization header value in display (default: true) */
1273
+ maskAuth?: boolean;
1274
+ /** Initial selected tab mode (default: 'curl') */
1275
+ defaultMode?: SnippetLang;
1276
+ /** Title displayed in the header (default: 'API Call') */
1277
+ title?: string;
1278
+ }
1279
+
1232
1280
  /**
1233
1281
  * API Configuration
1234
1282
  *
@@ -1926,6 +1974,8 @@ interface DatastoreResponse {
1926
1974
  totalAmount?: number;
1927
1975
  error?: string;
1928
1976
  diagnostics?: DatastoreDiagnostics;
1977
+ /** Raw items count from backend before client-side cross-category filtering */
1978
+ rawItemCount?: number;
1929
1979
  /** Per-key write result reported by the backend (v2 datastore writes). */
1930
1980
  keysExisted?: DatastoreKeyExisted[];
1931
1981
  /** True when the backend reports the stored value actually changed. */
@@ -1942,6 +1992,7 @@ interface DatastoreDiagnostics {
1942
1992
  contentType?: string | null;
1943
1993
  responseShape?: 'array' | 'keys' | 'data' | 'object' | 'unknown';
1944
1994
  itemCount?: number;
1995
+ rawItemCount?: number;
1945
1996
  totalAmount?: number | null;
1946
1997
  bodyPreview?: string;
1947
1998
  errorStage?: 'request' | 'response' | 'parse' | 'unknown';
@@ -1977,6 +2028,17 @@ declare const getDatastoreItemPublic: (key: string, orgId: string, authorization
1977
2028
  item?: DatastoreItem;
1978
2029
  }>;
1979
2030
  /**
2031
+ * Defensively filters items returned by datastore list APIs.
2032
+ * The Shuffle Core backend's list_cache API filters the category field with an
2033
+ * analyzed match query instead of an exact term match, causing cross-category
2034
+ * contamination among categories sharing prefixes (e.g. shuffle-security_*).
2035
+ * If an item explicitly carries a `category` property, ensure it matches the
2036
+ * requested category (or known aliases for vulns). Items without a category
2037
+ * property are preserved for backwards compatibility with legacy payloads.
2038
+ */
2039
+ declare const filterItemsByCategory: <T extends {
2040
+ category?: string;
2041
+ }>(items: T[], category: string) => T[];
1980
2042
  /**
1981
2043
  * Page size used for a category. Exported so callers that follow cursors can
1982
2044
  * tell a full page (more data may exist) from a short page (definitively the
@@ -2323,6 +2385,8 @@ declare const AskAiSidePanel: React__default.ComponentType<any>;
2323
2385
 
2324
2386
  declare const AskAiWidget: React__default.ComponentType<any>;
2325
2387
 
2388
+ declare const ApiCallViewer: React__default.ComponentType<any>;
2389
+
2326
2390
  declare const AgentActivityList: React__default.ComponentType<any>;
2327
2391
 
2328
2392
  declare const AgentExecutionDrawer: React__default.ComponentType<any>;
@@ -2334,4 +2398,4 @@ declare const LocalLLMConfig: React__default.ComponentType<any>;
2334
2398
 
2335
2399
  declare const AddAppModal: React__default.ComponentType<any>;
2336
2400
 
2337
- export { AGENT_DRAWER_CLOSE_EVENT, AGENT_DRAWER_OPEN_EVENT, AGENT_DRAWER_STATE_EVENT, AGENT_PRESETS, AGENT_PROMPT_PREFIX_CATEGORY, API_CONFIG, ASK_AI_PANEL_WIDTH_STORAGE_KEY, AddAppModal, type AddAppModalProps, AgentActivityList, type AgentActivityListProps, type AgentActivityParams, type AgentActivityResponse, type AgentContextApp, type AgentContextRule, type AgentDecision, AgentExecutionDrawer, type AgentExecutionDrawerProps, AgentIcon, type AgentLocalModel, type AgentPreset, AgentPresets, type AgentPresetsProps, AgentPromptPrefixChip, type AgentPromptPrefixChipProps, type AgentResolvedContext, type AgentRun, AgentRunDiagnosisBanner, AgentRunDrawer, type AgentRunDrawerProps, type AgentRunDrawerTab, type AgentRunResult, AgentUI, type AgentUIApp, type AgentUIProps, AgentsView, type AgentsViewProps, AiAgentPromptsEditor, type AiAgentPromptsEditorProps, type AlgoliaSearchApp, type ApiAuthEntry, AppAuthCard, type AppAuthCardProps, AppAuthConfig, AppAuthSection, type AppAuthSectionProps, type AppAuthState, type AppAuthentication$1 as AppAuthentication, AppDetailContent, type AppDetailContentProps, AppDetailDrawer, AppDetailProvider, type AppInfo, type AppLookupResult, AppSearchDrawer, type AppSelectedEvent, AppTitleHeader, type AppTitleHeaderProps, AskAiButton, type AskAiButtonProps, AskAiDrawer, type AskAiDrawerProps, AskAiSidePanel, type AskAiSidePanelProps, AskAiWidget, type AskAiWidgetProps, type AuthStatus, CASES_PATTERNS, COMMUNICATION_PATTERNS_NAMES, type CategoryAutomation, type CategoryConfig, type ConnectedToolApp, type CustomStyles, DATASTORE_CATEGORIES, DEFAULT_AGENT_CONTEXT_RULES, DEFAULT_AGENT_PROMPT_PREFIX, DEMO_AGENT_RUNS, type DatastoreDiagnostics, type DatastoreItem, type DatastoreResponse, type DiagnosableRun, type DiagnosisEvidence, EDR_PATTERNS, EMAIL_APP_PATTERNS, FORWARD_TICKETS_WORKFLOW_NAME, type FetchAppsOptions, INGEST_TICKETS_WORKFLOW_NAME, type IngestionCategory, IntegrationStatus, LocalLLMConfig, type LocalLLMConfigProps, type LocalLLMTestResult, MAX_ASK_AI_PANEL_WIDTH, MAX_AUTO_ASSIGNED_TOOLS, MIN_ASK_AI_PANEL_WIDTH, ShuffleMarkdown as Markdown, MarkdownJsonBlock, type OutputDiagnosis, type PageContextChoice, type ResolvedApp, type ResolvedContactUserInfo, SIEM_PATTERNS, type ShuffleHostProps, ShuffleMCP, type ShuffleMCPHandle, type ShuffleMCPProps, ShuffleMarkdown, type ShuffleMcpColorMode, ShuffleMcpThemeProvider, type ShuffleMcpThemeProviderProps, ShufflePipelinesBanner, type ShuffleTheme, SingulActionsPreview, type SupportEscalationContext, THREAT_INTEL_PATTERNS, TryMcpSection, type TryMcpSectionProps, UsageBar, type UsageBarProps, type UseAgentPromptPrefixOptions, VERIFIED_BUILTIN_APPS, VULN_SCANNER_PATTERNS, type ValidatedIngestionApp, VideoEmbed, applyRegionFromPayload, buildSupportEscalationUrl, checkAppNameMatch, clearPageContextChoice, ShuffleMCP as default, deleteDatastoreItem, deleteDatastoreItems, diagnoseOutputWarning, extractActionAppNames, extractValidatedIngestionApps, extractWorkflowActionAppNames, extractWorkflowAppNames, fetchApps, fetchAppsViaApiConfig, fetchConnectedTools, findForwardTicketsWorkflow, findIngestTicketsWorkflow, getActivePageEntityName, getAgentContextRules, getApiUrl, getAuthHeader, getCachedConnectedTools, getDatastoreByCategory, getDatastoreItem, getDatastoreItemPublic, getDatastorePageSize, getFailureInfo, getHostBaseUrl, getIngestionCategory, getPageContextChoice, hasOutputWarning, installFetchBreaker, invalidateAppsCache, invalidateResolvedApps, isAgentRoute, isCloud, isCloudDomain, isEmailApp, isIngestionApp, isOnprem, isShuffleCloudDomain, isShuffleSecurityBackend, isThreatIntelApp, isVulnScannerApp, isWorkflowScheduleStopped, mapCloudRegionUrl, matchRoutePattern, mergeConnectedTools, normalizeAppName, openSupportEscalation, parseRunResult, refreshAllIntegrationStatus, registerAgentContextRule, registerProtectedOrigin, resetRegionUrl, resolveAgentContext, resolveApp, resolveApps, resolveConnectedTools, resolveContactUserInfo, resolveVideoUrl, scheduleAgentRun, searchAgentActivity, seedResolvedApp, setCachedConnectedTools, setDatastoreItem, setDatastoreItems, setHostBaseUrl, setPageContextChoice, setRegionUrl, setRuntimeOrgId, setToastImpl, shuffleFetch, toast, useAgentPromptPrefix, useAppAuth, useAppAuthFlow, useAppDetail, useAppDetailOptional, useAppLookup, useContextAwareAgent, useSyncHostBaseUrl };
2401
+ export { AGENT_DRAWER_CLOSE_EVENT, AGENT_DRAWER_OPEN_EVENT, AGENT_DRAWER_STATE_EVENT, AGENT_PRESETS, AGENT_PROMPT_PREFIX_CATEGORY, API_CONFIG, ASK_AI_PANEL_WIDTH_STORAGE_KEY, AddAppModal, type AddAppModalProps, AgentActivityList, type AgentActivityListProps, type AgentActivityParams, type AgentActivityResponse, type AgentContextApp, type AgentContextRule, type AgentDecision, AgentExecutionDrawer, type AgentExecutionDrawerProps, AgentIcon, type AgentLocalModel, type AgentPreset, AgentPresets, type AgentPresetsProps, AgentPromptPrefixChip, type AgentPromptPrefixChipProps, type AgentResolvedContext, type AgentRun, AgentRunDiagnosisBanner, AgentRunDrawer, type AgentRunDrawerProps, type AgentRunDrawerTab, type AgentRunResult, AgentUI, type AgentUIApp, type AgentUIProps, AgentsView, type AgentsViewProps, AiAgentPromptsEditor, type AiAgentPromptsEditorProps, type AlgoliaSearchApp, type ApiAuthEntry, type ApiCallConfig, ApiCallViewer, type ApiCallViewerProps, AppAuthCard, type AppAuthCardProps, AppAuthConfig, AppAuthSection, type AppAuthSectionProps, type AppAuthState, type AppAuthentication$1 as AppAuthentication, AppDetailContent, type AppDetailContentProps, AppDetailDrawer, AppDetailProvider, type AppInfo, type AppLookupResult, AppSearchDrawer, type AppSelectedEvent, AppTitleHeader, type AppTitleHeaderProps, AskAiButton, type AskAiButtonProps, AskAiDrawer, type AskAiDrawerProps, AskAiSidePanel, type AskAiSidePanelProps, AskAiWidget, type AskAiWidgetProps, type AuthStatus, CASES_PATTERNS, COMMUNICATION_PATTERNS_NAMES, type CategoryAutomation, type CategoryConfig, type ConnectedToolApp, type CustomStyles, DATASTORE_CATEGORIES, DEFAULT_AGENT_CONTEXT_RULES, DEFAULT_AGENT_PROMPT_PREFIX, DEMO_AGENT_RUNS, type DatastoreDiagnostics, type DatastoreItem, type DatastoreResponse, type DiagnosableRun, type DiagnosisEvidence, EDR_PATTERNS, EMAIL_APP_PATTERNS, FORWARD_TICKETS_WORKFLOW_NAME, type FetchAppsOptions, INGEST_TICKETS_WORKFLOW_NAME, type IngestionCategory, IntegrationStatus, LocalLLMConfig, type LocalLLMConfigProps, type LocalLLMTestResult, MAX_ASK_AI_PANEL_WIDTH, MAX_AUTO_ASSIGNED_TOOLS, MIN_ASK_AI_PANEL_WIDTH, ShuffleMarkdown as Markdown, MarkdownJsonBlock, type OutputDiagnosis, type PageContextChoice, type ResolvedApp, type ResolvedContactUserInfo, SIEM_PATTERNS, type ShuffleHostProps, ShuffleMCP, type ShuffleMCPHandle, type ShuffleMCPProps, ShuffleMarkdown, type ShuffleMcpColorMode, ShuffleMcpThemeProvider, type ShuffleMcpThemeProviderProps, ShufflePipelinesBanner, type ShuffleTheme, SingulActionsPreview, type SupportEscalationContext, THREAT_INTEL_PATTERNS, TryMcpSection, type TryMcpSectionProps, UsageBar, type UsageBarProps, type UseAgentPromptPrefixOptions, VERIFIED_BUILTIN_APPS, VULN_SCANNER_PATTERNS, type ValidatedIngestionApp, VideoEmbed, applyRegionFromPayload, buildSupportEscalationUrl, checkAppNameMatch, clearPageContextChoice, ShuffleMCP as default, deleteDatastoreItem, deleteDatastoreItems, diagnoseOutputWarning, extractActionAppNames, extractValidatedIngestionApps, extractWorkflowActionAppNames, extractWorkflowAppNames, fetchApps, fetchAppsViaApiConfig, fetchConnectedTools, filterItemsByCategory, findForwardTicketsWorkflow, findIngestTicketsWorkflow, getActivePageEntityName, getAgentContextRules, getApiUrl, getAuthHeader, getCachedConnectedTools, getDatastoreByCategory, getDatastoreItem, getDatastoreItemPublic, getDatastorePageSize, getFailureInfo, getHostBaseUrl, getIngestionCategory, getPageContextChoice, hasOutputWarning, installFetchBreaker, invalidateAppsCache, invalidateResolvedApps, isAgentRoute, isCloud, isCloudDomain, isEmailApp, isIngestionApp, isOnprem, isShuffleCloudDomain, isShuffleSecurityBackend, isThreatIntelApp, isVulnScannerApp, isWorkflowScheduleStopped, mapCloudRegionUrl, matchRoutePattern, mergeConnectedTools, normalizeAppName, openSupportEscalation, parseRunResult, refreshAllIntegrationStatus, registerAgentContextRule, registerProtectedOrigin, resetRegionUrl, resolveAgentContext, resolveApp, resolveApps, resolveConnectedTools, resolveContactUserInfo, resolveVideoUrl, scheduleAgentRun, searchAgentActivity, seedResolvedApp, setCachedConnectedTools, setDatastoreItem, setDatastoreItems, setHostBaseUrl, setPageContextChoice, setRegionUrl, setRuntimeOrgId, setToastImpl, shuffleFetch, toast, useAgentPromptPrefix, useAppAuth, useAppAuthFlow, useAppDetail, useAppDetailOptional, useAppLookup, useContextAwareAgent, useSyncHostBaseUrl };
package/dist/index.d.ts CHANGED
@@ -136,6 +136,8 @@ interface AppAuthentication$1 {
136
136
  id: string;
137
137
  name: string;
138
138
  large_image: string;
139
+ categories?: string[];
140
+ description?: string;
139
141
  };
140
142
  fields: Array<{
141
143
  key: string;
@@ -149,6 +151,7 @@ interface AppAuthentication$1 {
149
151
  /** Whether the authentication has been validated (tests ran successfully) */
150
152
  valid: boolean;
151
153
  error?: string;
154
+ last_valid?: number;
152
155
  };
153
156
  }
154
157
  interface ShuffleMCPProps extends ShuffleHostProps {
@@ -371,6 +374,15 @@ interface AppAuthCardProps extends ShuffleHostProps {
371
374
  declare const AppAuthCard: ({ app, authState, isExpanded, onToggle, onAuthChange, onTestConnection, onSaveAuth, apiAuthEntries, onSelectAuth, onRefreshAuth, disableUrlPrefill, hideHeader, hideStatusChips, hideDocsLink, hideUrlFields, borderless, compactAuthForm, alwaysShowAuthSelector, suppressSaveToast, extraFieldsSlot, initialAuthConfig, globalUrl, userdata, isLoaded, isLoggedIn, serverside, }: AppAuthCardProps) => React$1.JSX.Element;
372
375
  declare const AppAuthConfig: ({ apps, authStates, authenticatedApps, onAuthChange, onTestConnection, onSaveAuth, onSelectAuth, onRefreshAuth, globalUrl, userdata, isLoaded, isLoggedIn, serverside, }: AppAuthConfigProps) => React$1.JSX.Element;
373
376
 
377
+ /**
378
+ * AppDetailContent — Single source of truth for app details, authentication,
379
+ * MCP testing, and action execution.
380
+ *
381
+ * Used by:
382
+ * 1. AppDetailDrawer — in drawer mode (slide-out drawer with close button & incident stats).
383
+ * 2. AppDetailPage — in page mode (full page with guest locking, quick info, and SEO reporting).
384
+ */
385
+
374
386
  interface AppInfo {
375
387
  name: string;
376
388
  description: string;
@@ -390,6 +402,8 @@ interface AppDetailContentProps extends ShuffleHostProps {
390
402
  appName: string | null;
391
403
  /** Pre-resolved Algolia objectID (optional fast path) */
392
404
  appId?: string | null;
405
+ /** Pre-resolved app icon/image (optional fast path from chip/picker) */
406
+ appImage?: string | null;
393
407
  /** Callback to close the view (drawer mode) */
394
408
  onClose?: () => void;
395
409
  /** Callback when data is refreshed */
@@ -478,6 +492,12 @@ interface AppTitleHeaderProps extends ShuffleHostProps {
478
492
  activateLoading?: boolean;
479
493
  /** Called when user clicks Activate/Deactivate. */
480
494
  onActivateToggle?: () => void;
495
+ /** Ingestion state — `null` or undefined hides the Ingest button. */
496
+ isIngestEnabled?: boolean | null;
497
+ /** Whether ingestion toggle is in-flight. */
498
+ ingestLoading?: boolean;
499
+ /** Called when user clicks Enable ingest / Ingest enabled. */
500
+ onIngestToggle?: () => void;
481
501
  /** When true, visually highlight the Activate button to signal an
482
502
  * automatic click is happening (e.g. from a usecase auto-activate flow). */
483
503
  highlightActivate?: boolean;
@@ -1229,6 +1249,34 @@ interface AskAiWidgetProps extends Omit<AskAiSidePanelProps, 'open' | 'onClose'>
1229
1249
  */
1230
1250
  declare const useContextAwareAgent: (pathname?: string, search?: string) => AgentResolvedContext;
1231
1251
 
1252
+ /**
1253
+ * ApiCallViewer — Standardized, compact API call inspector and test runner.
1254
+ * Used across App Integrations and Documentation.
1255
+ *
1256
+ * Supports switching between cURL, Python, HTTP, and JSON payload inspection,
1257
+ * live testing via Shuffle HTTP app, and collapsible JSON parsing via JsonView.
1258
+ */
1259
+
1260
+ interface ApiCallConfig {
1261
+ method: string;
1262
+ url: string;
1263
+ headers?: Record<string, string>;
1264
+ body?: unknown;
1265
+ }
1266
+ type SnippetLang = 'curl' | 'python' | 'http' | 'json';
1267
+ interface ApiCallViewerProps extends ShuffleHostProps {
1268
+ /** Structured API call configuration */
1269
+ config?: ApiCallConfig;
1270
+ /** Raw cURL command string (e.g. from documentation markdown) */
1271
+ rawCurl?: string;
1272
+ /** Whether to mask the Authorization header value in display (default: true) */
1273
+ maskAuth?: boolean;
1274
+ /** Initial selected tab mode (default: 'curl') */
1275
+ defaultMode?: SnippetLang;
1276
+ /** Title displayed in the header (default: 'API Call') */
1277
+ title?: string;
1278
+ }
1279
+
1232
1280
  /**
1233
1281
  * API Configuration
1234
1282
  *
@@ -1926,6 +1974,8 @@ interface DatastoreResponse {
1926
1974
  totalAmount?: number;
1927
1975
  error?: string;
1928
1976
  diagnostics?: DatastoreDiagnostics;
1977
+ /** Raw items count from backend before client-side cross-category filtering */
1978
+ rawItemCount?: number;
1929
1979
  /** Per-key write result reported by the backend (v2 datastore writes). */
1930
1980
  keysExisted?: DatastoreKeyExisted[];
1931
1981
  /** True when the backend reports the stored value actually changed. */
@@ -1942,6 +1992,7 @@ interface DatastoreDiagnostics {
1942
1992
  contentType?: string | null;
1943
1993
  responseShape?: 'array' | 'keys' | 'data' | 'object' | 'unknown';
1944
1994
  itemCount?: number;
1995
+ rawItemCount?: number;
1945
1996
  totalAmount?: number | null;
1946
1997
  bodyPreview?: string;
1947
1998
  errorStage?: 'request' | 'response' | 'parse' | 'unknown';
@@ -1977,6 +2028,17 @@ declare const getDatastoreItemPublic: (key: string, orgId: string, authorization
1977
2028
  item?: DatastoreItem;
1978
2029
  }>;
1979
2030
  /**
2031
+ * Defensively filters items returned by datastore list APIs.
2032
+ * The Shuffle Core backend's list_cache API filters the category field with an
2033
+ * analyzed match query instead of an exact term match, causing cross-category
2034
+ * contamination among categories sharing prefixes (e.g. shuffle-security_*).
2035
+ * If an item explicitly carries a `category` property, ensure it matches the
2036
+ * requested category (or known aliases for vulns). Items without a category
2037
+ * property are preserved for backwards compatibility with legacy payloads.
2038
+ */
2039
+ declare const filterItemsByCategory: <T extends {
2040
+ category?: string;
2041
+ }>(items: T[], category: string) => T[];
1980
2042
  /**
1981
2043
  * Page size used for a category. Exported so callers that follow cursors can
1982
2044
  * tell a full page (more data may exist) from a short page (definitively the
@@ -2323,6 +2385,8 @@ declare const AskAiSidePanel: React__default.ComponentType<any>;
2323
2385
 
2324
2386
  declare const AskAiWidget: React__default.ComponentType<any>;
2325
2387
 
2388
+ declare const ApiCallViewer: React__default.ComponentType<any>;
2389
+
2326
2390
  declare const AgentActivityList: React__default.ComponentType<any>;
2327
2391
 
2328
2392
  declare const AgentExecutionDrawer: React__default.ComponentType<any>;
@@ -2334,4 +2398,4 @@ declare const LocalLLMConfig: React__default.ComponentType<any>;
2334
2398
 
2335
2399
  declare const AddAppModal: React__default.ComponentType<any>;
2336
2400
 
2337
- export { AGENT_DRAWER_CLOSE_EVENT, AGENT_DRAWER_OPEN_EVENT, AGENT_DRAWER_STATE_EVENT, AGENT_PRESETS, AGENT_PROMPT_PREFIX_CATEGORY, API_CONFIG, ASK_AI_PANEL_WIDTH_STORAGE_KEY, AddAppModal, type AddAppModalProps, AgentActivityList, type AgentActivityListProps, type AgentActivityParams, type AgentActivityResponse, type AgentContextApp, type AgentContextRule, type AgentDecision, AgentExecutionDrawer, type AgentExecutionDrawerProps, AgentIcon, type AgentLocalModel, type AgentPreset, AgentPresets, type AgentPresetsProps, AgentPromptPrefixChip, type AgentPromptPrefixChipProps, type AgentResolvedContext, type AgentRun, AgentRunDiagnosisBanner, AgentRunDrawer, type AgentRunDrawerProps, type AgentRunDrawerTab, type AgentRunResult, AgentUI, type AgentUIApp, type AgentUIProps, AgentsView, type AgentsViewProps, AiAgentPromptsEditor, type AiAgentPromptsEditorProps, type AlgoliaSearchApp, type ApiAuthEntry, AppAuthCard, type AppAuthCardProps, AppAuthConfig, AppAuthSection, type AppAuthSectionProps, type AppAuthState, type AppAuthentication$1 as AppAuthentication, AppDetailContent, type AppDetailContentProps, AppDetailDrawer, AppDetailProvider, type AppInfo, type AppLookupResult, AppSearchDrawer, type AppSelectedEvent, AppTitleHeader, type AppTitleHeaderProps, AskAiButton, type AskAiButtonProps, AskAiDrawer, type AskAiDrawerProps, AskAiSidePanel, type AskAiSidePanelProps, AskAiWidget, type AskAiWidgetProps, type AuthStatus, CASES_PATTERNS, COMMUNICATION_PATTERNS_NAMES, type CategoryAutomation, type CategoryConfig, type ConnectedToolApp, type CustomStyles, DATASTORE_CATEGORIES, DEFAULT_AGENT_CONTEXT_RULES, DEFAULT_AGENT_PROMPT_PREFIX, DEMO_AGENT_RUNS, type DatastoreDiagnostics, type DatastoreItem, type DatastoreResponse, type DiagnosableRun, type DiagnosisEvidence, EDR_PATTERNS, EMAIL_APP_PATTERNS, FORWARD_TICKETS_WORKFLOW_NAME, type FetchAppsOptions, INGEST_TICKETS_WORKFLOW_NAME, type IngestionCategory, IntegrationStatus, LocalLLMConfig, type LocalLLMConfigProps, type LocalLLMTestResult, MAX_ASK_AI_PANEL_WIDTH, MAX_AUTO_ASSIGNED_TOOLS, MIN_ASK_AI_PANEL_WIDTH, ShuffleMarkdown as Markdown, MarkdownJsonBlock, type OutputDiagnosis, type PageContextChoice, type ResolvedApp, type ResolvedContactUserInfo, SIEM_PATTERNS, type ShuffleHostProps, ShuffleMCP, type ShuffleMCPHandle, type ShuffleMCPProps, ShuffleMarkdown, type ShuffleMcpColorMode, ShuffleMcpThemeProvider, type ShuffleMcpThemeProviderProps, ShufflePipelinesBanner, type ShuffleTheme, SingulActionsPreview, type SupportEscalationContext, THREAT_INTEL_PATTERNS, TryMcpSection, type TryMcpSectionProps, UsageBar, type UsageBarProps, type UseAgentPromptPrefixOptions, VERIFIED_BUILTIN_APPS, VULN_SCANNER_PATTERNS, type ValidatedIngestionApp, VideoEmbed, applyRegionFromPayload, buildSupportEscalationUrl, checkAppNameMatch, clearPageContextChoice, ShuffleMCP as default, deleteDatastoreItem, deleteDatastoreItems, diagnoseOutputWarning, extractActionAppNames, extractValidatedIngestionApps, extractWorkflowActionAppNames, extractWorkflowAppNames, fetchApps, fetchAppsViaApiConfig, fetchConnectedTools, findForwardTicketsWorkflow, findIngestTicketsWorkflow, getActivePageEntityName, getAgentContextRules, getApiUrl, getAuthHeader, getCachedConnectedTools, getDatastoreByCategory, getDatastoreItem, getDatastoreItemPublic, getDatastorePageSize, getFailureInfo, getHostBaseUrl, getIngestionCategory, getPageContextChoice, hasOutputWarning, installFetchBreaker, invalidateAppsCache, invalidateResolvedApps, isAgentRoute, isCloud, isCloudDomain, isEmailApp, isIngestionApp, isOnprem, isShuffleCloudDomain, isShuffleSecurityBackend, isThreatIntelApp, isVulnScannerApp, isWorkflowScheduleStopped, mapCloudRegionUrl, matchRoutePattern, mergeConnectedTools, normalizeAppName, openSupportEscalation, parseRunResult, refreshAllIntegrationStatus, registerAgentContextRule, registerProtectedOrigin, resetRegionUrl, resolveAgentContext, resolveApp, resolveApps, resolveConnectedTools, resolveContactUserInfo, resolveVideoUrl, scheduleAgentRun, searchAgentActivity, seedResolvedApp, setCachedConnectedTools, setDatastoreItem, setDatastoreItems, setHostBaseUrl, setPageContextChoice, setRegionUrl, setRuntimeOrgId, setToastImpl, shuffleFetch, toast, useAgentPromptPrefix, useAppAuth, useAppAuthFlow, useAppDetail, useAppDetailOptional, useAppLookup, useContextAwareAgent, useSyncHostBaseUrl };
2401
+ export { AGENT_DRAWER_CLOSE_EVENT, AGENT_DRAWER_OPEN_EVENT, AGENT_DRAWER_STATE_EVENT, AGENT_PRESETS, AGENT_PROMPT_PREFIX_CATEGORY, API_CONFIG, ASK_AI_PANEL_WIDTH_STORAGE_KEY, AddAppModal, type AddAppModalProps, AgentActivityList, type AgentActivityListProps, type AgentActivityParams, type AgentActivityResponse, type AgentContextApp, type AgentContextRule, type AgentDecision, AgentExecutionDrawer, type AgentExecutionDrawerProps, AgentIcon, type AgentLocalModel, type AgentPreset, AgentPresets, type AgentPresetsProps, AgentPromptPrefixChip, type AgentPromptPrefixChipProps, type AgentResolvedContext, type AgentRun, AgentRunDiagnosisBanner, AgentRunDrawer, type AgentRunDrawerProps, type AgentRunDrawerTab, type AgentRunResult, AgentUI, type AgentUIApp, type AgentUIProps, AgentsView, type AgentsViewProps, AiAgentPromptsEditor, type AiAgentPromptsEditorProps, type AlgoliaSearchApp, type ApiAuthEntry, type ApiCallConfig, ApiCallViewer, type ApiCallViewerProps, AppAuthCard, type AppAuthCardProps, AppAuthConfig, AppAuthSection, type AppAuthSectionProps, type AppAuthState, type AppAuthentication$1 as AppAuthentication, AppDetailContent, type AppDetailContentProps, AppDetailDrawer, AppDetailProvider, type AppInfo, type AppLookupResult, AppSearchDrawer, type AppSelectedEvent, AppTitleHeader, type AppTitleHeaderProps, AskAiButton, type AskAiButtonProps, AskAiDrawer, type AskAiDrawerProps, AskAiSidePanel, type AskAiSidePanelProps, AskAiWidget, type AskAiWidgetProps, type AuthStatus, CASES_PATTERNS, COMMUNICATION_PATTERNS_NAMES, type CategoryAutomation, type CategoryConfig, type ConnectedToolApp, type CustomStyles, DATASTORE_CATEGORIES, DEFAULT_AGENT_CONTEXT_RULES, DEFAULT_AGENT_PROMPT_PREFIX, DEMO_AGENT_RUNS, type DatastoreDiagnostics, type DatastoreItem, type DatastoreResponse, type DiagnosableRun, type DiagnosisEvidence, EDR_PATTERNS, EMAIL_APP_PATTERNS, FORWARD_TICKETS_WORKFLOW_NAME, type FetchAppsOptions, INGEST_TICKETS_WORKFLOW_NAME, type IngestionCategory, IntegrationStatus, LocalLLMConfig, type LocalLLMConfigProps, type LocalLLMTestResult, MAX_ASK_AI_PANEL_WIDTH, MAX_AUTO_ASSIGNED_TOOLS, MIN_ASK_AI_PANEL_WIDTH, ShuffleMarkdown as Markdown, MarkdownJsonBlock, type OutputDiagnosis, type PageContextChoice, type ResolvedApp, type ResolvedContactUserInfo, SIEM_PATTERNS, type ShuffleHostProps, ShuffleMCP, type ShuffleMCPHandle, type ShuffleMCPProps, ShuffleMarkdown, type ShuffleMcpColorMode, ShuffleMcpThemeProvider, type ShuffleMcpThemeProviderProps, ShufflePipelinesBanner, type ShuffleTheme, SingulActionsPreview, type SupportEscalationContext, THREAT_INTEL_PATTERNS, TryMcpSection, type TryMcpSectionProps, UsageBar, type UsageBarProps, type UseAgentPromptPrefixOptions, VERIFIED_BUILTIN_APPS, VULN_SCANNER_PATTERNS, type ValidatedIngestionApp, VideoEmbed, applyRegionFromPayload, buildSupportEscalationUrl, checkAppNameMatch, clearPageContextChoice, ShuffleMCP as default, deleteDatastoreItem, deleteDatastoreItems, diagnoseOutputWarning, extractActionAppNames, extractValidatedIngestionApps, extractWorkflowActionAppNames, extractWorkflowAppNames, fetchApps, fetchAppsViaApiConfig, fetchConnectedTools, filterItemsByCategory, findForwardTicketsWorkflow, findIngestTicketsWorkflow, getActivePageEntityName, getAgentContextRules, getApiUrl, getAuthHeader, getCachedConnectedTools, getDatastoreByCategory, getDatastoreItem, getDatastoreItemPublic, getDatastorePageSize, getFailureInfo, getHostBaseUrl, getIngestionCategory, getPageContextChoice, hasOutputWarning, installFetchBreaker, invalidateAppsCache, invalidateResolvedApps, isAgentRoute, isCloud, isCloudDomain, isEmailApp, isIngestionApp, isOnprem, isShuffleCloudDomain, isShuffleSecurityBackend, isThreatIntelApp, isVulnScannerApp, isWorkflowScheduleStopped, mapCloudRegionUrl, matchRoutePattern, mergeConnectedTools, normalizeAppName, openSupportEscalation, parseRunResult, refreshAllIntegrationStatus, registerAgentContextRule, registerProtectedOrigin, resetRegionUrl, resolveAgentContext, resolveApp, resolveApps, resolveConnectedTools, resolveContactUserInfo, resolveVideoUrl, scheduleAgentRun, searchAgentActivity, seedResolvedApp, setCachedConnectedTools, setDatastoreItem, setDatastoreItems, setHostBaseUrl, setPageContextChoice, setRegionUrl, setRuntimeOrgId, setToastImpl, shuffleFetch, toast, useAgentPromptPrefix, useAppAuth, useAppAuthFlow, useAppDetail, useAppDetailOptional, useAppLookup, useContextAwareAgent, useSyncHostBaseUrl };