@elevasis/ui 2.58.0 → 2.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/auth/index.js +2 -2
  3. package/dist/charts/index.js +2 -2
  4. package/dist/{chunk-WZ3PL4O7.js → chunk-4N5GYO6R.js} +65 -15
  5. package/dist/{chunk-T73S4G4P.js → chunk-7AJKZM4F.js} +2 -0
  6. package/dist/components/chat/index.d.ts +3 -1
  7. package/dist/components/chat/index.js +1 -1
  8. package/dist/components/index.js +2 -2
  9. package/dist/components/navigation/index.js +2 -2
  10. package/dist/features/auth/index.js +3 -3
  11. package/dist/features/clients/index.js +2 -2
  12. package/dist/features/crm/index.js +2 -2
  13. package/dist/features/dashboard/index.js +2 -2
  14. package/dist/features/delivery/index.js +2 -2
  15. package/dist/features/knowledge/index.js +2 -2
  16. package/dist/features/lead-gen/index.js +2 -2
  17. package/dist/features/monitoring/index.js +2 -2
  18. package/dist/features/monitoring/requests/index.js +3 -3
  19. package/dist/features/operations/index.d.ts +2 -0
  20. package/dist/features/operations/index.js +2 -2
  21. package/dist/features/public-agent-chat/index.d.ts +94 -8
  22. package/dist/features/public-agent-chat/index.js +153 -31
  23. package/dist/features/settings/index.js +2 -2
  24. package/dist/hooks/access/index.js +2 -2
  25. package/dist/hooks/delivery/index.js +2 -2
  26. package/dist/hooks/index.d.ts +7 -1
  27. package/dist/hooks/index.js +2 -2
  28. package/dist/hooks/published.d.ts +7 -1
  29. package/dist/hooks/published.js +2 -2
  30. package/dist/index.d.ts +7 -1
  31. package/dist/index.js +2 -2
  32. package/dist/knowledge/index.js +3 -3
  33. package/dist/layout/index.js +2 -2
  34. package/dist/organization/index.js +2 -2
  35. package/dist/provider/index.js +2 -2
  36. package/dist/provider/published.js +2 -2
  37. package/package.json +5 -5
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { z } from 'zod';
2
3
  import * as _tanstack_react_query from '@tanstack/react-query';
3
4
 
4
5
  type MessageType = MessageEvent['type'];
@@ -81,13 +82,65 @@ type MessageEvent = {
81
82
  error?: string;
82
83
  };
83
84
 
84
- interface PublicAgentChatGrant {
85
- slug: string;
86
- resourceId: string;
87
- mode: 'public' | 'code' | string;
88
- requiresCode: boolean;
85
+ /**
86
+ * A single intake field definition stored in agent_access_grants.capture_fields.
87
+ *
88
+ * - key: machine identifier (e.g. "name", "company")
89
+ * - label: display label shown to the visitor
90
+ * - type: input type hint; defaults to "text" when absent
91
+ * - required: whether the visitor must fill this field; defaults to false
92
+ */
93
+ declare const CaptureFieldSchema: z.ZodObject<{
94
+ key: z.ZodString;
95
+ label: z.ZodString;
96
+ type: z.ZodOptional<z.ZodEnum<{
97
+ email: "email";
98
+ text: "text";
99
+ tel: "tel";
100
+ }>>;
101
+ required: z.ZodOptional<z.ZodBoolean>;
102
+ }, z.core.$strict>;
103
+ type CaptureField = z.infer<typeof CaptureFieldSchema>;
104
+ /**
105
+ * The public-facing grant shape returned by /authorize and /metadata endpoints.
106
+ *
107
+ * captureFields defaults to [] on the DB (NOT NULL); the schema field is
108
+ * .optional() for forward-compat, but callers should treat absence as [].
109
+ */
110
+ declare const PublicAgentChatGrantSchema: z.ZodObject<{
111
+ slug: z.ZodString;
112
+ resourceId: z.ZodString;
113
+ mode: z.ZodString;
114
+ requiresCode: z.ZodBoolean;
115
+ branding: z.ZodOptional<z.ZodObject<{
116
+ title: z.ZodOptional<z.ZodString>;
117
+ subtitle: z.ZodOptional<z.ZodString>;
118
+ displayName: z.ZodOptional<z.ZodString>;
119
+ agentName: z.ZodOptional<z.ZodString>;
120
+ name: z.ZodOptional<z.ZodString>;
121
+ description: z.ZodOptional<z.ZodString>;
122
+ headline: z.ZodOptional<z.ZodString>;
123
+ intro: z.ZodOptional<z.ZodString>;
124
+ instructions: z.ZodOptional<z.ZodArray<z.ZodString>>;
125
+ ctaLabel: z.ZodOptional<z.ZodString>;
126
+ greeting: z.ZodOptional<z.ZodString>;
127
+ agentOpens: z.ZodOptional<z.ZodBoolean>;
128
+ }, z.core.$strict>>;
129
+ captureFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
130
+ key: z.ZodString;
131
+ label: z.ZodString;
132
+ type: z.ZodOptional<z.ZodEnum<{
133
+ email: "email";
134
+ text: "text";
135
+ tel: "tel";
136
+ }>>;
137
+ required: z.ZodOptional<z.ZodBoolean>;
138
+ }, z.core.$strict>>>;
139
+ }, z.core.$strip>;
140
+ type PublicAgentChatGrant$1 = z.infer<typeof PublicAgentChatGrantSchema>;
141
+
142
+ interface PublicAgentChatGrant extends Omit<PublicAgentChatGrant$1, 'branding'> {
89
143
  branding?: unknown;
90
- captureFields?: unknown;
91
144
  maxTurnsPerSession?: number;
92
145
  }
93
146
  interface PublicAgentChatMetadataResponse {
@@ -128,7 +181,32 @@ interface PublicAgentChatConnectionState {
128
181
 
129
182
  /**
130
183
  * Context passed to the `renderIntro` render-prop. Provides the start action,
131
- * loading state, resolved display strings, raw branding, and the agent slug.
184
+ * loading state, resolved display strings, raw branding, the agent slug, and the
185
+ * grant's intake (`captureFields`) surface so a custom intro can render the same
186
+ * welcome form the default intro draws.
187
+ *
188
+ * A minimal custom intro that renders the intake form looks like:
189
+ *
190
+ * ```tsx
191
+ * renderIntro={({ start, starting, captureFields, intakeValues, setIntakeValue }) => (
192
+ * <Stack>
193
+ * <Title>Welcome!</Title>
194
+ * {captureFields.map((field) => (
195
+ * <TextInput
196
+ * key={field.key}
197
+ * label={field.label}
198
+ * required={field.required ?? false}
199
+ * value={intakeValues[field.key] ?? ''}
200
+ * onChange={(e) => setIntakeValue(field.key, e.currentTarget.value)}
201
+ * />
202
+ * ))}
203
+ * <Button onClick={start} loading={starting}>Start</Button>
204
+ * </Stack>
205
+ * )}
206
+ * ```
207
+ *
208
+ * Values written via `setIntakeValue` flow into the session `metadata` on `start()`
209
+ * exactly as the default intro's form does (so `name` titles the session).
132
210
  */
133
211
  interface PublicAgentIntroRenderContext {
134
212
  /** Begins the authorize → session flow (the same action the default CTA runs). */
@@ -141,6 +219,12 @@ interface PublicAgentIntroRenderContext {
141
219
  /** Raw grant branding record, so a custom intro can still read intro/instructions/etc. if it wants. */
142
220
  branding: Record<string, unknown>;
143
221
  slug: string;
222
+ /** The grant's resolved, validated intake fields (`[]` when none). Map these to inputs. */
223
+ captureFields: CaptureField[];
224
+ /** Current collected intake values, keyed by `CaptureField.key`. */
225
+ intakeValues: Record<string, string>;
226
+ /** Writes a single intake value; flows into session metadata on `start()`. */
227
+ setIntakeValue: (key: string, value: string) => void;
144
228
  }
145
229
  interface PublicAgentChatProps {
146
230
  apiUrl: string;
@@ -188,6 +272,8 @@ declare function usePublicAgentChatWebSocket(sessionId: string | null, apiUrl: s
188
272
  sendMessage: (text: string) => void;
189
273
  clearError: () => void;
190
274
  lastTokenUsage: SessionTokenUsage | null;
275
+ endSession: () => void;
276
+ ended: boolean;
191
277
  };
192
278
 
193
279
  declare const publicAgentChatKeys: {
@@ -196,4 +282,4 @@ declare const publicAgentChatKeys: {
196
282
  };
197
283
 
198
284
  export { PublicAgentChat, PublicAgentChatRoutePage, publicAgentChatKeys, usePublicAgentChatMessages, usePublicAgentChatWebSocket };
199
- export type { PublicAgentChatAuthorizeResponse, PublicAgentChatConnectionState, PublicAgentChatGrant, PublicAgentChatMessagesResponse, PublicAgentChatMetadataResponse, PublicAgentChatProps, PublicAgentChatRoutePageProps, PublicAgentChatSessionResponse, PublicAgentIntroRenderContext };
285
+ export type { CaptureField, PublicAgentChatAuthorizeResponse, PublicAgentChatConnectionState, PublicAgentChatGrant, PublicAgentChatMessagesResponse, PublicAgentChatMetadataResponse, PublicAgentChatProps, PublicAgentChatRoutePageProps, PublicAgentChatSessionResponse, PublicAgentIntroRenderContext };
@@ -1,12 +1,13 @@
1
- import { getWebSocketBaseUrl, createLiveTempMessageIdentity, formatMessageEvent, WebSocketSessionTurnSchema, mergeSessionMessages } from '../../chunk-M7WWRZ5Z.js';
2
- import { ChatInterface } from '../../chunk-T73S4G4P.js';
1
+ import { WebSocketSessionTurnSchema, getWebSocketBaseUrl, createLiveTempMessageIdentity, formatMessageEvent, mergeSessionMessages } from '../../chunk-M7WWRZ5Z.js';
2
+ import { ChatInterface } from '../../chunk-7AJKZM4F.js';
3
3
  import { WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, validateTokenLimit, TOKEN_LIMITS } from '../../chunk-FVOMKZ7S.js';
4
- import '../../chunk-TVTSASST.js';
4
+ import { UuidSchema } from '../../chunk-TVTSASST.js';
5
5
  import '../../chunk-I2KLQ2HA.js';
6
- import { Center, Loader, Paper, Stack, Group, Title, Alert, PasswordInput, Button, Text, List, Box, Badge, Divider } from '@mantine/core';
7
- import { IconLock, IconAlertCircle, IconSend, IconMessageCircle } from '@tabler/icons-react';
6
+ import { Center, Loader, Paper, Stack, Group, Title, Alert, PasswordInput, Button, Text, List, TextInput, Box, Badge, Divider } from '@mantine/core';
7
+ import { IconLock, IconAlertCircle, IconSend, IconX, IconMessageCircle } from '@tabler/icons-react';
8
8
  import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
9
9
  import { useQuery, useQueryClient } from '@tanstack/react-query';
10
+ import { z } from 'zod';
10
11
  import { jsx, jsxs } from 'react/jsx-runtime';
11
12
 
12
13
  // src/features/public-agent-chat/queryKeys.ts
@@ -42,6 +43,64 @@ function usePublicAgentChatMessages(apiUrl, sessionId, capabilityToken) {
42
43
  staleTime: 0
43
44
  });
44
45
  }
46
+ var CaptureFieldSchema = z.object({
47
+ key: z.string().min(1).max(100),
48
+ label: z.string().min(1).max(200),
49
+ type: z.enum(["text", "email", "tel"]).optional(),
50
+ required: z.boolean().optional()
51
+ }).strict();
52
+ var WebSocketSessionEndSchema = z.object({
53
+ type: z.literal("session:end")
54
+ }).strict();
55
+ z.discriminatedUnion("type", [
56
+ WebSocketSessionTurnSchema,
57
+ WebSocketSessionEndSchema
58
+ ]);
59
+ var WebSocketSessionEndedEventSchema = z.object({
60
+ type: z.literal("session:ended"),
61
+ sessionId: z.string()
62
+ }).strict();
63
+ z.object({
64
+ slug: z.string().min(1).max(120).regex(/^[a-zA-Z0-9._-]+$/)
65
+ }).strict();
66
+ z.object({
67
+ sessionId: UuidSchema
68
+ }).strict();
69
+ z.object({
70
+ code: z.string().min(1).max(200).optional(),
71
+ visitorId: z.string().min(1).max(120).optional()
72
+ }).strict();
73
+ z.object({
74
+ capabilityToken: z.string().min(32).optional(),
75
+ metadata: z.record(z.string(), z.unknown()).optional()
76
+ }).strict();
77
+ z.object({
78
+ token: z.string().min(32)
79
+ }).strict();
80
+ var PublicAgentChatBrandingSchema = z.object({
81
+ title: z.string().optional(),
82
+ subtitle: z.string().optional(),
83
+ displayName: z.string().optional(),
84
+ agentName: z.string().optional(),
85
+ name: z.string().optional(),
86
+ description: z.string().optional(),
87
+ headline: z.string().optional(),
88
+ intro: z.string().optional(),
89
+ instructions: z.array(z.string()).optional(),
90
+ ctaLabel: z.string().optional(),
91
+ greeting: z.string().optional(),
92
+ agentOpens: z.boolean().optional()
93
+ }).strict();
94
+ z.object({
95
+ slug: z.string(),
96
+ resourceId: z.string(),
97
+ mode: z.string(),
98
+ requiresCode: z.boolean(),
99
+ branding: PublicAgentChatBrandingSchema.optional(),
100
+ captureFields: z.array(CaptureFieldSchema).optional()
101
+ });
102
+
103
+ // src/features/public-agent-chat/usePublicAgentChatWebSocket.ts
45
104
  function usePublicAgentChatWebSocket(sessionId, apiUrl, capabilityToken) {
46
105
  const [messages, setMessages] = useState([]);
47
106
  const [state, setState] = useState({
@@ -50,6 +109,7 @@ function usePublicAgentChatWebSocket(sessionId, apiUrl, capabilityToken) {
50
109
  error: null
51
110
  });
52
111
  const [lastTokenUsage, setLastTokenUsage] = useState(null);
112
+ const [ended, setEnded] = useState(false);
53
113
  const wsRef = useRef(null);
54
114
  const retryCountRef = useRef(0);
55
115
  const reconnectTimeoutRef = useRef(null);
@@ -81,7 +141,13 @@ function usePublicAgentChatWebSocket(sessionId, apiUrl, capabilityToken) {
81
141
  ws.onmessage = (event) => {
82
142
  try {
83
143
  const data = JSON.parse(event.data);
84
- if (data.type && data.type !== "turn:complete" && data.type !== "error") {
144
+ if (data.type === "session:ended") {
145
+ const parsed = WebSocketSessionEndedEventSchema.safeParse(data);
146
+ if (parsed.success) {
147
+ setEnded(true);
148
+ setState((prev) => ({ ...prev, isProcessing: false, isConnected: false }));
149
+ }
150
+ } else if (data.type && data.type !== "turn:complete" && data.type !== "error") {
85
151
  const liveIdentity = createLiveTempMessageIdentity();
86
152
  const tempMessage = {
87
153
  id: liveIdentity.id,
@@ -189,12 +255,21 @@ function usePublicAgentChatWebSocket(sessionId, apiUrl, capabilityToken) {
189
255
  const clearError = useCallback(() => {
190
256
  setState((prev) => ({ ...prev, error: null }));
191
257
  }, []);
258
+ const endSession = useCallback(() => {
259
+ if (!wsRef.current || wsRef.current.readyState !== WebSocket.OPEN) {
260
+ return;
261
+ }
262
+ const message = WebSocketSessionEndSchema.parse({ type: "session:end" });
263
+ wsRef.current.send(JSON.stringify(message));
264
+ }, []);
192
265
  return {
193
266
  messages,
194
267
  state,
195
268
  sendMessage,
196
269
  clearError,
197
- lastTokenUsage
270
+ lastTokenUsage,
271
+ endSession,
272
+ ended
198
273
  };
199
274
  }
200
275
  async function fetchJson(url, init) {
@@ -234,6 +309,13 @@ function hasIntroContent(grant) {
234
309
  const hasInstructions = Array.isArray(branding.instructions) && branding.instructions.length > 0;
235
310
  return hasIntroText || hasInstructions;
236
311
  }
312
+ function resolveCaptureFields(grant) {
313
+ const fields = grant?.captureFields;
314
+ if (!Array.isArray(fields) || fields.length === 0) return [];
315
+ return fields.filter(
316
+ (f) => f !== null && typeof f === "object" && typeof f.key === "string" && typeof f.label === "string"
317
+ );
318
+ }
237
319
  function statusStyles(tone) {
238
320
  if (tone === "ready") {
239
321
  return {
@@ -272,6 +354,7 @@ function PublicAgentChatFrame({
272
354
  title,
273
355
  subtitle,
274
356
  statusTone,
357
+ headerActions,
275
358
  children
276
359
  }) {
277
360
  const status = statusStyles(statusTone);
@@ -339,22 +422,24 @@ function PublicAgentChatFrame({
339
422
  subtitle && /* @__PURE__ */ jsx(Text, { size: "sm", style: { color: "var(--color-text-dimmed)" }, lineClamp: 1, children: subtitle })
340
423
  ] })
341
424
  ] }),
342
- /* @__PURE__ */ jsx(
343
- Badge,
344
- {
345
- variant: "outline",
346
- size: "md",
347
- style: {
348
- flexShrink: 0,
349
- background: status.background,
350
- color: status.color,
351
- border: status.border,
352
- textTransform: "none",
353
- letterSpacing: 0
354
- },
355
- children: status.label
356
- }
357
- )
425
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "center", style: { flexShrink: 0 }, children: [
426
+ /* @__PURE__ */ jsx(
427
+ Badge,
428
+ {
429
+ variant: "outline",
430
+ size: "md",
431
+ style: {
432
+ background: status.background,
433
+ color: status.color,
434
+ border: status.border,
435
+ textTransform: "none",
436
+ letterSpacing: 0
437
+ },
438
+ children: status.label
439
+ }
440
+ ),
441
+ headerActions
442
+ ] })
358
443
  ] })
359
444
  }
360
445
  ),
@@ -397,6 +482,10 @@ function PublicAgentChat({
397
482
  const [accessCode, setAccessCode] = useState("");
398
483
  const [input, setInput] = useState("");
399
484
  const [isCreatingSession, setIsCreatingSession] = useState(false);
485
+ const [intakeValues, setIntakeValues] = useState({});
486
+ const setIntakeValue = useCallback((key, value) => {
487
+ setIntakeValues((prev) => ({ ...prev, [key]: value }));
488
+ }, []);
400
489
  const autoStartedRef = useRef(false);
401
490
  const greetingTimeRef = useRef(/* @__PURE__ */ new Date());
402
491
  const displayTitle = resolveAgentTitle(title, slug, grant);
@@ -406,7 +495,9 @@ function PublicAgentChat({
406
495
  messages: liveMessages,
407
496
  state,
408
497
  sendMessage,
409
- clearError
498
+ clearError,
499
+ endSession,
500
+ ended
410
501
  } = usePublicAgentChatWebSocket(session?.sessionId ?? null, apiUrl, capabilityToken);
411
502
  useEffect(() => {
412
503
  let cancelled = false;
@@ -421,7 +512,7 @@ function PublicAgentChat({
421
512
  setGrant(payload.grant);
422
513
  if (payload.grant.requiresCode) {
423
514
  setStatus("code-required");
424
- } else if (renderIntro || hasIntroContent(payload.grant)) {
515
+ } else if (renderIntro || hasIntroContent(payload.grant) || resolveCaptureFields(payload.grant).length > 0) {
425
516
  setStatus("intro");
426
517
  } else {
427
518
  setStatus("authorizing");
@@ -500,6 +591,7 @@ function PublicAgentChat({
500
591
  }
501
592
  );
502
593
  setCapabilityToken(authorization.capabilityToken);
594
+ const mergedMetadata = Object.keys(intakeValues).length > 0 ? { ...intakeValues, ...metadata } : metadata;
503
595
  const createdSession = await fetchJson(
504
596
  `${apiUrl}/api/public/agent-chat/${encodeURIComponent(slug)}/sessions`,
505
597
  {
@@ -507,7 +599,7 @@ function PublicAgentChat({
507
599
  headers: { "Content-Type": "application/json" },
508
600
  body: JSON.stringify({
509
601
  capabilityToken: authorization.capabilityToken,
510
- ...metadata ? { metadata } : {}
602
+ ...mergedMetadata ? { metadata: mergedMetadata } : {}
511
603
  })
512
604
  }
513
605
  );
@@ -520,10 +612,10 @@ function PublicAgentChat({
520
612
  setStatus(grant.requiresCode ? "code-required" : "error");
521
613
  }
522
614
  },
523
- [apiUrl, grant, metadata, onSessionReady, slug, visitorId]
615
+ [apiUrl, grant, intakeValues, metadata, onSessionReady, slug, visitorId]
524
616
  );
525
617
  useEffect(() => {
526
- if (!grant || grant.requiresCode || renderIntro || hasIntroContent(grant) || autoStartedRef.current) {
618
+ if (!grant || grant.requiresCode || renderIntro || hasIntroContent(grant) || resolveCaptureFields(grant).length > 0 || autoStartedRef.current) {
527
619
  return;
528
620
  }
529
621
  autoStartedRef.current = true;
@@ -552,7 +644,7 @@ function PublicAgentChat({
552
644
  }, [historyMessages, liveMessages, grant]);
553
645
  const handleSend = () => {
554
646
  const trimmed = input.trim();
555
- if (!trimmed || state.isProcessing || isCreatingSession) return;
647
+ if (!trimmed || state.isProcessing || isCreatingSession || ended) return;
556
648
  if (!session && capabilityToken) {
557
649
  setInput("");
558
650
  setIsCreatingSession(true);
@@ -645,7 +737,10 @@ function PublicAgentChat({
645
737
  title: displayTitle,
646
738
  subtitle: displaySubtitle,
647
739
  branding,
648
- slug
740
+ slug,
741
+ captureFields: resolveCaptureFields(grant),
742
+ intakeValues,
743
+ setIntakeValue
649
744
  };
650
745
  return /* @__PURE__ */ jsx(
651
746
  PublicAgentChatFrame,
@@ -663,6 +758,7 @@ function PublicAgentChat({
663
758
  const introText = brandingText(branding.intro);
664
759
  const instructions = Array.isArray(branding.instructions) ? branding.instructions.filter((item) => typeof item === "string") : [];
665
760
  const ctaLabel = brandingText(branding.ctaLabel) ?? "Start the conversation";
761
+ const captureFields = resolveCaptureFields(grant);
666
762
  return /* @__PURE__ */ jsx(
667
763
  PublicAgentChatFrame,
668
764
  {
@@ -687,6 +783,18 @@ function PublicAgentChat({
687
783
  headlineText && /* @__PURE__ */ jsx(Title, { order: 2, children: headlineText }),
688
784
  introText && /* @__PURE__ */ jsx(Text, { size: "sm", style: { color: "var(--color-text)", lineHeight: 1.6 }, children: introText }),
689
785
  instructions.length > 0 && /* @__PURE__ */ jsx(List, { size: "sm", style: { color: "var(--color-text-dimmed)" }, children: instructions.map((item, index) => /* @__PURE__ */ jsx(List.Item, { children: item }, index)) }),
786
+ captureFields.length > 0 && /* @__PURE__ */ jsx(Stack, { gap: "sm", children: captureFields.map((field) => /* @__PURE__ */ jsx(
787
+ TextInput,
788
+ {
789
+ label: field.label,
790
+ type: field.type ?? "text",
791
+ required: field.required ?? false,
792
+ value: intakeValues[field.key] ?? "",
793
+ onChange: (event) => setIntakeValue(field.key, event.currentTarget.value),
794
+ autoComplete: field.type === "email" ? "email" : field.type === "tel" ? "tel" : "off"
795
+ },
796
+ field.key
797
+ )) }),
690
798
  /* @__PURE__ */ jsx(
691
799
  Button,
692
800
  {
@@ -716,6 +824,18 @@ function PublicAgentChat({
716
824
  }
717
825
  );
718
826
  }
827
+ const endButton = session ? ended ? /* @__PURE__ */ jsx(Text, { size: "xs", style: { color: "var(--color-text-dimmed)", flexShrink: 0 }, children: "Conversation ended" }) : /* @__PURE__ */ jsx(
828
+ Button,
829
+ {
830
+ size: "xs",
831
+ variant: "subtle",
832
+ color: "gray",
833
+ leftSection: /* @__PURE__ */ jsx(IconX, { size: 13 }),
834
+ onClick: () => endSession(),
835
+ style: { flexShrink: 0 },
836
+ children: "End conversation"
837
+ }
838
+ ) : null;
719
839
  return /* @__PURE__ */ jsx(
720
840
  PublicAgentChatFrame,
721
841
  {
@@ -724,6 +844,7 @@ function PublicAgentChat({
724
844
  title: displayTitle,
725
845
  subtitle: displaySubtitle,
726
846
  statusTone: state.isConnected || !session && capabilityToken ? "ready" : "loading",
847
+ headerActions: endButton,
727
848
  children: /* @__PURE__ */ jsx(Box, { style: { flex: "1 1 auto", minHeight: 0, display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ jsx(
728
849
  ChatInterface,
729
850
  {
@@ -734,11 +855,12 @@ function PublicAgentChat({
734
855
  style: { flex: "1 1 auto", minHeight: 0, height: "100%" },
735
856
  isProcessing: state.isProcessing || isCreatingSession,
736
857
  isConnected: state.isConnected || !session && capabilityToken !== null,
858
+ inputDisabled: ended,
737
859
  error: state.error,
738
860
  onClearError: clearError,
739
861
  emptyStateText: "No messages yet",
740
862
  emptyStateSubtext: "Send a message to start the conversation",
741
- placeholder: "Message the agent...",
863
+ placeholder: ended ? "This conversation has ended" : "Message the agent...",
742
864
  messageAreaVariant: "grid",
743
865
  showAgentActivity
744
866
  }
@@ -1,4 +1,4 @@
1
- export { AccountSettings, AppearanceSettings, CreateWebhookEndpointModal, EditCredentialModal, EditWebhookEndpointModal, MemberAccessModal, MyRolesPage, OAuthIntegrationsCard, OrgMembersList, OrganizationSettings, WebhookEndpointList, WebhookEndpointSettings, settingsManifest } from '../../chunk-WZ3PL4O7.js';
1
+ export { AccountSettings, AppearanceSettings, CreateWebhookEndpointModal, EditCredentialModal, EditWebhookEndpointModal, MemberAccessModal, MyRolesPage, OAuthIntegrationsCard, OrgMembersList, OrganizationSettings, WebhookEndpointList, WebhookEndpointSettings, settingsManifest } from '../../chunk-4N5GYO6R.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-ZTWA5H77.js';
@@ -12,7 +12,7 @@ import '../../chunk-S3XR4II4.js';
12
12
  import '../../chunk-LO7GWG24.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-M7WWRZ5Z.js';
15
- import '../../chunk-T73S4G4P.js';
15
+ import '../../chunk-7AJKZM4F.js';
16
16
  import '../../chunk-2IFYDILW.js';
17
17
  import '../../chunk-Q7DJKLEN.js';
18
18
  import '../../chunk-HENXLGVD.js';
@@ -1,4 +1,4 @@
1
- export { AccessKeys, useAccess } from '../../chunk-WZ3PL4O7.js';
1
+ export { AccessKeys, useAccess } from '../../chunk-4N5GYO6R.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-ZTWA5H77.js';
@@ -12,7 +12,7 @@ import '../../chunk-S3XR4II4.js';
12
12
  import '../../chunk-LO7GWG24.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-M7WWRZ5Z.js';
15
- import '../../chunk-T73S4G4P.js';
15
+ import '../../chunk-7AJKZM4F.js';
16
16
  import '../../chunk-2IFYDILW.js';
17
17
  import '../../chunk-Q7DJKLEN.js';
18
18
  import '../../chunk-HENXLGVD.js';
@@ -1,4 +1,4 @@
1
- export { milestoneKeys, noteKeys, projectKeys, taskKeys, useCreateMilestone, useCreateNote, useCreateProject, useCreateTask, useDeleteMilestone, useDeleteProject, useDeleteTask2 as useDeleteTask, useMilestones, useProject, useProjectMilestones, useProjectNotes, useProjectTasks, useProjects, useTasks, useUpdateMilestone, useUpdateProject, useUpdateTask } from '../../chunk-WZ3PL4O7.js';
1
+ export { milestoneKeys, noteKeys, projectKeys, taskKeys, useCreateMilestone, useCreateNote, useCreateProject, useCreateTask, useDeleteMilestone, useDeleteProject, useDeleteTask2 as useDeleteTask, useMilestones, useProject, useProjectMilestones, useProjectNotes, useProjectTasks, useProjects, useTasks, useUpdateMilestone, useUpdateProject, useUpdateTask } from '../../chunk-4N5GYO6R.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-ZTWA5H77.js';
@@ -12,7 +12,7 @@ import '../../chunk-S3XR4II4.js';
12
12
  import '../../chunk-LO7GWG24.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-M7WWRZ5Z.js';
15
- import '../../chunk-T73S4G4P.js';
15
+ import '../../chunk-7AJKZM4F.js';
16
16
  import '../../chunk-2IFYDILW.js';
17
17
  import '../../chunk-Q7DJKLEN.js';
18
18
  import '../../chunk-HENXLGVD.js';
@@ -7063,6 +7063,7 @@ interface SessionListItem {
7063
7063
  resourceId: string;
7064
7064
  turnCount: number;
7065
7065
  isEnded: boolean;
7066
+ title?: string | null;
7066
7067
  createdAt: Date;
7067
7068
  updatedAt: Date;
7068
7069
  }
@@ -7329,6 +7330,11 @@ declare function useCreateSession(): _tanstack_react_query.UseMutationResult<Cre
7329
7330
  * Hook to delete a session.
7330
7331
  */
7331
7332
  declare function useDeleteSession(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
7333
+ /**
7334
+ * Hook to end a session (preserves history, blocks new turns).
7335
+ * Mirrors useDeleteSession — invalidates session detail + list on success.
7336
+ */
7337
+ declare function useEndSession(): _tanstack_react_query.UseMutationResult<void, Error, string, unknown>;
7332
7338
  /**
7333
7339
  * Hook to archive a session.
7334
7340
  */
@@ -10474,5 +10480,5 @@ declare function useCreateNote(): _tanstack_react_query.UseMutationResult<{
10474
10480
  type?: string;
10475
10481
  }, "organization_id">, unknown>;
10476
10482
 
10477
- export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, acquisitionListKeys, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, mergeSessionMessages, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, 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, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask$1 as useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
10483
+ export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, WebhookEndpointService, acquisitionListKeys, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, mergeSessionMessages, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, 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, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask$1 as useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMergedExecution, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
10478
10484
  export type { AccessKeyInput, AcqCompanyWithCount, AcqContactWithCompany, AcqDealNote, AcqDealTask, AcqDealTaskKind, ActivityFilters, ActivityTrendResponse, AddCompaniesToListResult, AddContactsToListResult, AssignRoleInput, BulkDeleteExecutionsParams, BulkDeleteExecutionsResult, BusinessImpactMetrics, CancelExecutionParams, CancelExecutionResult, ChatMessage, ClientDetailResponse, ClientResponse, ClientStatus, ClientStatusResponse, ClientsListFilters, CreateApiKeyRequest, CreateApiKeyResponse, CreateClientRequest, CreateCredentialRequest, CreateCredentialResponse, CreateOrgRoleInput, CreateScheduleInput, CreateSessionResponse, CredentialListItem, DealDetail, DealLookupFilters, DealLookupItem, DealSummaryStageItem, DealsSummaryResponse, DeleteExecutionParams, Deployment, ErrorDistributionItem, ErrorDistributionParams, ErrorFilters, ErrorTrendsParams, ExecuteActionInput, ExecuteAsyncParams, ExecuteAsyncResult, ExecutionErrorDetails, ExecutionHistoryItem, ExecutionHistoryResponse, ExecutionLogsFilters, ExecutionLogsPageResponse, FailingResource, GetMessagesResponse, ListActivitiesResponse, ListApiKeysResponse, ListCredentialsResponse, ListExecutionsFilters, ListRecordsFilters, ListSchedulesFilters, ListSchedulesResponse, ListWebhookEndpointsResponse, MessageEvent, MessageType, OrgRole, RemoveCompaniesFromListResult, RequestRow, RequestSeverity, RequestType, RequestsListFilters, ResourceFilterFacet, ResourcesResponse, RetryExecutionParams, RevokeRoleInput, SessionDTO, SessionExecution, SessionExecutionsResponse, SessionListItem, SessionTokenUsage, SortDirection, SortState, StaleDealSummaryItem, StatefulItem, StatusFilter, SubmitActionRequest, SubmitActionResponse, SubmitRequestInput, SystemHealthExecutionSummary, SystemHealthResponse, TaskSchedule, TopFailingResourcesParams, TransitionItemInput, TransitionListCompanyInput, TransitionListMemberInput, TransitionStateInput, UpdateClientRequest, UpdateListStatusInput, UpdateOrgRoleInput, UpdateScheduleInput, UseAccessResult, UseActivitiesParams, UseActivityTrendParams, UseArtifactsParams, UseBatchedResourcesHealthParams, UseExecuteResourceOptions, UseExecutionHealthParams, UseExecutionLogsParams, UseExecutionPanelStateOptions, UseExecutionPanelStateReturn, UseExecutionSSEOptions, UseExecutionSSEResult, UseInFlightExecutionsOptions, UseListProgressOptions, UseNotificationCountArgs, UseResourcesHealthParams, UseSSEConnectionOptions, UseScheduledTasksOptions, UseSystemHealthParams, UseWorkflowExecutionOptions, UseWorkflowExecutionResult, VerifyCredentialResponse, WebSocketState, WorkflowExecutionTriggerParams };
@@ -1,4 +1,4 @@
1
- export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, 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, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask2 as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution } from '../chunk-WZ3PL4O7.js';
1
+ export { AccessKeys, ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, getResourceFilterFacetIds, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, milestoneKeys, noteKeys, observabilityKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useAccess, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, 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, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask2 as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteOrgRole, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useEndSession, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useInFlightExecutions, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSubmitRequest, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution } from '../chunk-4N5GYO6R.js';
2
2
  import '../chunk-NZ2F5RQ4.js';
3
3
  import '../chunk-OJJK27GC.js';
4
4
  import '../chunk-ZTWA5H77.js';
@@ -12,7 +12,7 @@ import '../chunk-S3XR4II4.js';
12
12
  import '../chunk-LO7GWG24.js';
13
13
  import '../chunk-DD3CCMCZ.js';
14
14
  export { mergeSessionMessages } from '../chunk-M7WWRZ5Z.js';
15
- import '../chunk-T73S4G4P.js';
15
+ import '../chunk-7AJKZM4F.js';
16
16
  import '../chunk-2IFYDILW.js';
17
17
  import '../chunk-Q7DJKLEN.js';
18
18
  import '../chunk-HENXLGVD.js';