@erdoai/ui 0.1.6 → 0.1.9

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/README.md CHANGED
@@ -18,16 +18,13 @@ npm install react react-dom @tanstack/react-query
18
18
 
19
19
  ### 1. Set up the Provider
20
20
 
21
+ **Important**: Never expose your API key to the browser. Keep it server-side only.
22
+
21
23
  ```tsx
22
24
  import { ErdoProvider } from '@erdoai/ui';
23
- import { ErdoClient } from '@erdoai/server';
24
25
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
25
26
 
26
27
  const queryClient = new QueryClient();
27
- const erdoClient = new ErdoClient({
28
- endpoint: 'https://api.erdo.ai',
29
- authToken: process.env.ERDO_API_KEY,
30
- });
31
28
 
32
29
  function App() {
33
30
  return (
@@ -35,7 +32,7 @@ function App() {
35
32
  <ErdoProvider
36
33
  config={{
37
34
  baseUrl: 'https://api.erdo.ai',
38
- client: erdoClient,
35
+ sessionToken: 'user-session-token', // Short-lived token from your server
39
36
  }}
40
37
  >
41
38
  <YourApp />
@@ -45,32 +42,72 @@ function App() {
45
42
  }
46
43
  ```
47
44
 
48
- ### 2. Invoke Agents and Render Results
45
+ ### 2. Invoke Agents (Server-Side) and Render Results
46
+
47
+ Agent invocations must happen on your server to keep your API key secret:
49
48
 
50
49
  ```tsx
51
- import { useInvocation, Content } from '@erdoai/ui';
50
+ // app/api/analyze/route.ts (SERVER SIDE)
51
+ import { ErdoClient } from '@erdoai/server';
52
52
 
53
- function ChatInterface() {
54
- const { result, isStreaming, invoke } = useInvocation();
53
+ const client = new ErdoClient({
54
+ authToken: process.env.ERDO_API_KEY, // Secret - never exposed to browser
55
+ });
55
56
 
56
- const handleSubmit = async (query: string) => {
57
- await invoke('data-analyst', { query });
57
+ export async function POST(request: Request) {
58
+ const { query } = await request.json();
59
+
60
+ const encoder = new TextEncoder();
61
+ const stream = new ReadableStream({
62
+ async start(controller) {
63
+ for await (const event of client.invokeStream('data-analyst', {
64
+ messages: [{ role: 'user', content: query }],
65
+ })) {
66
+ controller.enqueue(encoder.encode(`data: ${JSON.stringify(event)}\n\n`));
67
+ }
68
+ controller.close();
69
+ },
70
+ });
71
+
72
+ return new Response(stream, {
73
+ headers: { 'Content-Type': 'text/event-stream' },
74
+ });
75
+ }
76
+ ```
77
+
78
+ ```tsx
79
+ // components/chat-interface.tsx (CLIENT SIDE)
80
+ import { useState } from 'react';
81
+ import { Content, type ContentItem } from '@erdoai/ui';
82
+
83
+ function ChatInterface() {
84
+ const [contents, setContents] = useState<ContentItem[]>([]);
85
+ const [isLoading, setIsLoading] = useState(false);
86
+
87
+ const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
88
+ e.preventDefault();
89
+ const query = new FormData(e.currentTarget).get('query') as string;
90
+ setIsLoading(true);
91
+
92
+ const response = await fetch('/api/analyze', {
93
+ method: 'POST',
94
+ body: JSON.stringify({ query }),
95
+ });
96
+ // Parse SSE stream and update contents...
97
+ setIsLoading(false);
58
98
  };
59
99
 
60
100
  return (
61
101
  <div>
62
- <form onSubmit={(e) => {
63
- e.preventDefault();
64
- handleSubmit(e.target.query.value);
65
- }}>
102
+ <form onSubmit={handleSubmit}>
66
103
  <input name="query" placeholder="Ask a question..." />
67
- <button type="submit" disabled={isStreaming}>
68
- {isStreaming ? 'Analyzing...' : 'Send'}
104
+ <button type="submit" disabled={isLoading}>
105
+ {isLoading ? 'Analyzing...' : 'Send'}
69
106
  </button>
70
107
  </form>
71
108
 
72
- {result?.contents.map((content) => (
73
- <Content key={content.id} item={content} />
109
+ {contents.map((content) => (
110
+ <Content key={content.id} content={content} />
74
111
  ))}
75
112
  </div>
76
113
  );
@@ -86,9 +123,20 @@ Automatically renders the appropriate component based on content type:
86
123
  ```tsx
87
124
  import { Content } from '@erdoai/ui';
88
125
 
89
- <Content item={contentItem} />
126
+ <Content content={contentItem} />
127
+
128
+ // Override specific content type renderers
129
+ <Content
130
+ content={contentItem}
131
+ components={{
132
+ 'bot_invocation': MyBotInvocationComponent,
133
+ 'my_custom_type': MyCustomRenderer,
134
+ }}
135
+ />
90
136
  ```
91
137
 
138
+ The `components` prop lets you override how specific content types are rendered. The component receives `{ content, className }` props.
139
+
92
140
  ### Individual Renderers
93
141
 
94
142
  ```tsx
@@ -234,41 +282,31 @@ const { zoomDomain, setZoomDomain, resetZoom } = useChartZoom();
234
282
 
235
283
  ## Provider Configuration
236
284
 
237
- ### Standard Configuration (REST API)
285
+ > **Security**: Never use `authToken` on the client side. Your API key must stay server-side only.
238
286
 
239
- ```tsx
240
- <ErdoProvider
241
- config={{
242
- baseUrl: 'https://api.erdo.ai',
243
- authToken: 'your-api-key',
244
- }}
245
- >
246
- ```
287
+ ### With Session Token (Recommended for B2B2C)
247
288
 
248
- ### With ErdoClient
289
+ Session tokens are short-lived tokens created by your server for end users:
249
290
 
250
291
  ```tsx
251
- import { ErdoClient } from '@erdoai/server';
252
-
253
- const client = new ErdoClient({ authToken: 'your-api-key' });
254
-
255
292
  <ErdoProvider
256
293
  config={{
257
294
  baseUrl: 'https://api.erdo.ai',
258
- client,
295
+ sessionToken: userSessionToken, // Created by your server
259
296
  }}
260
297
  >
261
298
  ```
262
299
 
263
300
  ### Custom Data Fetcher
264
301
 
265
- For custom backends or authentication:
302
+ For custom backends or when proxying through your server:
266
303
 
267
304
  ```tsx
268
305
  const customFetcher = {
269
306
  fetchDatasetContents: async (slug, invocationId) => {
270
- const response = await myCustomClient.getDataset(slug, invocationId);
271
- return response.data;
307
+ // Fetch through your server which adds authentication
308
+ const response = await fetch(`/api/datasets/${slug}?invocationId=${invocationId}`);
309
+ return response.json();
272
310
  },
273
311
  };
274
312
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default from 'react';
4
- import { ErdoClient, ContentItem, SSEEvent, InvokeResult, InvokeParams } from '@erdoai/types';
4
+ import { ErdoClient, ContentItem, LogEntry, ToolGroup, InvocationStatus as InvocationStatus$1, SSEEvent, InvokeResult, InvokeParams } from '@erdoai/types';
5
5
  export { ContentItem } from '@erdoai/types';
6
6
  import * as RechartsPrimitive from 'recharts';
7
7
  import { UseQueryResult } from '@tanstack/react-query';
@@ -280,6 +280,100 @@ declare class ErrorBoundary extends React__default.Component<{
280
280
  render(): React__default.ReactNode;
281
281
  }
282
282
 
283
+ /** Props passed to all content components */
284
+ interface ContentComponentProps {
285
+ content: ContentItem;
286
+ className?: string;
287
+ }
288
+ interface ContentProps {
289
+ content: ContentItem;
290
+ className?: string;
291
+ /**
292
+ * Override renderers for specific content types.
293
+ * Key is the content_type or ui_content_type string.
294
+ * Component receives { content, className, ...otherProps } props.
295
+ * Components can accept additional props beyond ContentComponentProps.
296
+ *
297
+ * @example
298
+ * ```tsx
299
+ * <Content
300
+ * content={contentItem}
301
+ * components={{
302
+ * 'bot_invocation': MyBotInvocation,
303
+ * 'authorize_integration': AuthorizeIntegration,
304
+ * 'my_custom_type': MyCustomRenderer,
305
+ * }}
306
+ * />
307
+ * ```
308
+ */
309
+ components?: Record<string, React__default.ComponentType<any>>;
310
+ }
311
+ /**
312
+ * Routes content to the appropriate renderer based on content_type and ui_content_type.
313
+ *
314
+ * This is the main entry point for rendering content items from Erdo bot invocations.
315
+ * It checks for custom component overrides first, then falls back to built-in renderers.
316
+ *
317
+ * @example
318
+ * ```tsx
319
+ * // Basic usage - uses built-in renderers
320
+ * <Content content={contentItem} />
321
+ *
322
+ * // With custom overrides
323
+ * <Content
324
+ * content={contentItem}
325
+ * components={{
326
+ * 'bot_invocation': MyBotInvocation,
327
+ * 'authorize_integration': AuthorizeIntegration,
328
+ * }}
329
+ * />
330
+ * ```
331
+ */
332
+ declare function Content({ content, className, components }: ContentProps): react_jsx_runtime.JSX.Element | null;
333
+
334
+ interface TextContentProps {
335
+ content: string;
336
+ className?: string;
337
+ }
338
+ declare function TextContent({ content, className }: TextContentProps): react_jsx_runtime.JSX.Element | null;
339
+
340
+ interface JsonContentProps {
341
+ content: unknown;
342
+ className?: string;
343
+ }
344
+ declare function JsonContent({ content, className }: JsonContentProps): react_jsx_runtime.JSX.Element | null;
345
+
346
+ interface MarkdownContentProps {
347
+ /** The markdown content to render */
348
+ content: string;
349
+ /** Additional CSS class names */
350
+ className?: string;
351
+ }
352
+ /**
353
+ * Renders markdown content with GitHub Flavored Markdown support.
354
+ *
355
+ * @example
356
+ * ```tsx
357
+ * <MarkdownContent content="# Hello\n\nThis is **bold** text." />
358
+ * ```
359
+ */
360
+ declare function MarkdownContent({ content, className }: MarkdownContentProps): react_jsx_runtime.JSX.Element | null;
361
+
362
+ interface TableColumn {
363
+ column_name: string;
364
+ key: string;
365
+ format?: string;
366
+ value_type?: 'number' | 'category' | 'date';
367
+ }
368
+ interface TableContentProps {
369
+ title?: string;
370
+ columns: TableColumn[];
371
+ data: any[];
372
+ className?: string;
373
+ maxRows?: number;
374
+ }
375
+ declare function TableContent({ title, columns, data, className, maxRows }: TableContentProps): react_jsx_runtime.JSX.Element;
376
+
283
377
  interface Axis {
284
378
  axis_label: string;
285
379
  key: string;
@@ -325,78 +419,227 @@ interface ChartContentProps {
325
419
  }
326
420
  declare function ChartContent({ config, data, className }: ChartContentProps): react_jsx_runtime.JSX.Element;
327
421
 
328
- interface ContentProps {
422
+ interface ThinkingContentProps {
329
423
  item: ContentItem;
330
424
  className?: string;
331
- components?: Partial<{
332
- text: React__default.ComponentType<{
333
- content: string;
334
- className?: string;
335
- }>;
336
- json: React__default.ComponentType<{
337
- content: string | object;
338
- className?: string;
339
- }>;
340
- chart: React__default.ComponentType<{
341
- config: ContentChartConfig;
342
- data: any[];
343
- className?: string;
344
- }>;
345
- table: React__default.ComponentType<{
346
- title?: string;
347
- columns: any[];
348
- data: any[];
349
- className?: string;
350
- }>;
351
- }>;
352
425
  }
353
426
  /**
354
- * Routes content to the appropriate renderer based on content_type and ui_content_type.
427
+ * Renders Claude's thinking/reasoning content in a collapsible panel.
428
+ * Handles both regular thinking and redacted (encrypted) thinking.
355
429
  */
356
- declare function Content({ item, className, components }: ContentProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
430
+ declare function ThinkingContent({ item, className }: ThinkingContentProps): react_jsx_runtime.JSX.Element;
357
431
 
358
- interface TextContentProps {
359
- content: string;
432
+ interface LogContentProps {
433
+ item: ContentItem;
360
434
  className?: string;
361
435
  }
362
- declare function TextContent({ content, className }: TextContentProps): react_jsx_runtime.JSX.Element | null;
436
+ interface LogProps {
437
+ log: LogEntry;
438
+ }
439
+ declare function Log({ log }: LogProps): react_jsx_runtime.JSX.Element;
440
+ /**
441
+ * Renders log entries with level-based styling (info, error, requires_info).
442
+ */
443
+ declare function LogContent({ item, className }: LogContentProps): react_jsx_runtime.JSX.Element;
363
444
 
364
- interface JsonContentProps {
365
- content: string | object;
445
+ interface WebSearchContentProps {
446
+ item: ContentItem;
366
447
  className?: string;
367
448
  }
368
- declare function JsonContent({ content, className }: JsonContentProps): react_jsx_runtime.JSX.Element | null;
449
+ /**
450
+ * Renders web search results as a list of clickable cards.
451
+ */
452
+ declare function WebSearchContent({ item, className }: WebSearchContentProps): react_jsx_runtime.JSX.Element | null;
369
453
 
370
- interface MarkdownContentProps {
371
- /** The markdown text to render */
372
- text: string;
373
- /** Additional CSS class names */
454
+ interface WebParseContentProps {
455
+ item: ContentItem;
374
456
  className?: string;
375
457
  }
376
458
  /**
377
- * Renders markdown content with GitHub Flavored Markdown support.
378
- *
379
- * @example
380
- * ```tsx
381
- * <MarkdownContent text="# Hello\n\nThis is **bold** text." />
382
- * ```
459
+ * Renders parsed web page content with title, description, and markdown body.
383
460
  */
384
- declare function MarkdownContent({ text, className }: MarkdownContentProps): react_jsx_runtime.JSX.Element | null;
461
+ declare function WebParseContent({ item, className }: WebParseContentProps): react_jsx_runtime.JSX.Element | null;
385
462
 
386
- interface TableColumn {
387
- column_name: string;
388
- key: string;
389
- format?: string;
390
- value_type?: 'number' | 'category' | 'date';
463
+ type WrapperType = 'standard' | 'info' | 'warning';
464
+ interface ExpandableOutputContentProps {
465
+ children: React__default.ReactNode;
466
+ defaultOpen?: boolean;
467
+ wrapperType?: WrapperType;
468
+ compact?: boolean;
469
+ className?: string;
391
470
  }
392
- interface TableContentProps {
471
+ /**
472
+ * An expandable container for code output with max-height and scroll.
473
+ */
474
+ declare function ExpandableOutputContent({ children, defaultOpen, wrapperType, compact, className, }: ExpandableOutputContentProps): react_jsx_runtime.JSX.Element;
475
+ interface OutputLineProps {
476
+ children: React__default.ReactNode;
477
+ timestamp?: string;
478
+ }
479
+ /**
480
+ * Standard output text line with optional timestamp.
481
+ */
482
+ declare function StdoutText({ children, timestamp }: OutputLineProps): react_jsx_runtime.JSX.Element;
483
+ /**
484
+ * Error/stderr output text line with info styling.
485
+ */
486
+ declare function StderrText({ children, timestamp }: OutputLineProps): react_jsx_runtime.JSX.Element;
487
+ /**
488
+ * Warning output text line with warning styling.
489
+ */
490
+ declare function StdwarnText({ children, timestamp }: OutputLineProps): react_jsx_runtime.JSX.Element;
491
+
492
+ interface CollapsibleCodeBlockProps {
493
+ language: string;
494
+ value: string;
495
+ defaultOpen?: boolean;
393
496
  title?: string;
394
- columns: TableColumn[];
395
- data: any[];
497
+ closeTitle?: string;
396
498
  className?: string;
397
- maxRows?: number;
499
+ /** Theme: 'dark' | 'light' | 'auto'. Auto uses prefers-color-scheme. Default: 'auto' */
500
+ theme?: 'dark' | 'light' | 'auto';
398
501
  }
399
- declare function TableContent({ title, columns, data, className, maxRows }: TableContentProps): react_jsx_runtime.JSX.Element;
502
+ /**
503
+ * A collapsible code block with syntax highlighting.
504
+ */
505
+ declare function CollapsibleCodeBlock({ language, value, defaultOpen, title, closeTitle, className, theme, }: CollapsibleCodeBlockProps): react_jsx_runtime.JSX.Element;
506
+
507
+ interface SqlContentProps {
508
+ item: ContentItem;
509
+ className?: string;
510
+ }
511
+ /**
512
+ * Renders SQL generation content with thinking text and collapsible SQL code.
513
+ */
514
+ declare function SqlContent({ item, className }: SqlContentProps): react_jsx_runtime.JSX.Element | null;
515
+
516
+ interface CodegenContentProps {
517
+ item: ContentItem;
518
+ className?: string;
519
+ }
520
+ /**
521
+ * Renders code generation content with step-by-step explanation, code, and warnings.
522
+ */
523
+ declare function CodegenContent({ item, className }: CodegenContentProps): react_jsx_runtime.JSX.Element | null;
524
+
525
+ interface CodeexecContentProps {
526
+ item: ContentItem;
527
+ className?: string;
528
+ }
529
+ /**
530
+ * Renders code execution output (stdout, stderr, warnings).
531
+ */
532
+ declare function CodeexecContent({ item, className }: CodeexecContentProps): react_jsx_runtime.JSX.Element | null;
533
+
534
+ interface ToolGroupContentProps {
535
+ /** The tool group data */
536
+ toolGroup: ToolGroup;
537
+ /** Optional Content component for rendering nested results (avoids circular imports) */
538
+ ContentComponent?: React__default.ComponentType<{
539
+ content: ContentItem;
540
+ className?: string;
541
+ }>;
542
+ className?: string;
543
+ }
544
+ /**
545
+ * Renders tool invocations and their results in a collapsible format.
546
+ */
547
+ declare function ToolGroupContent({ toolGroup, ContentComponent, className, }: ToolGroupContentProps): react_jsx_runtime.JSX.Element;
548
+
549
+ /** Content data for a bot invocation (passed in ContentItem.content) */
550
+ interface BotInvocationContentData {
551
+ /** Unique invocation ID */
552
+ invocation_id: string;
553
+ /** Bot ID */
554
+ bot_id: string;
555
+ /** Bot display name */
556
+ bot_name: string;
557
+ /** Whether this invocation is transparent (embedded) */
558
+ transparent?: boolean;
559
+ }
560
+ /** Status information for a bot invocation */
561
+ interface BotInvocationStatusInfo {
562
+ /** Current status of the invocation */
563
+ status: InvocationStatus$1 | string;
564
+ /** Optional status message */
565
+ message?: string | {
566
+ Valid: boolean;
567
+ String: string;
568
+ };
569
+ }
570
+ /** Event within a bot invocation */
571
+ interface BotInvocationEventInfo {
572
+ /** Unique event ID */
573
+ id: string;
574
+ /** Event type (output, step, etc.) */
575
+ type: string;
576
+ /** When the event was created */
577
+ created_at?: string;
578
+ /** Event data - structure depends on type */
579
+ data?: unknown;
580
+ }
581
+ /** Resolved bot invocation with status and events */
582
+ interface ResolvedBotInvocation {
583
+ /** Current status of the invocation */
584
+ currentStatus?: BotInvocationStatusInfo | null;
585
+ /** Map of events by ID */
586
+ eventsByID?: Record<string, BotInvocationEventInfo>;
587
+ /** Additional invocation details */
588
+ [key: string]: unknown;
589
+ }
590
+ interface BotInvocationContentProps {
591
+ /** The content data containing invocation_id, bot_id, bot_name */
592
+ content: BotInvocationContentData;
593
+ /** Resolved bot invocation data with events and status */
594
+ botInvocation?: ResolvedBotInvocation | null;
595
+ /** Whether the invocation is still loading */
596
+ isLoading?: boolean;
597
+ /** Whether this should be open by default */
598
+ defaultOpen?: boolean;
599
+ /** Optional admin link href (e.g., to agent designer) */
600
+ adminLinkHref?: string;
601
+ /** Optional admin link text */
602
+ adminLinkText?: string;
603
+ /** Whether to show the admin link */
604
+ showAdminLink?: boolean;
605
+ /** Callback when admin link is clicked */
606
+ onAdminClick?: (invocationId: string, botId: string) => void;
607
+ /** Callback when invocation is expanded */
608
+ onExpand?: (invocationId: string, botId: string, botName: string) => void;
609
+ /** Component for rendering nested events */
610
+ EventsComponent?: React__default.ComponentType<{
611
+ eventsByID: Record<string, BotInvocationEventInfo>;
612
+ defaultOpen?: boolean;
613
+ }>;
614
+ /** Component for rendering individual content items */
615
+ ContentComponent?: React__default.ComponentType<{
616
+ content: ContentItem;
617
+ className?: string;
618
+ }>;
619
+ className?: string;
620
+ }
621
+ /**
622
+ * Renders a bot invocation with status, collapsible events, and optional admin link.
623
+ *
624
+ * This component is designed to receive already-processed invocation data.
625
+ * Data fetching should be handled by the consuming application.
626
+ */
627
+ declare function BotInvocationContent({ content, botInvocation, isLoading, defaultOpen, adminLinkHref, adminLinkText, showAdminLink, onAdminClick, onExpand, EventsComponent, ContentComponent: _ContentComponent, className, }: BotInvocationContentProps): react_jsx_runtime.JSX.Element | null;
628
+
629
+ type SpinnerStatus = 'loading' | 'finished' | 'failed';
630
+ interface StatusSpinnerProps {
631
+ status: SpinnerStatus;
632
+ /** Icon color - if not provided, auto-detects from theme (white for dark, black for light) */
633
+ color?: string;
634
+ /** Size in pixels - defaults to 16 */
635
+ size?: number;
636
+ className?: string;
637
+ }
638
+ /**
639
+ * Animated status spinner using Lordicon/Lottie animations.
640
+ * Shows a spinning loader when loading, checkmark when finished, and alert when failed.
641
+ */
642
+ declare function StatusSpinner({ status, color, size, className }: StatusSpinnerProps): react_jsx_runtime.JSX.Element;
400
643
 
401
644
  interface ZoomState {
402
645
  refAreaLeft: number | null;
@@ -928,4 +1171,4 @@ declare function handleIncrementalMixedJsonParsing(outputContent: MessageContent
928
1171
  */
929
1172
  declare function handleSSEEvent(eventType: string, event: SSEEventData, path: string[], threadID: string, activeMessagesByID: Record<string, MessageWithContents>, currentEntity?: Entity | null, parents?: Entity[], entityIds?: Record<string, string>): Entity | null;
930
1173
 
931
- export { BarChart, type BaseChartProps, type BotInvocation, type BotInvocationData, Chart, type ChartConfig, ChartContainer, ChartContent, type ChartContentProps, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Content, type ContentChartConfig, type ContentChunk, type ContentProps, type ContentType, type DataFetcher, DatasetChart, type DatasetChartProps, type Entity, type EntityType, ErdoProvider, type ErdoProviderConfig, type ErdoProviderProps, ErrorBoundary, ExecutionStatus, HeatmapChart, type InvocationEvent, InvocationStatus, JSONStreamParser, type JSONValue, JsonContent, type JsonContentProps, LineChart, MarkdownContent, type MarkdownContentProps, type Message, type MessageContent, type MessageStreamingState, type MessageWithContents, type Output, type OutputContent, type OutputWithContents, PieChart, type ResultHandler, type SSEEventData, ScatterChart, type Status, type StatusEvent, type Step, TableContent, type TableContentProps, TextContent, type TextContentProps, type UseInvocationOptions, type UseInvocationReturn, cn, formatValue, handleIncrementalMixedJsonParsing, handleSSEEvent, isJsonLike, isParsingComplete, isParsingInProgress, isWhitespaceChar, parseCompleteJson, parseMixedJson, parseToDate, resolveKeyFromData, toSnakeCase, useChartZoom, useDatasetContents, useErdoConfig, useErdoConfigOptional, useInvocation, useMultipleDatasetContents };
1174
+ export { BarChart, type BaseChartProps, type BotInvocation, BotInvocationContent, type BotInvocationContentData, type BotInvocationContentProps, type BotInvocationData, type BotInvocationEventInfo, type BotInvocationStatusInfo, Chart, type ChartConfig, ChartContainer, ChartContent, type ChartContentProps, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, CodeexecContent, type CodeexecContentProps, CodegenContent, type CodegenContentProps, CollapsibleCodeBlock, type CollapsibleCodeBlockProps, Content, type ContentChartConfig, type ContentChunk, type ContentComponentProps, type ContentProps, type ContentType, type DataFetcher, DatasetChart, type DatasetChartProps, type Entity, type EntityType, ErdoProvider, type ErdoProviderConfig, type ErdoProviderProps, ErrorBoundary, ExecutionStatus, ExpandableOutputContent, type ExpandableOutputContentProps, HeatmapChart, type InvocationEvent, InvocationStatus, JSONStreamParser, type JSONValue, JsonContent, type JsonContentProps, LineChart, Log, LogContent, type LogContentProps, type LogProps, MarkdownContent, type MarkdownContentProps, type Message, type MessageContent, type MessageStreamingState, type MessageWithContents, type Output, type OutputContent, type OutputWithContents, PieChart, type ResolvedBotInvocation, type ResultHandler, type SSEEventData, ScatterChart, type SpinnerStatus, SqlContent, type SqlContentProps, type Status, type StatusEvent, StatusSpinner, type StatusSpinnerProps, StderrText, StdoutText, StdwarnText, type Step, TableContent, type TableContentProps, TextContent, type TextContentProps, ThinkingContent, type ThinkingContentProps, ToolGroupContent, type ToolGroupContentProps, type UseInvocationOptions, type UseInvocationReturn, WebParseContent, type WebParseContentProps, WebSearchContent, type WebSearchContentProps, type WrapperType, cn, formatValue, handleIncrementalMixedJsonParsing, handleSSEEvent, isJsonLike, isParsingComplete, isParsingInProgress, isWhitespaceChar, parseCompleteJson, parseMixedJson, parseToDate, resolveKeyFromData, toSnakeCase, useChartZoom, useDatasetContents, useErdoConfig, useErdoConfigOptional, useInvocation, useMultipleDatasetContents };
package/dist/index.js CHANGED
@@ -1,10 +1,26 @@
1
- import*as H from'react';import H__default,{createContext,useMemo,useRef,useEffect,useState,useContext,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as X from'recharts';import {Bar,BarChart,Line,LineChart,Scatter,ScatterChart,CartesianGrid,XAxis,Label,YAxis,ReferenceArea,PieChart,Pie,Cell,Tooltip,Legend}from'recharts';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {format}from'd3-format';import {utcFormat}from'd3-time-format';import {isValid,parse}from'date-fns';import {useToPng}from'@hugocxl/react-to-image';import {Download}from'lucide-react';import Rn from'lodash/isEqual';import {useDeepCompareMemo}from'use-deep-compare';import {useQueries,useQuery}from'@tanstack/react-query';import Zn from'react-markdown';import zn from'remark-gfm';var At=createContext(null);function re({children:t,config:e}){return jsx(At.Provider,{value:e,children:t})}function Z(){let t=useContext(At);if(!t)throw new Error("useErdoConfig must be used within an ErdoProvider");return t}function ae(){return useContext(At)}var z=class extends H__default.Component{constructor(e){super(e),this.state={hasError:false};}static getDerivedStateFromError(e){return {hasError:true}}componentDidCatch(e,n){console.error("ErrorBoundary caught an error:",e,n);}render(){return this.state.hasError?this.props.fallback:this.props.children}};function A(...t){return twMerge(clsx(t))}var We={light:"",dark:".dark"},se=H.createContext(null);function oe(){let t=H.useContext(se);if(!t)throw new Error("useChart must be used within a <ChartContainer />");return t}function pt({id:t,className:e,children:n,config:a,debounceResize:r=false,...s}){let o=H.useId(),i=`chart-${t||o.replace(/:/g,"")}`;return jsx(se.Provider,{value:{config:a},children:jsxs("div",{"data-slot":"chart","data-chart":i,className:A("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",e),...s,children:[jsx(ie,{id:i,config:a}),jsx(X.ResponsiveContainer,{debounce:r?200:0,children:n})]})})}var ie=({id:t,config:e})=>{let n=Object.entries(e).filter(([,a])=>a.theme||a.color);return n.length?jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(We).map(([a,r])=>`
1
+ import*as Q from'react';import Q__default,{createContext,useMemo,useRef,useEffect,useState,useContext,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as dt from'recharts';import {Bar,BarChart,Line,LineChart,Scatter,ScatterChart,CartesianGrid,XAxis,Label,YAxis,ReferenceArea,PieChart,Pie,Cell,Tooltip,Legend}from'recharts';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {format}from'd3-format';import {utcFormat}from'd3-time-format';import {isValid,parse}from'date-fns';import {useToPng}from'@hugocxl/react-to-image';import {ChevronDown,ChevronRight,Globe,ExternalLink,Check,Copy,ChevronUp,Loader2,ArrowUpRight,Download,Wrench,Search}from'lucide-react';import Vr from'lodash/isEqual';import {useDeepCompareMemo}from'use-deep-compare';import {useQueries,useQuery}from'@tanstack/react-query';import ta from'react-markdown';import ea from'remark-gfm';import*as Et from'@radix-ui/react-collapsible';import {Prism}from'react-syntax-highlighter';import {oneDark,oneLight}from'react-syntax-highlighter/dist/cjs/styles/prism';var Ce=createContext(null);function Ye({children:t,config:e}){return jsx(Ce.Provider,{value:e,children:t})}function at(){let t=useContext(Ce);if(!t)throw new Error("useErdoConfig must be used within an ErdoProvider");return t}function Qe(){return useContext(Ce)}var ot=class extends Q__default.Component{constructor(e){super(e),this.state={hasError:false};}static getDerivedStateFromError(e){return {hasError:true}}componentDidCatch(e,n){console.error("ErrorBoundary caught an error:",e,n);}render(){return this.state.hasError?this.props.fallback:this.props.children}};function L(...t){return twMerge(clsx(t))}var Qn={light:"",dark:".dark"},Xe=Q.createContext(null);function tn(){let t=Q.useContext(Xe);if(!t)throw new Error("useChart must be used within a <ChartContainer />");return t}function Pt({id:t,className:e,children:n,config:a,debounceResize:r=false,...o}){let s=Q.useId(),i=`chart-${t||s.replace(/:/g,"")}`;return jsx(Xe.Provider,{value:{config:a},children:jsxs("div",{"data-slot":"chart","data-chart":i,className:L("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video min-h-80 justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",e),...o,children:[jsx(en,{id:i,config:a}),jsx(dt.ResponsiveContainer,{debounce:r?200:0,children:n})]})})}var en=({id:t,config:e})=>{let n=Object.entries(e).filter(([,a])=>a.theme||a.color);return n.length?jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(Qn).map(([a,r])=>`
2
2
  ${r} [data-chart=${t}] {
3
- ${n.map(([s,o])=>{let i=o.theme?.[a]||o.color;return i?` --color-${s}: ${i};`:null}).join(`
3
+ ${n.map(([o,s])=>{let i=s.theme?.[a]||s.color;return i?` --color-${o}: ${i};`:null}).join(`
4
4
  `)}
5
5
  }
6
6
  `).join(`
7
- `)}}):null},Jt=X.Tooltip;function $t({active:t,payload:e,className:n,indicator:a="dot",hideLabel:r=false,hideIndicator:s=false,label:o,labelFormatter:i,labelClassName:l,formatter:p,color:u,nameKey:d,labelKey:c}){let{config:m}=oe(),f=H.useMemo(()=>{if(r||!e?.length)return null;let[y]=e,w=`${c||y?.dataKey||y?.name||"value"}`,I=Ut(m,y,w),_=!c&&typeof o=="string"?m[o]?.label||o:I?.label;return i?jsx("div",{className:A("font-medium",l),children:i(_,e)}):_?jsx("div",{className:A("font-medium",l),children:_}):null},[o,i,e,r,l,m,c]);if(!t||!e?.length)return null;let g=e.length===1&&a!=="dot";return jsxs("div",{className:A("border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",n),children:[g?null:f,jsx("div",{className:"grid gap-1.5",children:e.map((y,w)=>{let I=`${d||y.name||y.dataKey||"value"}`,_=Ut(m,y,I),V=u||y.payload.fill||y.color;return jsx("div",{className:A("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",a==="dot"&&"items-center"),children:p&&y?.value!==void 0&&y.name?p(y.value,y.name,y,w,y.payload):jsxs(Fragment,{children:[_?.icon?jsx(_.icon,{}):!s&&jsx("div",{className:A("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",{"h-2.5 w-2.5":a==="dot","w-1":a==="line","w-0 border-[1.5px] border-dashed bg-transparent":a==="dashed","my-0.5":g&&a==="dashed"}),style:{"--color-bg":V,"--color-border":V}}),jsxs("div",{className:A("flex flex-1 justify-between leading-none",g?"items-end":"items-center"),children:[jsxs("div",{className:"grid gap-1.5",children:[g?f:null,jsx("span",{className:"text-muted-foreground",children:_?.label||y.name})]}),y.value&&jsx("span",{className:"text-foreground font-mono font-medium tabular-nums",children:y.value.toLocaleString()})]})]})},y.dataKey)})})]})}var Ft=X.Legend;function jt({className:t,hideIcon:e=false,payload:n,verticalAlign:a="bottom",nameKey:r}){let{config:s}=oe();return n?.length?jsx("div",{className:A("flex items-center justify-center gap-4",a==="top"?"pb-3":"pt-3",t),children:n.map(o=>{let i=`${r||o.dataKey||"value"}`,l=Ut(s,o,i);return jsxs("div",{className:A("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),children:[l?.icon&&!e?jsx(l.icon,{}):jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:o.color}}),l?.label]},o.value)})}):null}function Ut(t,e,n){if(typeof e!="object"||e===null)return;let a="payload"in e&&typeof e.payload=="object"&&e.payload!==null?e.payload:void 0,r=n;return n in e&&typeof e[n]=="string"?r=e[n]:a&&n in a&&typeof a[n]=="string"&&(r=a[n]),r in t?t[r]:t[n]}function gt(t,e,n){if(t==null)return "";if(n==="date"){let a=le(t);if(a&&e)try{let r=e;e==="%Y%m%d"?r="%Y-%m-%d":e==="%d%m%Y"?r="%d-%m-%Y":e==="%m%d%Y"&&(r="%m-%d-%Y");let s=r.match(/%./g)||[],o="aAbBcdejHILmMpSUwWxXyYZ%";return s.some(p=>{let u=p.charAt(1);return !o.includes(u)})||s.length===0?(console.warn(`Invalid date format directives in: ${e}. Using default format.`),a.toISOString().split("T")[0]):utcFormat(r)(a)}catch(r){return console.warn(`Invalid date format: ${e}. Error: ${r}. Falling back to default.`),a.toISOString().split("T")[0]}if(a){let r=a.toISOString();return r.endsWith("T00:00:00.000Z")?r.split("T")[0]:a.toISOString().replace("T"," ").replace(".000Z"," UTC")}return String(t)}if(n==="number"){let a=typeof t=="string"?parseFloat(t.replace(/,/g,"")):t;if(isNaN(a))return String(t);let r=e;if(e&&(r=e.replace(/(\.\d+)f%/,"$1%")),!r)return Math.abs(a)>=1e3?format(",.0f")(a):Math.abs(a)>=100?format(".1f")(a):Math.abs(a)>=10?format(".2f")(a):Math.abs(a)>=1?format(".3f")(a):format(".3g")(a);if(r.includes("%"))return a>=0&&a<=1?format(r)(a):format(r)(a/100);try{return format(r)(a)}catch(s){return console.warn(`Error formatting number with format '${r}': ${s}. Falling back to default.`),Math.abs(a)>=1e3?format(",.0f")(a):Math.abs(a)>=1?format(".2f")(a):format(".3g")(a)}}return String(t)}function le(t){if(!t)return null;if(t instanceof Date)return isValid(t)?t:null;if(typeof t=="number"){let n=new Date(t);return isValid(n)?n:null}if(typeof t=="string"){if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let r=new Date(t+"T00:00:00.000Z");if(isValid(r))return r}let a=["yyyy-MM-dd","yyyyMMdd","yyyy-MM-dd'T'HH:mm:ss","yyyyMMddHHmmss","MM/dd/yyyy","dd/MM/yyyy"];for(let r of a){let s=parse(t,r,new Date);if(isValid(s))return s}}let e=new Date(t);return isValid(e)?e:null}function xt({onZoomChange:t}={}){let[e,n]=useState({refAreaLeft:null,refAreaRight:null,refAreaTop:null,refAreaBottom:null,zooming:false}),[a,r]=useState({x:[null,null],y:[null,null]}),s=useCallback(u=>{!u?.xValue||!u?.yValue||n(d=>({...d,refAreaLeft:u.xValue,refAreaTop:u.yValue,zooming:true}));},[]),o=useCallback(u=>{!u?.xValue||!u?.yValue||!e.zooming||n(d=>({...d,refAreaRight:u.xValue,refAreaBottom:u.yValue}));},[e.zooming]),i=useCallback(()=>{if(!e.refAreaLeft||!e.refAreaRight||!e.refAreaTop||!e.refAreaBottom){n({refAreaLeft:null,refAreaRight:null,refAreaTop:null,refAreaBottom:null,zooming:false});return}let[u,d]=[Math.min(e.refAreaLeft,e.refAreaRight),Math.max(e.refAreaLeft,e.refAreaRight)],[c,m]=[Math.min(e.refAreaTop,e.refAreaBottom),Math.max(e.refAreaTop,e.refAreaBottom)],f={x:[u,d],y:[c,m]};r(f),t?.(f),n({refAreaLeft:null,refAreaRight:null,refAreaTop:null,refAreaBottom:null,zooming:false});},[e,t]),l=useCallback(()=>{let u={x:[null,null],y:[null,null]};r(u),t?.(u);},[t]),p=useMemo(()=>({onZoomStart:s,onZoomMove:o,onZoomEnd:i,onResetZoom:l}),[s,o,i,l]);return {zoomState:e,customDomain:a,handlers:p}}function de(t){let e={max:null,min:null};if(t.maxValue)if(t.type==="number"){let n=parseFloat(t.maxValue);isNaN(n)?console.warn(`Error parsing max value ${t.maxValue}. Falling back to default.`):e.max=n;}else t.type==="date"?typeof t.maxValue=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t.maxValue)?e.max=new Date(t.maxValue+"T00:00:00.000Z").getTime():e.max=new Date(t.maxValue).getTime():e.max=t.maxValue;if(t.minValue)if(t.type==="number"){let n=parseFloat(t.minValue);isNaN(n)?console.warn(`Error parsing min value ${t.minValue}. Falling back to default.`):e.min=n;}else t.type==="date"?typeof t.minValue=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t.minValue)?e.min=new Date(t.minValue+"T00:00:00.000Z").getTime():e.min=new Date(t.minValue).getTime():e.min=t.minValue;return e}function tt(t,e,n){return gt(t,e,n)}function rn({title:t,subtitle:e,data:n,displayConfig:a,dataConfig:r,ChartComponent:s,PointComponent:o,disableAnimation:i,onZoomChange:l,stacked:p,enableDownload:u=true,onDownloadSuccess:d,onDownloadError:c}){let{zoomState:m,customDomain:f,handlers:g}=xt({onZoomChange:l}),y=useCallback(h=>{let v=`${t.toLowerCase().replace(/\s+/g,"-")}.png`,x=document.createElement("a");x.download=v,x.href=h,x.click(),d?.(v);},[t,d]),w=useCallback(h=>{console.error("Error converting chart to image:",h),c?.(h);},[c]),[{isLoading:I},_,V]=useToPng({onSuccess:y,onError:w}),T=useCallback(async()=>{_();},[_]),k=useMemo(()=>de(r.xAxis),[r.xAxis]),J=useMemo(()=>r.yAxes.map(h=>de(h)),[r.yAxes]),N=useMemo(()=>n?r.chartType==="histogram"?n.map(h=>({[r.xAxis.key]:(h.binStart+h.binEnd)/2,frequency:h.frequency,binStart:h.binStart,binEnd:h.binEnd})):r.xAxis.type==="number"?n.filter(h=>!isNaN(h[r.xAxis.key])):r.xAxis.type==="date"?n.filter(h=>!isNaN(h[r.xAxis.key])):n:[],[n,r.xAxis.key,r.chartType,r.xAxis.type]),ct=useCallback((h,v)=>{if(!h?.length)return {min:null,max:null};let x=h.map(S=>Number(S[v])).filter(S=>!isNaN(S));return {min:Math.min(...x),max:Math.max(...x)}},[]),dt=useMemo(()=>({x:f.x[0]!==null&&f.x[1]!==null?[f.x[0],f.x[1]]:(()=>{if(k.min!==null&&k.max!==null)return [k.min,k.max];let h=ct(N,r.xAxis.key);return [h.min??"auto",h.max??"auto"]})(),y:r.yAxes.map((h,v)=>{if(f.y[0]!==null&&f.y[1]!==null)return [f.y[0],f.y[1]];let S=r.series.filter(D=>(D.axisIndex||0)===v).reduce((D,L)=>{let P=ct(N,L.key);return {min:D.min===null?P.min:P.min===null?D.min:Math.min(D.min,P.min),max:D.max===null?P.max:P.max===null?D.max:Math.max(D.max,P.max)}},{min:null,max:null});if(h.type==="number"&&h.maxValue){let D=parseFloat(h.maxValue);if(S.max===null||D<=S.max*1.5)return [J[v].min??S.min??"auto",J[v].max??S.max??"auto"]}return [J[v].min??S.min??"auto",J[v].max??S.max??"auto"]})}),[f.x,f.y,k,J,r.series,r.yAxes,r.xAxis.key,N,ct]),Mt=useCallback((h,v,x)=>{if(x.dataKey===r.xAxis.key)return tt(h,r.xAxis.format,r.xAxis.type);let D=r.series.find(L=>L.key===x.dataKey)?.name||String(v).replace(/^dataset_\d+_/,"");if(r.chartType==="histogram"){let L=x.payload;if(L.binStart!==void 0){let P=tt(L.binStart,r.xAxis.format,r.xAxis.type),Pt=tt(L.binEnd,r.xAxis.format,r.xAxis.type);return `Count: ${h} (${P} - ${Pt})`}}return `${D}: ${h}`},[r.xAxis,r.series,r.chartType]),[b,C]=useState(false);useEffect(()=>{let h=setTimeout(()=>{C(true);},1700);return ()=>clearTimeout(h)},[]);let R=useMemo(()=>!!(i||(n?.length||0)>100||b),[i,n?.length,b]);return jsxs("div",{className:"items-center mt-0 flex flex-col gap-0",children:[jsxs("div",{className:"w-full items-center mb-2 relative",children:[jsx("h2",{className:"text-center text-base pt-0 mt-0 mb-2",children:t}),u&&jsx("button",{onClick:T,disabled:I,className:"text-sm text-gray-500 hover:text-gray-700 disabled:opacity-50 h-8 absolute right-0 top-[-5px] px-2 py-1 border rounded hover:bg-gray-50",title:"Download chart as PNG",children:jsx(Download,{className:"w-4 h-4"})})]}),e&&jsx("p",{className:"text-center text-sm text-muted-foreground mb-2",children:e}),jsx(pt,{ref:V,config:a,className:"w-full mb-4 border border-accent p-4 rounded-md",debounceResize:true,children:jsxs(s,{accessibilityLayer:true,data:N,isAnimationActive:!R,onMouseDown:g.onZoomStart,onMouseMove:g.onZoomMove,onMouseUp:g.onZoomEnd,onDoubleClick:g.onResetZoom,style:{userSelect:"none",cursor:"crosshair"},children:[jsx(CartesianGrid,{vertical:false}),jsx(XAxis,{dataKey:r.xAxis.key,domain:dt.x,type:r.xAxis.type==="date"||!r.xAxis.type?"number":r.xAxis.type,tickFormatter:h=>tt(h,r.xAxis.format,r.xAxis.type),tickLine:false,tickMargin:10,height:50,axisLine:false,allowDataOverflow:true,children:jsx(Label,{value:r.xAxis.label,position:"bottom",offset:-10,style:{textAnchor:"middle"}})}),r.yAxes.map((h,v)=>jsx(YAxis,{yAxisId:v,orientation:v===0?"left":"right",domain:p?void 0:dt.y[v],type:h.type==="date"||!h.type?"number":h.type,tickFormatter:x=>tt(x,h.format,h.type),allowDataOverflow:true,children:jsx(Label,{value:h.label,position:v===0?"insideLeft":"insideRight",angle:-90,style:{textAnchor:"middle"}})},`y-axis-${v}`)),jsx(Jt,{content:h=>jsx($t,{...h,formatter:Mt,labelFormatter:(v,x)=>{if(x&&x.length>0){let S=x[0].payload[r.xAxis.key],D=tt(S,r.xAxis.format,r.xAxis.type);return jsxs("div",{className:"flex flex-col",children:[jsx("span",{children:r.xAxis.label}),jsx("span",{className:"font-mono tabular-nums",children:D})]})}return v}})}),jsx(Ft,{content:h=>jsx(jt,{...h}),verticalAlign:"top"}),r.series.map(h=>jsx(o,{dataKey:h.key,yAxisId:h.axisIndex||0,fill:h.color||"blue",stroke:h.color||"blue",dot:{fill:h.color||"blue",stroke:h.color||"blue"},radius:4,name:h.name,isAnimationActive:!R,animationDuration:1500,animationBegin:0,stackId:r.chartType==="bar"&&p?"stack":void 0},`${h.key}-${p?"stacked":"unstacked"}`)),m.refAreaLeft&&m.refAreaRight&&m.refAreaTop&&m.refAreaBottom&&jsx(ReferenceArea,{x1:m.refAreaLeft,x2:m.refAreaRight,y1:m.refAreaTop,y2:m.refAreaBottom,strokeOpacity:.2,stroke:"currentColor",fill:"currentColor",fillOpacity:.02,style:{pointerEvents:"none"}})]})}),f.x[0]!==null&&jsx("button",{onClick:g.onResetZoom,className:"text-sm text-gray-500 hover:text-gray-700 mt-2 px-3 py-1 border rounded hover:bg-gray-50",children:"Reset Zoom"})]})}function $(t){return jsx(z,{fallback:jsx("div",{className:"text-red-500",children:"Failed to load chart"}),children:jsx(rn,{...t})})}function Y(t){return jsx($,{...t,ChartComponent:BarChart,PointComponent:Bar})}function et(t){return jsx($,{...t,ChartComponent:LineChart,PointComponent:Line})}var yn=(t,e,n)=>{let a=parseInt(t.slice(1,3),16)/255,r=parseInt(t.slice(3,5),16)/255,s=parseInt(t.slice(5,7),16)/255,o=Math.max(a,r,s),i=Math.min(a,r,s),l,p,u=(o+i)/2;if(o===i)l=p=0;else {let g=o-i;switch(p=u>.5?g/(2-o-i):g/(o+i),o){case a:l=(r-s)/g+(r<s?6:0);break;case r:l=(s-a)/g+2;break;case s:l=(a-r)/g+4;break;default:l=0;}l/=6;}let d=e/n,c=l*360+(d*40-20),m=Math.min(100,p*100+d*25),f=Math.max(35,Math.min(65,u*100-d*20));return `hsl(${c}, ${m}%, ${f}%)`};function bn({title:t,subtitle:e,data:n,displayConfig:a,dataConfig:r}){let s=r.series[0]?.color||"blue",o=useMemo(()=>n.reduce((i,l)=>(r.series.forEach(p=>{let u=p.key,d=String(l[r.xAxis.key]||"Unknown"),c=parseFloat(l[u]||"0");isNaN(c)||i.push({name:d,value:c,seriesId:u,displayName:d});}),i),[]).sort((i,l)=>l.value-i.value),[n,r.series,r.xAxis.key]);return jsxs("div",{className:"items-center",children:[jsx("h2",{className:"text-center text-base mb-2",children:t}),e&&jsx("p",{className:"text-center text-sm text-muted-foreground mb-2",children:e}),jsx(pt,{config:a,className:"w-full mb-4 border border-accent rounded-md",children:jsxs(PieChart,{width:400,height:400,children:[jsx(Pie,{data:o,dataKey:"value",nameKey:"displayName",cx:"50%",cy:"50%",outerRadius:150,label:i=>`${i.displayName}: ${i.value}%`,children:o.map((i,l)=>jsx(Cell,{fill:l===0?s:yn(s,l,o.length)},`cell-${l}`))}),jsx(Tooltip,{formatter:(i,l)=>[`${i}%`,l]}),jsx(Legend,{})]})})]})}function nt(t){return jsx(z,{fallback:jsx("div",{className:"text-red-500",children:"Failed to load chart"}),children:jsx(bn,{...t})})}function rt(t){return jsx($,{...t,ChartComponent:ScatterChart,PointComponent:Scatter})}var kn=t=>{let{cx:e,cy:n,payload:a,xAxis:r,yAxis:s}=t,o=a.value||a.z||0,l=`hsl(${240-Math.min(1,Math.max(0,o/100))*240}, 70%, 50%)`,p=r.scale.bandwidth?r.scale.bandwidth():20,u=s.scale.bandwidth?s.scale.bandwidth():20;return jsx("rect",{x:e-p/2,y:n-u/2,width:p,height:u,fill:l,fillOpacity:.8,stroke:"#fff",strokeWidth:1})},wn=t=>jsx(Scatter,{...t,shape:kn});function at(t){return jsx($,{...t,ChartComponent:ScatterChart,PointComponent:wn})}async function fe(t,e,n){if(t.dataFetcher)return t.dataFetcher.fetchDatasetContents(e,n);let a,r={"Content-Type":"application/json"};t.sessionToken?(a=`${t.baseUrl}/datasets/${encodeURIComponent(e)}/query-with-session?limit=1000`,r.Authorization=`Bearer ${t.sessionToken}`):(a=`${t.baseUrl}/datasets/${encodeURIComponent(e)}/query?limit=1000`,t.authToken&&(r.Authorization=`Bearer ${t.authToken}`));let s=await fetch(a,{headers:r});if(!s.ok)throw new Error(`Failed to fetch dataset contents: ${s.statusText}`);let o=await s.json();return !o.Columns||!o.Rows||o.Columns.length===0?[]:o.Rows.map(i=>{let l={};return o.Columns.forEach((p,u)=>{l[p]=i[u];}),l})}function ge(t,e){let n=Z();return useQuery({queryKey:["datasetContents",t,e],queryFn:()=>fe(n,t,e),enabled:!!t&&!!e})}function kt(t,e){let n=Z();return useQueries({queries:t.map(a=>({queryKey:["datasetContents",a,e],queryFn:()=>fe(n,a,e),enabled:!!a&&!!e}))})}function me(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`).replace(/^_/,"")}function wt(t,e){if(!t.length)return e;let n=t[0];if(n[e]!==void 0)return e;let a=e.toLowerCase();if(n[a]!==void 0)return a;let r=me(e);if(n[r]!==void 0)return r;let s=e.toLowerCase().replace(/_/g,"");return Object.keys(n).find(i=>i.toLowerCase().replace(/_/g,"")===s)||e}function Pn(){return ["yyyy-MM-dd","yyyyMMdd","yyyy-MM-dd'T'HH:mm:ss","yyyyMMddHHmmss"]}function Vn(t){if(!t)return null;if(typeof t=="string"){if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let r=new Date(t+"T00:00:00.000Z");if(isValid(r))return r.getTime()}let a=Pn();for(let r of a){let s=parse(t,r,new Date);if(isValid(s))return s.getTime()}}let e=new Date(t);return isValid(e)?e.getTime():null}function Et(t,e,n,a){let r=e==="index"&&t[e]===void 0?a:t[e];return n==="date"?Vn(r):n==="number"?parseFloat(r):r}function An(t,e,n){if(t===e.key)return e.type||"category";let a=n.find(r=>r.key===t);return a?a.type||"number":"category"}function yt(t,e,n,a){return !a||a.length===0?t:[...t].sort((r,s)=>{for(let o of a){let i=An(o.key,e,n),l=Et(r,o.key,i,r.index),p=Et(s,o.key,i,s.index);if(l===p)continue;let u=typeof l=="number"&&typeof p=="number"?l-p:l instanceof Date&&p instanceof Date?l.getTime()-p.getTime():String(l).localeCompare(String(p));return o.direction==="asc"?u:-u}return 0})}function he(t,e){let n=Math.ceil(t.length/e),a=[t[0]];for(let r=n;r<t.length-1;r+=n)a.push(t[r]);return a[a.length-1]!==t[t.length-1]&&a.push(t[t.length-1]),a}function Un(t,e,n,a,r,s,o){let i=t.reduce((u,d)=>{let c=d[e];return u[c]||(u[c]=[]),u[c].push(d),u},{}),l=Object.entries(i);if(l.length>a){let u=Math.ceil(l.length/a),d=l.reduce((c,[m,f],g)=>{let y=Math.floor(g/u);return c[y]||(c[y]={key:m,items:[]}),c[y].items.push(...f),c},[]).map(({key:c,items:m})=>({[e]:c,...n.reduce((f,g)=>{let y=m.map(w=>parseFloat(w[g.key])).filter(w=>!isNaN(w));return f[g.key]=y.length?y.reduce((w,I)=>w+I,0)/y.length:null,f},{})}));return o&&o.length>0?yt(d,r,s,o):d}let p=l.map(([u,d])=>{let c=n.reduce((f,g)=>{let y=d.map(w=>parseFloat(w[g.key])).filter(w=>!isNaN(w));return f[g.key]=y.length?y.reduce((w,I)=>w+I,0)/y.length:null,f},{}),m=Object.values(c).filter(f=>f!==null).reduce((f,g)=>f+g,0);return {[e]:u,...c,index:m}});return o&&o.length>0?yt(p,r,s,o):p}function Jn(t,e,n,a){let r=t.map(p=>parseFloat(p[e])).filter(p=>!isNaN(p)),s=Math.min(...r),i=(Math.max(...r)-s)/a,l=Array.from({length:a},(p,u)=>({binStart:s+u*i,binEnd:s+(u+1)*i,count:0,seriesValues:n.reduce((d,c)=>(d[c.key]=[],d),{})}));return t.forEach(p=>{let u=parseFloat(p[e]);if(isNaN(u))return;let d=Math.min(Math.floor((u-s)/i),a-1);l[d].count++,n.forEach(c=>{let m=parseFloat(p[c.key]);isNaN(m)||l[d].seriesValues[c.key].push(m);});}),l.map(p=>({[e]:(p.binStart+p.binEnd)/2,...n.reduce((u,d)=>{let c=p.seriesValues[d.key];return u[d.key]=c.length?c.reduce((m,f)=>m+f,0)/c.length:null,u},{}),count:p.count,index:n.reduce((u,d)=>{let c=p.seriesValues[d.key],m=c.length?c.reduce((f,g)=>f+g,0)/c.length:0;return u+m},0)})).filter(p=>n.some(u=>p[u.key]!==null))}function ye(t,e,n,a,r){let s=t.map((m,f)=>{let g=Et(m,e,r.type||"number",f);return typeof g=="number"?g:parseFloat(g)}).filter(m=>!isNaN(m)),o=Math.min(...s),p=(Math.max(...s)-o)/a,u=Array.from({length:a},(m,f)=>({binStart:Number((o+f*p).toFixed(2)),binEnd:Number((o+(f+1)*p).toFixed(2)),frequency:0,[e]:Number((o+(f+.5)*p).toFixed(2))}));s.forEach(m=>{let f=Math.min(Math.floor((m-o)/p),a-1);u[f].frequency++;});let d=u.filter(m=>m.frequency>0);return (u.length-d.length)/u.length*100>30?ye(t,e,n,Math.floor(a/2),r):d}function $n(t,e,n,a){return !e||e.length===0?t:t.filter(r=>e.every(s=>{let o=s.key;n&&s.key.toLowerCase()===n.toLowerCase()?o=n:a&&s.key.toLowerCase()===a.toLowerCase()&&(o=a);let i=r[o],l=Array.isArray(s.value)?s.value:[s.value];switch(s.operator){case "equals":return l.some(p=>String(i)===String(p));case "not_equals":return l.every(p=>String(i)!==String(p));case "greater_than":return parseFloat(String(i))>parseFloat(String(l[0]));case "less_than":return parseFloat(String(i))<parseFloat(String(l[0]));case "contains":return String(i).toLowerCase().includes(String(l[0]).toLowerCase());case "between":if(l.length===2){let p=parseFloat(String(i)),u=parseFloat(String(l[0])),d=parseFloat(String(l[1]));return p>=u&&p<=d}return true;default:return true}}))}var be=H__default.memo(function({chartType:e,title:n,invocationId:a,datasetSlugs:r,xAxis:s,yAxes:o,series:i,dataReduction:l={strategy:"none",target_points:1e3},stacked:p,sort:u,onScrollUpdate:d}){let c=kt(r,a),m=c.some(b=>b.isLoading),f=c.map(b=>b.data),g=useDeepCompareMemo(()=>f.map(b=>b||[]),[f]),{resolvedXAxisKey:y,resolvedSeriesKeys:w}=useMemo(()=>{let b=g.find(C=>C.length>0)||[];return {resolvedXAxisKey:wt(b,s.key),resolvedSeriesKeys:i.map(C=>({...C,resolvedKey:wt(b,C.key)}))}},[g,s.key,i]),I=useMemo(()=>{let b=g.reduce((R,h,v)=>(i.filter(S=>S.datasetSlug===r[v]).forEach(S=>{let D=w.find(P=>P.datasetSlug===S.datasetSlug&&P.key===S.key)?.resolvedKey||S.key;(S.filters?$n(h,S.filters,D,y):h).forEach((P,Pt)=>{let W=Et(P,y,s.type||"category",Pt);if(W==null||s.type==="number"&&isNaN(W))return;let Vt=s.type==="number"||s.type==="date"||typeof W=="object"?W.toString():String(W);R.has(Vt)||R.set(Vt,{[s.key]:W});let Ve=`dataset_${r.findIndex(Ue=>Ue===S.datasetSlug)}_series_${i.indexOf(S)}_${S.key}`,Ae=P[D];R.get(Vt)[Ve]=Ae;});}),R),new Map),C=Array.from(b.values());return u&&u.length>0?C:C.sort((R,h)=>{if(s.type==="date")return R[s.key]-h[s.key];let v=parseFloat(R[s.key]),x=parseFloat(h[s.key]);return isNaN(v)||isNaN(x)?String(R[s.key]).localeCompare(String(h[s.key])):v-x})},[g,i,r,w,y,s,u]),_=useMemo(()=>i.map((b,C)=>{let R=r.findIndex(h=>h===b.datasetSlug);return {...b,key:`dataset_${R}_series_${C}_${b.key}`}}),[i,r]),V=useMemo(()=>({[s.key]:{label:s.label,format:s.format,type:s.type},..._.reduce((b,C)=>(b[C.key]={label:C.name,color:C.color},b),{}),...e==="histogram"?{frequency:{label:o[0]?.label||"Frequency",color:_[0]?.color||"#2563eb"}}:{}}),[s,_,e,o]),T=useMemo(()=>!s.key||!_.length?null:{chartType:e,xAxis:s,yAxes:e==="histogram"?o.map(b=>({...b,key:"frequency",minValue:b.minValue||"0"})):o,series:e==="histogram"?[{key:"frequency",name:o[0]?.label||"Frequency",color:i[0]?.color||"#2563eb"}]:_},[s,o,i,_,e]),k=null;switch(e){case "bar":k=Y;break;case "line":k=et;break;case "pie":k=nt;break;case "scatter":k=rt;break;case "histogram":k=Y;break;case "heatmap":k=at;break}let J=useRef(false);useEffect(()=>{J.current||!d||!m&&V&&T&&I.length&&(d(),setTimeout(()=>d(),250),J.current=true);},[d,m,V,T,I.length]);let[N,ct]=useState({x:[null,null],y:[null,null]}),{processedData:dt,dataReductionInfo:Mt}=useMemo(()=>{if(m||!I.length)return {processedData:[],dataReductionInfo:null};if(e==="histogram"){let v=l.target_points||20;return {processedData:ye(I,y,_,v,s),dataReductionInfo:null}}let b=I;if((N.x[0]!==null||N.y[0]!==null)&&(b=I.filter(v=>{if(N.x[0]!==null&&N.x[1]!==null){let x=parseFloat(v[s.key]);if(isNaN(x)||x<N.x[0]||x>N.x[1])return false}if(N.y[0]!==null&&N.y[1]!==null)for(let x of _){let S=parseFloat(v[x.key]);if(!isNaN(S)&&(S<N.y[0]||S>N.y[1]))return false}return true})),b.length<=l.target_points&&(!u||u.length===0))return {processedData:b,dataReductionInfo:null};let C,R="";switch(l.strategy){case "sample":C=he(b,l.target_points),R="sampled",u&&u.length>0&&(C=yt(C,s,o,u));break;case "aggregate":C=Un(b,y,_,l.target_points,s,o,u),R="aggregated";break;case "bin":C=Jn(b,y,_,l.target_points),R="binning",u&&u.length>0&&(C=yt(C,s,o,u));break;default:b.length<1e3?C=b:(C=he(b,l.target_points),R="sampled"),u&&u.length>0&&(C=yt(C,s,o,u));}let h=null;return b.length!==C.length&&(h=`${R} ${b.length.toLocaleString()} \u2192 ${C.length.toLocaleString()} points`),{processedData:C,dataReductionInfo:h}},[I,l,e,m,N.x,N.y,_,u,s,o,y]);return k?m?jsx("div",{children:"Loading..."}):I.length?T?jsx(k,{data:dt,displayConfig:V,stacked:p,dataConfig:T,title:n,subtitle:Mt||void 0,disableAnimation:dt.length>100,onZoomChange:ct}):jsx("div",{children:"Invalid chart configuration"}):jsx("div",{children:"Unable to display chart - no data available"}):(console.error("No chart component found"),null)},(t,e)=>Rn(t,e));function ot({content:t,className:e}){return t?.length?jsx("div",{className:e||"prose dark:prose-invert max-w-4xl w-full leading-normal",children:jsx("p",{style:{whiteSpace:"pre-wrap"},children:t})}):null}function jn(t){let e=[],n=t;for(;n.length>0;){let a=n.indexOf("{"),r=n.indexOf("["),s=-1,o=true;if(a>=0&&(r<0||a<r)?(s=a,o=true):r>=0&&(s=r,o=false),s<0){n.trim()&&e.push({type:"text",content:n});break}if(s>0){let c=n.slice(0,s);c.trim()&&e.push({type:"text",content:c});}let i=0,l=s,p=o?"{":"[",u=o?"}":"]";for(let c=s;c<n.length;c++)if(n[c]===p&&i++,n[c]===u&&i--,i===0){l=c+1;break}let d=n.slice(s,l);try{let c=JSON.parse(d);e.push({type:"json",content:c});}catch{e.push({type:"text",content:d});}n=n.slice(l);}return e}function Ln(t){switch(t){case "muted":return "text-gray-500";case "error":return "text-red-500";case "warning":return "text-yellow-600";case "success":return "text-green-600";default:return ""}}function Q({content:t,className:e}){let n=typeof t=="string"?t:JSON.stringify(t,null,2),a=useMemo(()=>jn(n),[n]);return n?.length?jsx("div",{className:e||"prose dark:prose-invert leading-normal",children:a.map((r,s)=>{if(r.type==="json"){let o=r.content;return o.message&&typeof o.message=="string"?jsx("p",{className:Ln(o.style),children:o.message},s):jsx("pre",{className:"bg-gray-100 dark:bg-gray-800 p-3 rounded overflow-x-auto text-sm",children:JSON.stringify(o,null,2)},s)}return jsx("p",{children:r.content},s)})}):null}function bt({config:t,data:e,className:n}){let a=useMemo(()=>!t?.chart_type||!t?.chart_title||!t?.series?.length||!t?.y_axes?.length?null:{chartType:t.chart_type,title:t.chart_title,xAxis:{label:t.x_axis.axis_label,key:t.x_axis.key,maxValue:t.x_axis.max_value,minValue:t.x_axis.min_value,type:t.x_axis.value_type,format:t.x_axis.format},yAxes:t.y_axes.map(i=>({label:i.axis_label,key:i.key,maxValue:i.max_value,minValue:i.min_value,type:i.value_type,format:i.format})),series:t.series.map(i=>({key:i.key,name:i.series_name,color:i.color,axisIndex:i.axis_index,filters:i.filters})),dataReduction:t.data_reduction,stacked:t.stacked,sort:t.sort},[t]);if(!a)return jsx("div",{className:"text-red-500",children:"Invalid chart configuration"});if(!e||e.length===0)return jsx("div",{className:"text-gray-500",children:"No data available for chart"});let r=null;switch(a.chartType){case "bar":case "histogram":r=Y;break;case "line":r=et;break;case "pie":r=nt;break;case "scatter":r=rt;break;case "heatmap":r=at;break}if(!r)return jsxs("div",{className:"text-red-500",children:["Unsupported chart type: ",a.chartType]});let s={[a.xAxis.key]:{label:a.xAxis.label,format:a.xAxis.format,type:a.xAxis.type},...a.series.reduce((i,l)=>(i[l.key]={label:l.name,color:l.color},i),{})},o={chartType:a.chartType,xAxis:a.xAxis,yAxes:a.yAxes,series:a.series};return jsx("div",{className:n||"w-full max-w-3xl",children:jsx(r,{title:a.title,data:e,displayConfig:s,dataConfig:o,stacked:a.stacked,disableAnimation:e.length>100})})}function _t({title:t,columns:e,data:n,className:a,maxRows:r=100}){let s=useMemo(()=>!n||n.length===0?[]:r?n.slice(0,r):n,[n,r]);return !e||e.length===0?jsx("div",{className:"text-gray-500",children:"No columns defined"}):!n||n.length===0?jsx("div",{className:"text-gray-500",children:"No data available"}):jsxs("div",{className:a||"w-full max-w-4xl",children:[t&&jsx("h3",{className:"text-lg font-medium mb-2",children:t}),jsx("div",{className:"overflow-x-auto border rounded-md",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsx("tr",{className:"border-b bg-gray-50 dark:bg-gray-800",children:e.map(o=>jsx("th",{className:"px-4 py-2 text-left font-medium text-gray-700 dark:text-gray-300",children:o.column_name},o.key))})}),jsx("tbody",{children:s.map((o,i)=>jsx("tr",{className:"border-b last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-800/50",children:e.map(l=>jsx("td",{className:"px-4 py-2 text-gray-900 dark:text-gray-100",children:gt(o[l.key],l.format,l.value_type)},l.key))},i))})]})}),n.length>r&&jsxs("p",{className:"text-sm text-gray-500 mt-2",children:["Showing ",r," of ",n.length," rows"]})]})}function Ce({item:t,className:e,components:n}){let a=typeof t.ui_content_type=="object"&&t.ui_content_type?.Valid?t.ui_content_type.String:typeof t.ui_content_type=="string"?t.ui_content_type:t.content_type,r=typeof t.content=="string"?t.content:JSON.stringify(t.content);switch(a){case "text":case "thinking":case "redacted_thinking":{let s=n?.text||ot;return jsx(s,{content:r,className:e})}case "json":case "codegen_json":{let s=n?.json||Q;return jsx(s,{content:t.content,className:e})}case "chart":case "ui_generation":{if(t.chartConfig&&t.chartData){let s=n?.chart||bt;return jsx(s,{config:t.chartConfig,data:t.chartData,className:e})}try{let s=typeof t.content=="string"?JSON.parse(t.content):t.content;if(s.children)return qn(s.children,e,n);let o=n?.json||Q;return jsx(o,{content:t.content,className:e})}catch{let s=n?.json||Q;return jsx(s,{content:t.content,className:e})}}case "table":{if(t.tableColumns&&t.tableData){let o=n?.table||_t;return jsx(o,{columns:t.tableColumns,data:t.tableData,className:e})}let s=n?.json||Q;return jsx(s,{content:t.content,className:e})}case "log":case "codeexec_output":return jsx("pre",{className:e||"bg-gray-100 dark:bg-gray-800 p-3 rounded text-sm overflow-x-auto",children:r});case "bot_invocation":case "bot_invocation_result":case "tool_invocation":case "tool_result":case "security_check_json":return null;default:{let s=n?.text||ot;return jsx(s,{content:r,className:e})}}}function qn(t,e,n){return !t||!Array.isArray(t)?null:t.map((a,r)=>{if(!a?._type)return null;switch(a._type){case "Chart":{let s=n?.chart||bt,o=a.content;return jsx("div",{className:"my-4",children:jsx(s,{config:{chart_type:o.chart_type,chart_title:o.chart_title,x_axis:o.x_axis,y_axes:o.y_axes,series:o.series,data_reduction:o.data_reduction,stacked:o.stacked,sort:o.sort},data:[],className:e})},`chart-${r}`)}case "Table":{let s=n?.table||_t,o=a.content;return jsx("div",{className:"my-4",children:jsx(s,{title:o.table_title,columns:o.columns,data:[],className:e})},`table-${r}`)}case "TextMarkdown":{let s=n?.text||ot;return jsx("div",{className:"my-2",children:jsx(s,{content:a.content?.text||"",className:e})},`text-${r}`)}case "Suggestions":{let s=a.content?.suggestions||[];return s.length?jsx("div",{className:"flex flex-col gap-2 my-4",children:s.map((o,i)=>jsx("button",{className:"text-left px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded hover:bg-gray-200 dark:hover:bg-gray-700 text-sm",children:o},i))},`suggestions-${r}`):null}default:return null}})}function xe({text:t,className:e}){return t?.length?jsx("div",{className:A("prose dark:prose-invert leading-tight",e),children:jsx(Zn,{remarkPlugins:[zn],children:t})}):null}function ke(t){let e={success:true,messages:[],events:t,steps:[]};for(let n of t)switch(n.type){case "invocation_started":if(n.payload&&typeof n.payload=="object"){let r=n.payload;e.invocationId=r.invocation_id,e.botId=r.bot_id;}break;case "message":case "message_content":if(n.payload&&typeof n.payload=="object"){let r=n.payload;r.role&&r.content&&e.messages.push({role:r.role,content:r.content});}break;case "step_started":if(n.payload&&typeof n.payload=="object"){let r=n.payload;e.steps.push({key:r.step_key||"",action:r.action||"",status:"running"});}break;case "step_completed":if(n.payload&&typeof n.payload=="object"){let s=n.payload.step_key,o=e.steps.find(i=>i.key===s);o&&(o.status="completed");}break;case "step_error":if(n.payload&&typeof n.payload=="object"){let s=n.payload.step_key,o=e.steps.find(i=>i.key===s);o&&(o.status="failed");}break;case "result":n.payload&&typeof n.payload=="object"&&(e.result=n.payload);break;case "error":if(e.success=false,n.payload&&typeof n.payload=="object"){let r=n.payload;e.error=r.message||r.error||"Unknown error";}else typeof n.payload=="string"&&(e.error=n.payload);break;}return e}function we(t={}){let e=Z(),[n,a]=useState(null),[r,s]=useState(false),[o,i]=useState(null),l=useRef(null),p=useCallback(()=>{l.current&&(l.current.abort(),l.current=null);},[]),u=useCallback(async(d,c)=>{if(!e.client)throw new Error("ErdoClient not configured in provider. Pass a client to ErdoProvider config to use useInvocation.");p(),l.current=new AbortController,s(true),i(null),a(null);try{let m=[];for await(let g of e.client.invokeStream(d,c)){if(l.current?.signal.aborted)break;m.push(g),t.onEvent?.(g);let y=ke(m);a(y);}let f=ke(m);return a(f),t.onFinish?.(f),f}catch(m){let f=m instanceof Error?m:new Error(String(m));throw i(f),t.onError?.(f),f}finally{s(false),l.current=null;}},[e.client,t,p]);return {result:n,isStreaming:r,error:o,invoke:u,cancel:p}}var it=Symbol("parsing"),K=class{result;stack;key;state;stringBuffer;numberBuffer;quoteBuffer;escapeNext;unicode;isInTripleQuotes;constructor(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}reset(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}parse(e){return this.reset(),this.add(e)}add(e){for(let n=0;n<e.length;n++){let a=e[n];this.processChar(a);}return this.result}processChar(e){switch(this.state){case "START":this.handleStartState(e);break;case "IN_OBJECT":this.handleObjectState(e);break;case "IN_ARRAY":this.handleArrayState(e);break;case "IN_OBJECT_KEY":this.handleObjectKeyState(e);break;case "AFTER_KEY":this.handleAfterKeyState(e);break;case "IN_OBJECT_VALUE":this.handleObjectValueState(e);break;case "IN_STRING":this.handleStringState(e);break;case "IN_NUMBER":this.handleNumberState(e);break;case "IN_TRUE":this.handleLiteralState(e,"true");break;case "IN_FALSE":this.handleLiteralState(e,"false");break;case "IN_NULL":this.handleLiteralState(e,"null");break;case "IN_UNICODE":this.handleUnicodeState(e);break}}handleStartState(e){if(e==="{")this.startObject();else if(e==="[")this.startArray();else if(!this.isWhitespace(e))throw this.error("must start with { or [","start")}error(e,n){return new Error(`Invalid JSON in ${n}: ${e}`)}handleObjectState(e){if(e==="}")this.endObject();else if(e==='"')this.state="IN_OBJECT_KEY",this.stringBuffer="",this.key=void 0,this.quoteBuffer="";else if(e===",")this.key=void 0;else if(!this.isWhitespace(e))throw this.error(`Invalid character in object: ${e}`,"object")}handleArrayState(e){e==="]"?this.endArray():e===","||this.isWhitespace(e)||this.startValue(e);}handleObjectKeyState(e){e==='"'?(this.state="AFTER_KEY",this.key=this.stringBuffer,this.stringBuffer=""):(this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer));}handleAfterKeyState(e){e===":"?this.state="IN_OBJECT_VALUE":this.isWhitespace(e)||this.isWhitespace(e)||(this.key=this.key+e);}handleObjectValueState(e){this.isWhitespace(e)||this.startValue(e);}handleStringState(e){if(this.escapeNext)this.handleEscapeChar(e);else if(e==="\\")this.escapeNext=true;else if(e==='"'){if(this.quoteBuffer+='"',this.stringBuffer===""&&this.quoteBuffer==='""')this.quoteBuffer="",this.isInTripleQuotes=true;else if(this.stringBuffer&&this.quoteBuffer==='"""'){this.quoteBuffer="",this.isInTripleQuotes=false,this.stringBuffer=this.stringBuffer.replace(/^\n+/,"").replace(/\n+$/,"").trim(),this.endString();return}}else {if(this.quoteBuffer){if(this.quoteBuffer==='"'&&!this.isInTripleQuotes){this.quoteBuffer="",this.endString(),this.processChar(e);return}else if(this.quoteBuffer==='"""'&&this.isInTripleQuotes){this.quoteBuffer="",this.isInTripleQuotes=false,this.endString(),this.processChar(e);return}this.stringBuffer+=this.quoteBuffer,this.quoteBuffer="";}this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer);}}handleNumberState(e){e.match(/[0-9.eE+-]/)?(this.numberBuffer+=e,this.updateValueInParent(parseFloat(this.numberBuffer))):(this.endNumber(),this.processChar(e));}handleLiteralState(e,n){let a=n[this.stringBuffer.length];if(e===a)this.stringBuffer+=e,this.stringBuffer===n?this.endLiteral(n):this.updateValueInParent(this.stringBuffer);else throw this.error(`Invalid literal: expected ${n}`,"literal")}handleUnicodeState(e){if(this.unicode+=e,this.unicode.length===4){let n=parseInt(this.unicode,16);this.stringBuffer+=String.fromCharCode(n),this.unicode="",this.state="IN_STRING";}}handleEscapeChar(e){switch(e){case '"':case "\\":case "/":this.stringBuffer+=e;break;case "b":this.stringBuffer+="\b";break;case "f":this.stringBuffer+="\f";break;case "n":this.stringBuffer+=`
8
- `;break;case "r":this.stringBuffer+="\r";break;case "t":this.stringBuffer+=" ";break;case "u":this.unicode="",this.state="IN_UNICODE";break;case "`":this.stringBuffer+="`";break;default:throw this.error("Invalid escape character","string")}this.escapeNext=false;}startObject(){let e={[it]:true};this.addValueToParent(e),this.stack.push({value:e,key:this.key}),this.key=void 0,this.state="IN_OBJECT";}endObject(){let{value:e,key:n,index:a}=this.stack.pop();if(delete e[it],this.stack.length===0)this.state="END",this.result={...e};else {let{value:r}=this.stack[this.stack.length-1];if(Array.isArray(r))a!==void 0?r[a]={...e}:r[r.length-1]={...e};else if(n!==void 0)r[n]={...e};else throw this.error("Key is undefined","object");this.state=this.getParentState();}}startArray(){let e=[];e[it]=true,this.addValueToParent(e),this.stack.push({value:e,key:this.key,index:0}),this.key=void 0,this.state="IN_ARRAY";}endArray(){let{value:e,key:n,index:a}=this.stack.pop();if(delete e[it],this.stack.length===0)if(this.state="END",Array.isArray(e))this.result=[...e];else throw this.error("Expected array at root level","array");else {let{value:r}=this.stack[this.stack.length-1];Array.isArray(r)?a!==void 0?r[a]=Array.isArray(e)?[...e]:e:r[r.length-1]=Array.isArray(e)?[...e]:e:n!==void 0&&(r[n]=Array.isArray(e)?[...e]:e),this.state=this.getParentState();}}startValue(e){if(e==='"')this.state="IN_STRING",this.stringBuffer="",this.quoteBuffer="",this.addValueToParent("");else if(e.match(/[0-9-]/))this.state="IN_NUMBER",this.numberBuffer=e,this.addValueToParent(parseFloat(e));else if(e==="t")this.state="IN_TRUE",this.stringBuffer="t",this.addValueToParent("t");else if(e==="f")this.state="IN_FALSE",this.stringBuffer="f",this.addValueToParent("f");else if(e==="n")this.state="IN_NULL",this.stringBuffer="n",this.addValueToParent("n");else if(e==="{")this.startObject();else if(e==="[")this.startArray();else throw this.error(`Invalid value start: ${e}`,"value")}endString(){let e=this.stringBuffer;this.stringBuffer="",this.updateValueInParent(e),this.state=this.getParentState();}endNumber(){let e=parseFloat(this.numberBuffer);this.updateValueInParent(e),this.numberBuffer="",this.state=this.getParentState();}endLiteral(e){let n;switch(e){case "true":n=true;break;case "false":n=false;break;case "null":n=null;break;default:throw this.error("Invalid literal","literal")}this.updateValueInParent(n),this.stringBuffer="",this.state=this.getParentState();}addValueToParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:a}=n;if(Array.isArray(a))a.push(e),n.index!==void 0&&n.index++;else if(this.state==="IN_OBJECT_KEY")this.key=e,a[this.key]="";else {if(this.key===void 0)throw this.error("Key is undefined","object");a[this.key]=e;}}}updateValueInParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:a}=n;if(Array.isArray(a))n.index!==void 0?a[n.index-1]=e:a[a.length-1]=e;else if(this.key!==void 0)a[this.key]=e;else if(this.state!=="IN_OBJECT_KEY")throw this.error("Key is undefined","object")}}isWhitespace(e){return e===" "||e===" "||e===`
9
- `||e==="\r"}getParentState(){return this.stack.length===0?"END":Array.isArray(this.stack[this.stack.length-1].value)?"IN_ARRAY":"IN_OBJECT"}};function Qn(t){let e=t.trim();try{return JSON.parse(e)}catch{try{return new K().parse(e)}catch(a){return console.log("content",e),console.error("Error parsing JSON",a),null}}}function Dt(t){return t===" "||t===`
10
- `||t===" "||t==="\r"}function Gn(t,e){if(e>=t.length-1)return "";for(let n=e+1;n<t.length;n++)if(!Dt(t[n]))return t[n];return ""}function Bt(t){if(typeof t!="string")return t;let e=[],n=/```json\s*\n([\s\S]*?)(?:(?:\n)?```|$)/g,a=n.test(t);if(n.lastIndex=0,a){let r=0,s;for(;(s=n.exec(t))!==null;){let i=t.substring(r,s.index).trim();i&&e.push({content:i,type:"text"});let l=s[1];try{let p=JSON.parse(l);e.push({content:p,type:"json"});}catch{try{let d=new K().parse(l);d?e.push({content:d,type:"json"}):e.push({content:s[0],type:"text"});}catch{e.push({content:s[0],type:"text"});}}r=s.index+s[0].length;}let o=t.substring(r).trim();o&&e.push({content:o,type:"text"});}else {let r="",s=null,o=false,i=0;for(let l=0;l<t.length;l++){let p=t[l],u=Gn(t,l);if(!o&&(p==="{"&&u==='"'||p==="["&&u==="{")&&(r.trim()&&e.push({content:r.trim(),type:"text"}),o=true,s=new K,r=""),o){let d;try{d=s.add(p);}catch(c){if(console.log("currentChunk",r),console.log("currentResult",s?.result),console.warn("Error parsing JSON",c),i>3)throw c;i++;continue}r+=p,s.state==="END"&&(e.push({content:d,type:"json"}),o=false,s=null,r="");}else r+=p;}r.trim()&&e.push({content:r.trim(),type:"text"});}return e}function Xn(t){return t&&typeof t=="object"&&!t[it]}function tr(t){return t&&typeof t=="object"&&t[it]===true}function Ct(t,e){return t==="json"||e==="json"}var Ie=(l=>(l.Pending="pending",l.Running="running",l.Success="success",l.Error="error",l.RequiresInfo="requires info",l.GoToStep="go to step",l.Skipped="skipped",l.Break="break",l))(Ie||{}),Ee=(s=>(s.Initializing="initializing",s.Running="running",s.ProcessingDatasets="processing datasets",s.Completed="completed",s.Failed="failed",s))(Ee||{});function O(t){if(!t)throw new Error("Entity is null");if(!("_type"in t))throw new Error(`Entity ${JSON.stringify(t)} is missing _type`);return t._type}function er(t){return t.contents.length===0?null:t.contents[t.contents.length-1]||null}function nr(t){return t.contents.length===0?null:t.contents[0]||null}function Yt(t,e){let n=O(t);switch(n){case "message":return t;case "step":let a=t;if(e){let o=a.eventsByID[e]?.Message;return o||Te({},"",e)}let s=Object.keys(a.eventsByID).reverse();for(let o of s){let i=a.eventsByID[o];if(i&&i.Message)return i.Message}throw new Error("Unable to find message for step");default:throw new Error(`Unable to have messages on entity type ${n}`)}}function rr(t,e){switch(O(t)){case "message_content":return t;case "output_content":return t;case "message":return lt(t,e);case "output":return ut(t,e);case "step":let a=Ot(t,e);return a?ut(a,e):null;default:return null}}function lt(t,e){let n=O(t);switch(n){case "message_content":return t;case "message":let a=Yt(t);if(!a)throw new Error("Unable to find message to add content to");return e?a.contentsByID[e]:er(a);default:throw new Error(`Unable to have message content on entity type ${n}`)}}function ut(t,e){let n=O(t);switch(n){case "output_content":return t;case "output":let a=t;return e?a.contentsByID[e]||null:a.contents.length<=0?null:a.contents[a.contents.length-1]||null;case "step":let s=Ot(t,e);return s?ut(s):null;case "invocation":if(!e)return null;let o=t.eventsByID[e];return !o||!o.Output?null:ut(o.Output);default:throw new Error(`Unable to have output content on entity type ${n}`)}}function Qt(t,e){let n=O(t),a=null;switch(n){case "invocation":return t;case "message_content":if(a=t.botInvocation||null,!a)throw new Error("Unable to find bot invocation for message content");if(e&&a.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message content - mismatched ID");return a;case "message":if(a=nr(t)?.botInvocation||null,!a)throw new Error("Unable to find bot invocation for message");if(e&&a.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message - mismatched ID");return a;case "output_content":return t.botInvocation||null;default:throw new Error(`Unable to have bot invocation on entity type ${n}`)}}function Ot(t,e){let n=O(t);switch(n){case "output":return t;case "step":let a=t;if(e){let i=a.eventsByID[e]?.Output;if(!i)throw new Error("Unable to find output with id "+e);return i}let s=Object.keys(a.eventsByID).reverse();for(let i of s){let l=a.eventsByID[i];if(l&&l.Output)return l.Output}throw new Error("Unable to find output for step");case "invocation":if(!e)throw new Error("Unable to find output for invocation without ID");return t.eventsByID[e]?.Output||null;default:throw new Error(`Unable to have step outputs on entity type ${n}`)}}function Be(t,e){let n=O(t);switch(n){case "result_handler":return t;case "step":if(!e)throw new Error("Unable to have result handlers on step without ID");let a=t.eventsByID[e];if(!a||!a.type||a.type!=="result_handler"||!a.ResultHandler)throw new Error(`Unable to find result handler with id ${e} on step ${t.id}`);return a.ResultHandler;default:throw new Error(`Unable to have result handlers on entity type ${n}`)}}function Oe(t,e){let n=O(t),a=null;switch(n){case "step":if(t.id===e||!e)return t;throw new Error("Unable to find step on step with id "+e);case "invocation":if(!e)throw new Error("Unable to have steps on bot invocation without ID");a=t;let r=a.eventsByID[e];if(!r)throw new Error("Unable to find step on invocation with id "+e);if(!r.Step)throw new Error("Unable to find step on invocation with id "+e);return r.Step;case "result_handler":if(!e)throw new Error("Unable to have steps on result handler without ID");let o=t.eventsByID[e];if(!o)throw new Error("Unable to find step on result handler with id "+e);if(!o.Step)throw new Error("Unable to find step on result handler with id "+e);return o.Step;default:throw new Error(`Unable to have steps on entity type ${n}`)}}var Zt=class extends Error{};function ar(t,e,n){let a=null,r=e[0],s=e[1];n[r]=s;try{switch(r){case "message":a=Yt(t,s);break;case "content":a=lt(t,s);break;case "step":a=Oe(t,s);break;case "output":a=Ot(t,s);break;case "output_content":a=ut(t,s);break;case "invocation":a=Qt(t,s);break;case "result_handler":a=Be(t,s);break}}catch(o){throw console.error("error finding next entity"),console.log("path",e),console.log("currentEntity",t),o}if(!a)throw console.log("path",e),console.log("currentEntity",t),console.log("nextEntity",a),new Zt(`Unable to find next entity for path ${e.join("/")}`);return a}function Te(t,e,n,a){let r=t.payload;return {_type:"message",message:{id:n,thread_id:e,author_id:r.author_id||"app",author_entity_type:r.author_entity_type||"app",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),role:r.role||"assistant",avatar:"/teams/erdo.svg"},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function sr(t,e){return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"in_progress",user_visibility:t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",content:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata?.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false}}}function or(t,e){let n=t.metadata?.ui_content_type,a=typeof t.payload=="string"?t.payload:t.payload.content||t.payload,r=null;return Ct(t.metadata.content_type,n)&&(r=Bt(a)),{_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content:a,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"completed",user_visibility:t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:n?{String:n,Valid:true}:{String:"",Valid:false},parsedJson:r}}function ir(t,e,n){let a=t.payload;return {_type:"step",id:e,invocation_id:n.invocation||"",step_id:a.step_id||"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_status_id:"",path:{String:"",Valid:false},action_type:{String:a.action_type,Valid:true},key:{String:a.key,Valid:true},bot_id:a.bot_id,result_handler_id:"",step_order:{Int32:a.step_order,Valid:true},output_content_type:{String:a.content_type,Valid:true},execution_mode:{String:a.execution_mode,Valid:true},output_behaviour:{String:a.output_behaviour,Valid:true},user_output_visibility:{String:t.metadata.visibility||"visible",Valid:true},output_channels:a.output_channels||[],running_message:{String:"",Valid:false},finished_message:{String:"",Valid:false},depends_on:[],eventsByID:{},currentStatus:null}}function lr(t,e,n){let a=t.payload;return {_type:"result_handler",id:e,invocation_id:t.metadata.invocation_id||"",result_handler_id:a.result_handler_id||e,step_invocation_id:a.step_invocation_id||"",type:a.type||"",if_conditions:a.if_conditions||{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),output_content_type:a.output_content_type||"",result_handler_order:a.result_handler_order||0,eventsByID:{}}}function ur(t,e,n){return {_type:"output",id:e,step_id:n.step_id,output:{id:e,invocation_id:t.metadata?.invocation_id,path:t.metadata.path,created_at:new Date().toISOString(),updated_at:new Date().toISOString()},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Re(t,e,n,a=null){return {_type:"output_content",id:e,output_id:n.output,content:"",content_type:t.metadata.content_type,state:"in_progress",invocation_id:t.metadata.invocation_id,user_visibility:a??t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false},output:null}}function Ne(t,e,n,a=null){let r=null,s=t.metadata?.ui_content_type;return Ct(t.metadata.content_type,s)&&(r=Bt(t.payload)),{_type:"output_content",id:e,output_id:n.output,content:t.payload,content_type:t.metadata.content_type,state:"completed",invocation_id:t.metadata.invocation_id,parsedJson:r,user_visibility:a||t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:s?{String:s,Valid:true}:{String:"",Valid:false},output:null}}function cr(t,e,n){return {_type:"invocation",bot_invocation:{id:t.payload.invocation_id,bot_id:t.payload.bot_id,bot_name:t.payload.bot_name,created_by_user_id:t.payload.created_by_user_id,current_state_id:"",parent_invocation_id:"",branch_init_state_id:"",current_status_id:"",organization_id:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()},eventsByID:{},currentStatus:null,current_status:null,step_invocations:[],step_invocation_states:[],resources:[],outputs:[],statuses:[]}}function qt(t,e){let n=t.payload;return {_type:"status",id:new Date().toISOString(),status:n.status,message:{String:n.message,Valid:true},Details:n}}function Me(t){return {id:t.id,type:"step",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:null,Step:t}}function Gt(t){return {id:t.output.id,type:"output",created_at:t.output.created_at,_type:"invocation_event",Output:t,Message:null,Status:null,ResultHandler:null,Step:null}}function Xt(t){return {id:t.id,type:"status",created_at:t.created_at,_type:"invocation_event",Status:t,Output:null,Message:null,ResultHandler:null,Step:null}}function dr(t){return {id:t.message.id,type:"message",created_at:t.message.created_at,_type:"invocation_event",Output:null,Message:t,Status:null,ResultHandler:null,Step:null}}function pr(t){return {id:t.id,type:"result_handler",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:t,Step:null}}function te(t,e){if(t.content||(t.content=""),t.user_visibility!=="visible"||!Ct(t.content_type,t.ui_content_type.String))return t.content+=e,{...t};if(t.parsedJson||(t.parsedJson=[]),typeof e=="object")return t.content+=JSON.stringify(e),t.parsedJson=[...t.parsedJson,e],{...t};t._jsonParser||(t._isInJson=false),t._charBuffer||(t._charBuffer="");for(let n of e){if(t.content+=n,!t._isInJson&&n==="{"){t._charBuffer="{";continue}if(t._charBuffer&&Dt(n)){t._charBuffer+=n;continue}if(!t._isInJson&&t._charBuffer?.match(/^\s*{\s*$/)&&n==='"'){t._isInJson=true,t._jsonParser=new K;let r={content:t._jsonParser.add("{"),type:"json"};t._currentContent?.content?t._currentContent.content.match(/^\s*{$/)?(t._currentContent=r,t.parsedJson[t.parsedJson.length-1]=r):(t._currentContent.content=t._currentContent.content.replace(/{$/,""),t._currentContent=r,t.parsedJson=[...t.parsedJson,r]):(t._currentContent=r,t.parsedJson=[...t.parsedJson,r]);}if(t._isInJson)try{let a=t._jsonParser.add(n);t._currentContent.content=a,t._jsonParser.state==="END"&&(t._isInJson=!1,t._currentContent=void 0);}catch(a){console.log("content",e),console.log("currentContent",t.content),console.error("Error incrementally parsing JSON",a);}else t._currentContent||(t._currentContent={content:t._charBuffer||"",type:"text"},t.parsedJson=[...t.parsedJson,t._currentContent]),t._currentContent.content+=t._charBuffer+n;t._charBuffer="";}return {...t}}function fr(t,e){return te(t,e)}function De(t,e){return te(t,e)}function zt(t,e){let n=O(t);switch(n){case "message":return q(t,e);case "message_content":return ee(t,e);case "step":return mr(t,e);case "output":return hr(t,e);case "output_content":return yr(t,e);case "invocation":return Tt(t,e);case "result_handler":return br(t,e);default:throw new Error(`Unable to add update entity for entity type ${n}`)}}function gr(t,e){for(let n of e)t=zt(t,n);return t}function q(t,e){let n=Yt(t);if(!n)throw new Error("Unable to find message to add content to");let a=O(e),r=null;switch(a){case "message_content":return r=e,n.contentsByID[r.id]?n.contents[n.contentIDToIdx[r.id]]=r:(n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r]),n.contentsByID={...n.contentsByID,[r.id]:r},{...n};case "invocation":let s=e;if(n.contents.length===0)throw new Error("Unable to find message content to add invocation to");return r=ee(n.contents[0],s),q(n,r);case "step":if(n.contents.length===0)throw new Error("Unable to find message content to add content to");if(r=n.contents[0],!r)throw new Error("Unable to find message content to add content to");let o=Qt(r);if(!o)throw new Error("Unable to find bot invocation to add content to");return r.botInvocation=Tt(o,e),q(n,r);default:throw new Error(`Unable to add update message child for child type ${a}`)}}function ee(t,e){let n=lt(t);if(!n)throw new Error("Unable to find message content to add content to");let a=O(e);switch(a){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=Tt(r,e),{...n};default:throw new Error(`Unable to add update message content child for child type ${a}`)}}function mr(t,e){let n=Oe(t);if(!n)throw new Error("Unable to find bot invocation to add step to");let a=O(e),r=null;switch(a){case "output":let s=e;return r=Gt(s),n.eventsByID={...n.eventsByID,[s.output.id]:r},{...n};case "message":let o=e;return r=dr(o),n.eventsByID={...n.eventsByID,[o.message.id]:r},{...n};case "status":let i=e;return r=Xt(i),n.eventsByID={...n.eventsByID,[i.id]:r},{...n};case "result_handler":let l=e;return r=pr(l),n.eventsByID={...n.eventsByID,[l.id]:r},{...n};default:throw new Error(`Unable to add update step for entity type ${a}`)}}function hr(t,e){let n=Ot(t);if(!n)throw new Error("Unable to find step output to add content to");let a=O(e);switch(a){case "output_content":let r=e;return n.contentsByID[r.id]?n.contents[n.contentIDToIdx[r.id]]=r:(n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r]),n.contentsByID={...n.contentsByID,[r.id]:r},{...n};default:throw new Error(`Unable to add update output for entity type ${a}`)}}function yr(t,e){let n=ut(t);if(!n)throw new Error("Unable to find step output content to add content to");let a=O(e);switch(a){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=Tt(r,e),{...n};default:throw new Error(`Unable to add update step output content for entity type ${a}`)}}function Tt(t,e){let n=Qt(t);if(!n)throw new Error("Unable to find bot invocation to add content to");let a=O(e),r;switch(a){case "step":let s=e;return r=Me(s),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};case "output":let o=e;return r=Gt(o),n.eventsByID={...n.eventsByID,[o.output.id]:r},{...n};case "status":let i=e;return r=Xt(i),n.eventsByID={...n.eventsByID,[i.id]:r},{...n};default:throw new Error(`Unable to add update invocation for entity type ${a}`)}}function br(t,e){let n=Be(t);if(!n)throw new Error("Unable to find result handler to add content to");let a=O(e),r=null;switch(a){case "step":let s=e;return r=Me(s),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[s.id]:r},{...n};case "output":let o=e;return r=Gt(o),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[o.output.id]:r},{...n};case "status":let i=e;return r=Xt(i),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[i.id]:r},{...n};default:throw new Error(`Unable to add update to result handler for entity type ${a}`)}}function _r(t){return t==="bot started"||t==="bot resumed"||t==="message created"||t==="create message content"||t==="message content result"||t==="step started"||t==="result handler started"||t==="state created"||t==="step output created"||t==="create step output content"||t==="step output content result"||t==="log"}function Pe(t,e,n,a,r,s=null,o=[],i={}){if(!s&&Object.keys(r).length>0){let d,c;if(n.length>=2&&n[0]==="message"?(c=n[1],d=r[c],d||(d=Object.values(r)[0],c=Object.keys(r)[0])):(d=Object.values(r)[Object.values(r).length-1],c=Object.keys(r)[Object.keys(r).length-1]),i.message=c,n.length<=2&&t==="message finished")return null;if(n[0]!=="content"&&Object.keys(d.contentsByID).length>0&&e.metadata.message_content_id){let m=e.metadata.message_content_id,f=d.contentsByID[m];f&&(s=f);}s?o=[d]:s=d;}if(n.length<=2&&_r(t)){let d=n[1],c=[],m,f,g,y,w;switch(t){case "bot started":case "bot resumed":if(!s)throw new Error("Unable to find message to add content to");let I=cr(e);if(s._type==="message_content"){if(f=s,!f.id)throw new Error("Unable to find message content id");if(g=r[f.message_id],!g)throw new Error("Unable to find message to add content to");if(y=lt(g,f.id),!y)throw new Error("Unable to find message content to add content to");let k=ee(y,I);r[f.message_id]={...q(g,k)};}c.push(I);break;case "message created":return r[d]=Te(e,a,d),null;case "create message content":if(!s)throw new Error("Unable to find message to add content to");if(w=sr(e,i),s._type==="output"){m=s,c.push(Re(e,d,i,"hidden"));let k=e.payload.message_id;if(k||(k=o[0].message.id),g=r[k],!g)throw new Error("Unable to find message to add content to")}else if(s._type==="message_content"){if(m=s,g=r[m.message_id],!g)throw new Error("Unable to find message to add content to")}else {if(s._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${s._type}`);if(m=s,g=r[m.message.id],!g)throw new Error("Unable to find message to add content to");c.push(w);}r[g.message.id]={...q(g,w)};break;case "message content result":if(!s)throw new Error("Unable to find message to add content to");let _=null;if(s._type==="output"){c.push(Ne(e,d,i,"hidden"));let k=e.payload.message_id||i.message;if(k?_=o.find(J=>J.message.id===k):_=o[0],g=r[k],!g)throw new Error("Unable to find message to add content to")}else if(s._type==="message_content"){if(_=o[0],g=r[_.message.id],!g)throw new Error("Unable to find message to add content to")}else {if(s._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${s._type}`);if(_=s,g=r[_.message.id],!g)throw new Error("Unable to find message to add content to")}let V=e.metadata.message_content_id;if(!V)throw new Error("Unable to find message content id");let T=lt(_,V);if(T){T.state="completed";let k=typeof e.payload=="string"?e.payload:e.payload.content||e.payload;T.content=k,r[g.message.id]={...q(g,T)},(s._type==="message"||s._type==="message_content")&&c.push(T);}else T=or(e,i),r[g.message.id]={...q(g,T)},(s._type==="message"||s._type==="message_content")&&c.push(T);break;case "step started":c.push(ir(e,d,i));break;case "result handler started":c.push(lr(e,d));break;case "step output created":c.push(ur(e,d,s));break;case "create step output content":c.push(Re(e,d,i));break;case "step output content result":c.push(Ne(e,d,i));break;case "log":return null;default:throw new Error(`Unable to handle create event type ${t}`)}return c.length?!s||s._type==="message_content"&&c.length===1&&c[0]._type==="message_content"?c[0]:gr(s,c):null}if(!s)throw new Error("No first message has been created, so cannot handle amend events");if(n.length<=1){let d=null;try{d=rr(s);}catch{}switch(t){case "message content delta":if(!d)throw new Error("Unable to find message content");let c=null,m=null,f=null;if(s._type==="output_content"){c=De(s,e.payload);let I=e.metadata.message_content_id;if(!I)throw new Error("Unable to find message content id from entity ids");let _=i.message;if(f=o.find(V=>V.message.id===_),!f)throw new Error("Unable to find message to add content to");m=lt(f,I);}else {if(m=d,f=o[o.length-1],!f)throw new Error("Unable to find message to add content to");if(f._type!=="message")throw new Error("Unable to find message to add content to - not a message")}if(!m)throw new Error("Unable to find message content");let g=r[f.message.id];if(!g)throw new Error("Unable to find message to add content to");let y=fr(m,e.payload);return r[g.message.id]={...q(g,y)},s._type==="message_content"&&(c=y),c;case "step output content delta":return De(d,e.payload);case "status":return s._type==="step"&&(s.currentStatus=qt(e)),s._type==="invocation"&&(s.currentStatus=qt(e)),zt(s,qt(e));case "result":return null;case "message finished":return null;case "step output finished":return null;case "step result":return null;case "error":return null;case "dataset created":return null;case "log":return null;default:throw new Error(`Unable to handle event type ${t}`)}}let l=n.slice(2),p=ar(s,n,i),u=Pe(t,e,l,a,r,p,[...o,s],i);return u?zt(s,{...u}):s}export{Y as BarChart,$ as Chart,pt as ChartContainer,bt as ChartContent,Ft as ChartLegend,jt as ChartLegendContent,ie as ChartStyle,Jt as ChartTooltip,$t as ChartTooltipContent,Ce as Content,be as DatasetChart,re as ErdoProvider,z as ErrorBoundary,Ee as ExecutionStatus,at as HeatmapChart,Ie as InvocationStatus,K as JSONStreamParser,Q as JsonContent,et as LineChart,xe as MarkdownContent,nt as PieChart,rt as ScatterChart,_t as TableContent,ot as TextContent,A as cn,gt as formatValue,te as handleIncrementalMixedJsonParsing,Pe as handleSSEEvent,Ct as isJsonLike,Xn as isParsingComplete,tr as isParsingInProgress,Dt as isWhitespaceChar,Qn as parseCompleteJson,Bt as parseMixedJson,le as parseToDate,wt as resolveKeyFromData,me as toSnakeCase,xt as useChartZoom,ge as useDatasetContents,Z as useErdoConfig,ae as useErdoConfigOptional,we as useInvocation,kt as useMultipleDatasetContents};
7
+ `)}}):null},Se=dt.Tooltip;function we({active:t,payload:e,className:n,indicator:a="dot",hideLabel:r=false,hideIndicator:o=false,label:s,labelFormatter:i,labelClassName:l,formatter:d,color:c,nameKey:u,labelKey:p}){let{config:m}=tn(),f=Q.useMemo(()=>{if(r||!e?.length)return null;let[x]=e,b=`${p||x?.dataKey||x?.name||"value"}`,I=_e(m,x,b),k=!p&&typeof s=="string"?m[s]?.label||s:I?.label;return i?jsx("div",{className:L("font-medium",l),children:i(k,e)}):k?jsx("div",{className:L("font-medium",l),children:k}):null},[s,i,e,r,l,m,p]);if(!t||!e?.length)return null;let y=e.length===1&&a!=="dot";return jsxs("div",{className:L("border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",n),children:[y?null:f,jsx("div",{className:"grid gap-1.5",children:e.map((x,b)=>{let I=`${u||x.name||x.dataKey||"value"}`,k=_e(m,x,I),V=c||x.payload.fill||x.color;return jsx("div",{className:L("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",a==="dot"&&"items-center"),children:d&&x?.value!==void 0&&x.name?d(x.value,x.name,x,b,x.payload):jsxs(Fragment,{children:[k?.icon?jsx(k.icon,{}):!o&&jsx("div",{className:L("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",{"h-2.5 w-2.5":a==="dot","w-1":a==="line","w-0 border-[1.5px] border-dashed bg-transparent":a==="dashed","my-0.5":y&&a==="dashed"}),style:{"--color-bg":V,"--color-border":V}}),jsxs("div",{className:L("flex flex-1 justify-between leading-none",y?"items-end":"items-center"),children:[jsxs("div",{className:"grid gap-1.5",children:[y?f:null,jsx("span",{className:"text-muted-foreground",children:k?.label||x.name})]}),x.value&&jsx("span",{className:"text-foreground font-mono font-medium tabular-nums",children:x.value.toLocaleString()})]})]})},x.dataKey)})})]})}var Ee=dt.Legend;function Ie({className:t,hideIcon:e=false,payload:n,verticalAlign:a="bottom",nameKey:r}){let{config:o}=tn();return n?.length?jsx("div",{className:L("flex items-center justify-center gap-4",a==="top"?"pb-3":"pt-3",t),children:n.map(s=>{let i=`${r||s.dataKey||"value"}`,l=_e(o,s,i);return jsxs("div",{className:L("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),children:[l?.icon&&!e?jsx(l.icon,{}):jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:s.color}}),l?.label]},s.value)})}):null}function _e(t,e,n){if(typeof e!="object"||e===null)return;let a="payload"in e&&typeof e.payload=="object"&&e.payload!==null?e.payload:void 0,r=n;return n in e&&typeof e[n]=="string"?r=e[n]:a&&n in a&&typeof a[n]=="string"&&(r=a[n]),r in t?t[r]:t[n]}function At(t,e,n){if(t==null)return "";if(n==="date"){let a=nn(t);if(a&&e)try{let r=e;e==="%Y%m%d"?r="%Y-%m-%d":e==="%d%m%Y"?r="%d-%m-%Y":e==="%m%d%Y"&&(r="%m-%d-%Y");let o=r.match(/%./g)||[],s="aAbBcdejHILmMpSUwWxXyYZ%";return o.some(d=>{let c=d.charAt(1);return !s.includes(c)})||o.length===0?(console.warn(`Invalid date format directives in: ${e}. Using default format.`),a.toISOString().split("T")[0]):utcFormat(r)(a)}catch(r){return console.warn(`Invalid date format: ${e}. Error: ${r}. Falling back to default.`),a.toISOString().split("T")[0]}if(a){let r=a.toISOString();return r.endsWith("T00:00:00.000Z")?r.split("T")[0]:a.toISOString().replace("T"," ").replace(".000Z"," UTC")}return String(t)}if(n==="number"){let a=typeof t=="string"?parseFloat(t.replace(/,/g,"")):t;if(isNaN(a))return String(t);let r=e;if(e&&(r=e.replace(/(\.\d+)f%/,"$1%")),!r)return Math.abs(a)>=1e3?format(",.0f")(a):Math.abs(a)>=100?format(".1f")(a):Math.abs(a)>=10?format(".2f")(a):Math.abs(a)>=1?format(".3f")(a):format(".3g")(a);if(r.includes("%"))return a>=0&&a<=1?format(r)(a):format(r)(a/100);try{return format(r)(a)}catch(o){return console.warn(`Error formatting number with format '${r}': ${o}. Falling back to default.`),Math.abs(a)>=1e3?format(",.0f")(a):Math.abs(a)>=1?format(".2f")(a):format(".3g")(a)}}return String(t)}function nn(t){if(!t)return null;if(t instanceof Date)return isValid(t)?t:null;if(typeof t=="number"){let n=new Date(t);return isValid(n)?n:null}if(typeof t=="string"){if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let r=new Date(t+"T00:00:00.000Z");if(isValid(r))return r}let a=["yyyy-MM-dd","yyyyMMdd","yyyy-MM-dd'T'HH:mm:ss","yyyyMMddHHmmss","MM/dd/yyyy","dd/MM/yyyy"];for(let r of a){let o=parse(t,r,new Date);if(isValid(o))return o}}let e=new Date(t);return isValid(e)?e:null}function qt({onZoomChange:t}={}){let[e,n]=useState({refAreaLeft:null,refAreaRight:null,refAreaTop:null,refAreaBottom:null,zooming:false}),[a,r]=useState({x:[null,null],y:[null,null]}),o=useCallback(c=>{!c?.xValue||!c?.yValue||n(u=>({...u,refAreaLeft:c.xValue,refAreaTop:c.yValue,zooming:true}));},[]),s=useCallback(c=>{!c?.xValue||!c?.yValue||!e.zooming||n(u=>({...u,refAreaRight:c.xValue,refAreaBottom:c.yValue}));},[e.zooming]),i=useCallback(()=>{if(!e.refAreaLeft||!e.refAreaRight||!e.refAreaTop||!e.refAreaBottom){n({refAreaLeft:null,refAreaRight:null,refAreaTop:null,refAreaBottom:null,zooming:false});return}let[c,u]=[Math.min(e.refAreaLeft,e.refAreaRight),Math.max(e.refAreaLeft,e.refAreaRight)],[p,m]=[Math.min(e.refAreaTop,e.refAreaBottom),Math.max(e.refAreaTop,e.refAreaBottom)],f={x:[c,u],y:[p,m]};r(f),t?.(f),n({refAreaLeft:null,refAreaRight:null,refAreaTop:null,refAreaBottom:null,zooming:false});},[e,t]),l=useCallback(()=>{let c={x:[null,null],y:[null,null]};r(c),t?.(c);},[t]),d=useMemo(()=>({onZoomStart:o,onZoomMove:s,onZoomEnd:i,onResetZoom:l}),[o,s,i,l]);return {zoomState:e,customDomain:a,handlers:d}}function on(t){let e={max:null,min:null};if(t.maxValue)if(t.type==="number"){let n=parseFloat(t.maxValue);isNaN(n)?console.warn(`Error parsing max value ${t.maxValue}. Falling back to default.`):e.max=n;}else t.type==="date"?typeof t.maxValue=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t.maxValue)?e.max=new Date(t.maxValue+"T00:00:00.000Z").getTime():e.max=new Date(t.maxValue).getTime():e.max=t.maxValue;if(t.minValue)if(t.type==="number"){let n=parseFloat(t.minValue);isNaN(n)?console.warn(`Error parsing min value ${t.minValue}. Falling back to default.`):e.min=n;}else t.type==="date"?typeof t.minValue=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t.minValue)?e.min=new Date(t.minValue+"T00:00:00.000Z").getTime():e.min=new Date(t.minValue).getTime():e.min=t.minValue;return e}function mt(t,e,n){return At(t,e,n)}function ur({title:t,subtitle:e,data:n,displayConfig:a,dataConfig:r,ChartComponent:o,PointComponent:s,disableAnimation:i,onZoomChange:l,stacked:d,enableDownload:c=true,onDownloadSuccess:u,onDownloadError:p}){let{zoomState:m,customDomain:f,handlers:y}=qt({onZoomChange:l}),x=useCallback(g=>{let C=`${t.toLowerCase().replace(/\s+/g,"-")}.png`,S=document.createElement("a");S.download=C,S.href=g,S.click(),u?.(C);},[t,u]),b=useCallback(g=>{console.error("Error converting chart to image:",g),p?.(g);},[p]),[{isLoading:I},k,V]=useToPng({onSuccess:x,onError:b}),P=useCallback(async()=>{k();},[k]),_=useMemo(()=>on(r.xAxis),[r.xAxis]),T=useMemo(()=>r.yAxes.map(g=>on(g)),[r.yAxes]),B=useMemo(()=>n?r.chartType==="histogram"?n.map(g=>({[r.xAxis.key]:(g.binStart+g.binEnd)/2,frequency:g.frequency,binStart:g.binStart,binEnd:g.binEnd})):r.xAxis.type==="number"?n.filter(g=>!isNaN(g[r.xAxis.key])):r.xAxis.type==="date"?n.filter(g=>!isNaN(g[r.xAxis.key])):n:[],[n,r.xAxis.key,r.chartType,r.xAxis.type]),Dt=useCallback((g,C)=>{if(!g?.length)return {min:null,max:null};let S=g.map(w=>Number(w[C])).filter(w=>!isNaN(w));return {min:Math.min(...S),max:Math.max(...S)}},[]),Tt=useMemo(()=>({x:f.x[0]!==null&&f.x[1]!==null?[f.x[0],f.x[1]]:(()=>{if(_.min!==null&&_.max!==null)return [_.min,_.max];let g=Dt(B,r.xAxis.key);return [g.min??"auto",g.max??"auto"]})(),y:r.yAxes.map((g,C)=>{if(f.y[0]!==null&&f.y[1]!==null)return [f.y[0],f.y[1]];let w=r.series.filter(R=>(R.axisIndex||0)===C).reduce((R,Z)=>{let $=Dt(B,Z.key);return {min:R.min===null?$.min:$.min===null?R.min:Math.min(R.min,$.min),max:R.max===null?$.max:$.max===null?R.max:Math.max(R.max,$.max)}},{min:null,max:null});if(g.type==="number"&&g.maxValue){let R=parseFloat(g.maxValue);if(w.max===null||R<=w.max*1.5)return [T[C].min??w.min??"auto",T[C].max??w.max??"auto"]}return [T[C].min??w.min??"auto",T[C].max??w.max??"auto"]})}),[f.x,f.y,_,T,r.series,r.yAxes,r.xAxis.key,B,Dt]),ke=useCallback((g,C,S)=>{if(S.dataKey===r.xAxis.key)return mt(g,r.xAxis.format,r.xAxis.type);let R=r.series.find(Z=>Z.key===S.dataKey)?.name||String(C).replace(/^dataset_\d+_/,"");if(r.chartType==="histogram"){let Z=S.payload;if(Z.binStart!==void 0){let $=mt(Z.binStart,r.xAxis.format,r.xAxis.type),be=mt(Z.binEnd,r.xAxis.format,r.xAxis.type);return `Count: ${g} (${$} - ${be})`}}return `${R}: ${g}`},[r.xAxis,r.series,r.chartType]),[h,v]=useState(false);useEffect(()=>{let g=setTimeout(()=>{v(true);},1700);return ()=>clearTimeout(g)},[]);let D=useMemo(()=>!!(i||(n?.length||0)>100||h),[i,n?.length,h]);return jsxs("div",{className:"items-center mt-0 flex flex-col gap-0",children:[jsxs("div",{className:"w-full items-center mb-2 relative",children:[jsx("h2",{className:"text-center text-base pt-0 mt-0 mb-2",children:t}),c&&jsx("button",{onClick:P,disabled:I,className:"text-sm text-gray-500 hover:text-gray-700 disabled:opacity-50 h-8 absolute right-0 top-[-5px] px-2 py-1 border rounded hover:bg-gray-50",title:"Download chart as PNG",children:jsx(Download,{className:"w-4 h-4"})})]}),e&&jsx("p",{className:"text-center text-sm text-muted-foreground mb-2",children:e}),jsx(Pt,{ref:V,config:a,className:"w-full mb-4 border border-accent p-4 rounded-md",debounceResize:true,children:jsxs(o,{accessibilityLayer:true,data:B,isAnimationActive:!D,onMouseDown:y.onZoomStart,onMouseMove:y.onZoomMove,onMouseUp:y.onZoomEnd,onDoubleClick:y.onResetZoom,style:{userSelect:"none",cursor:"crosshair"},children:[jsx(CartesianGrid,{vertical:false}),jsx(XAxis,{dataKey:r.xAxis.key,domain:Tt.x,type:r.xAxis.type==="date"||!r.xAxis.type?"number":r.xAxis.type,tickFormatter:g=>mt(g,r.xAxis.format,r.xAxis.type),tickLine:false,tickMargin:10,height:50,axisLine:false,allowDataOverflow:true,children:jsx(Label,{value:r.xAxis.label,position:"bottom",offset:-10,style:{textAnchor:"middle"}})}),r.yAxes.map((g,C)=>jsx(YAxis,{yAxisId:C,orientation:C===0?"left":"right",domain:d?void 0:Tt.y[C],type:g.type==="date"||!g.type?"number":g.type,tickFormatter:S=>mt(S,g.format,g.type),allowDataOverflow:true,children:jsx(Label,{value:g.label,position:C===0?"insideLeft":"insideRight",angle:-90,style:{textAnchor:"middle"}})},`y-axis-${C}`)),jsx(Se,{content:g=>jsx(we,{...g,formatter:ke,labelFormatter:(C,S)=>{if(S&&S.length>0){let w=S[0].payload[r.xAxis.key],R=mt(w,r.xAxis.format,r.xAxis.type);return jsxs("div",{className:"flex flex-col",children:[jsx("span",{children:r.xAxis.label}),jsx("span",{className:"font-mono tabular-nums",children:R})]})}return C}})}),jsx(Ee,{content:g=>jsx(Ie,{...g}),verticalAlign:"top"}),r.series.map(g=>jsx(s,{dataKey:g.key,yAxisId:g.axisIndex||0,fill:g.color||"blue",stroke:g.color||"blue",dot:{fill:g.color||"blue",stroke:g.color||"blue"},radius:4,name:g.name,isAnimationActive:!D,animationDuration:1500,animationBegin:0,stackId:r.chartType==="bar"&&d?"stack":void 0},`${g.key}-${d?"stacked":"unstacked"}`)),m.refAreaLeft&&m.refAreaRight&&m.refAreaTop&&m.refAreaBottom&&jsx(ReferenceArea,{x1:m.refAreaLeft,x2:m.refAreaRight,y1:m.refAreaTop,y2:m.refAreaBottom,strokeOpacity:.2,stroke:"currentColor",fill:"currentColor",fillOpacity:.02,style:{pointerEvents:"none"}})]})}),f.x[0]!==null&&jsx("button",{onClick:y.onResetZoom,className:"text-sm text-gray-500 hover:text-gray-700 mt-2 px-3 py-1 border rounded hover:bg-gray-50",children:"Reset Zoom"})]})}function j(t){return jsx(ot,{fallback:jsx("div",{className:"text-red-500",children:"Failed to load chart"}),children:jsx(ur,{...t})})}function st(t){return jsx(j,{...t,ChartComponent:BarChart,PointComponent:Bar})}function ft(t){return jsx(j,{...t,ChartComponent:LineChart,PointComponent:Line})}var Sr=(t,e,n)=>{let a=parseInt(t.slice(1,3),16)/255,r=parseInt(t.slice(3,5),16)/255,o=parseInt(t.slice(5,7),16)/255,s=Math.max(a,r,o),i=Math.min(a,r,o),l,d,c=(s+i)/2;if(s===i)l=d=0;else {let y=s-i;switch(d=c>.5?y/(2-s-i):y/(s+i),s){case a:l=(r-o)/y+(r<o?6:0);break;case r:l=(o-a)/y+2;break;case o:l=(a-r)/y+4;break;default:l=0;}l/=6;}let u=e/n,p=l*360+(u*40-20),m=Math.min(100,d*100+u*25),f=Math.max(35,Math.min(65,c*100-u*20));return `hsl(${p}, ${m}%, ${f}%)`};function wr({title:t,subtitle:e,data:n,displayConfig:a,dataConfig:r}){let o=r.series[0]?.color||"blue",s=useMemo(()=>n.reduce((i,l)=>(r.series.forEach(d=>{let c=d.key,u=String(l[r.xAxis.key]||"Unknown"),p=parseFloat(l[c]||"0");isNaN(p)||i.push({name:u,value:p,seriesId:c,displayName:u});}),i),[]).sort((i,l)=>l.value-i.value),[n,r.series,r.xAxis.key]);return jsxs("div",{className:"items-center",children:[jsx("h2",{className:"text-center text-base mb-2",children:t}),e&&jsx("p",{className:"text-center text-sm text-muted-foreground mb-2",children:e}),jsx(Pt,{config:a,className:"w-full mb-4 border border-accent rounded-md",children:jsxs(PieChart,{width:400,height:400,children:[jsx(Pie,{data:s,dataKey:"value",nameKey:"displayName",cx:"50%",cy:"50%",outerRadius:150,label:i=>`${i.displayName}: ${i.value}%`,children:s.map((i,l)=>jsx(Cell,{fill:l===0?o:Sr(o,l,s.length)},`cell-${l}`))}),jsx(Tooltip,{formatter:(i,l)=>[`${i}%`,l]}),jsx(Legend,{})]})})]})}function yt(t){return jsx(ot,{fallback:jsx("div",{className:"text-red-500",children:"Failed to load chart"}),children:jsx(wr,{...t})})}function gt(t){return jsx(j,{...t,ChartComponent:ScatterChart,PointComponent:Scatter})}var Tr=t=>{let{cx:e,cy:n,payload:a,xAxis:r,yAxis:o}=t,s=a.value||a.z||0,l=`hsl(${240-Math.min(1,Math.max(0,s/100))*240}, 70%, 50%)`,d=r.scale.bandwidth?r.scale.bandwidth():20,c=o.scale.bandwidth?o.scale.bandwidth():20;return jsx("rect",{x:e-d/2,y:n-c/2,width:d,height:c,fill:l,fillOpacity:.8,stroke:"#fff",strokeWidth:1})},Pr=t=>jsx(Scatter,{...t,shape:Tr});function xt(t){return jsx(j,{...t,ChartComponent:ScatterChart,PointComponent:Pr})}async function ln(t,e,n){if(t.dataFetcher)return t.dataFetcher.fetchDatasetContents(e,n);let a,r={"Content-Type":"application/json"};t.sessionToken?(a=`${t.baseUrl}/datasets/${encodeURIComponent(e)}/query-with-session?limit=1000`,r.Authorization=`Bearer ${t.sessionToken}`):(a=`${t.baseUrl}/datasets/${encodeURIComponent(e)}/query?limit=1000`,t.authToken&&(r.Authorization=`Bearer ${t.authToken}`));let o=await fetch(a,{headers:r});if(!o.ok)throw new Error(`Failed to fetch dataset contents: ${o.statusText}`);let s=await o.json();return !s.Columns||!s.Rows||s.Columns.length===0?[]:s.Rows.map(i=>{let l={};return s.Columns.forEach((d,c)=>{l[d]=i[c];}),l})}function cn(t,e){let n=at();return useQuery({queryKey:["datasetContents",t,e],queryFn:()=>ln(n,t,e),enabled:!!t&&!!e})}function zt(t,e){let n=at();return useQueries({queries:t.map(a=>({queryKey:["datasetContents",a,e],queryFn:()=>ln(n,a,e),enabled:!!a&&!!e}))})}function pn(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`).replace(/^_/,"")}function Kt(t,e){if(!t.length)return e;let n=t[0];if(n[e]!==void 0)return e;let a=e.toLowerCase();if(n[a]!==void 0)return a;let r=pn(e);if(n[r]!==void 0)return r;let o=e.toLowerCase().replace(/_/g,"");return Object.keys(n).find(i=>i.toLowerCase().replace(/_/g,"")===o)||e}function Fr(){return ["yyyy-MM-dd","yyyyMMdd","yyyy-MM-dd'T'HH:mm:ss","yyyyMMddHHmmss"]}function Jr(t){if(!t)return null;if(typeof t=="string"){if(/^\d{4}-\d{2}-\d{2}$/.test(t)){let r=new Date(t+"T00:00:00.000Z");if(isValid(r))return r.getTime()}let a=Fr();for(let r of a){let o=parse(t,r,new Date);if(isValid(o))return o.getTime()}}let e=new Date(t);return isValid(e)?e.getTime():null}function Yt(t,e,n,a){let r=e==="index"&&t[e]===void 0?a:t[e];return n==="date"?Jr(r):n==="number"?parseFloat(r):r}function jr(t,e,n){if(t===e.key)return e.type||"category";let a=n.find(r=>r.key===t);return a?a.type||"number":"category"}function Mt(t,e,n,a){return !a||a.length===0?t:[...t].sort((r,o)=>{for(let s of a){let i=jr(s.key,e,n),l=Yt(r,s.key,i,r.index),d=Yt(o,s.key,i,o.index);if(l===d)continue;let c=typeof l=="number"&&typeof d=="number"?l-d:l instanceof Date&&d instanceof Date?l.getTime()-d.getTime():String(l).localeCompare(String(d));return s.direction==="asc"?c:-c}return 0})}function un(t,e){let n=Math.ceil(t.length/e),a=[t[0]];for(let r=n;r<t.length-1;r+=n)a.push(t[r]);return a[a.length-1]!==t[t.length-1]&&a.push(t[t.length-1]),a}function Wr(t,e,n,a,r,o,s){let i=t.reduce((c,u)=>{let p=u[e];return c[p]||(c[p]=[]),c[p].push(u),c},{}),l=Object.entries(i);if(l.length>a){let c=Math.ceil(l.length/a),u=l.reduce((p,[m,f],y)=>{let x=Math.floor(y/c);return p[x]||(p[x]={key:m,items:[]}),p[x].items.push(...f),p},[]).map(({key:p,items:m})=>({[e]:p,...n.reduce((f,y)=>{let x=m.map(b=>parseFloat(b[y.key])).filter(b=>!isNaN(b));return f[y.key]=x.length?x.reduce((b,I)=>b+I,0)/x.length:null,f},{})}));return s&&s.length>0?Mt(u,r,o,s):u}let d=l.map(([c,u])=>{let p=n.reduce((f,y)=>{let x=u.map(b=>parseFloat(b[y.key])).filter(b=>!isNaN(b));return f[y.key]=x.length?x.reduce((b,I)=>b+I,0)/x.length:null,f},{}),m=Object.values(p).filter(f=>f!==null).reduce((f,y)=>f+y,0);return {[e]:c,...p,index:m}});return s&&s.length>0?Mt(d,r,o,s):d}function qr(t,e,n,a){let r=t.map(d=>parseFloat(d[e])).filter(d=>!isNaN(d)),o=Math.min(...r),i=(Math.max(...r)-o)/a,l=Array.from({length:a},(d,c)=>({binStart:o+c*i,binEnd:o+(c+1)*i,count:0,seriesValues:n.reduce((u,p)=>(u[p.key]=[],u),{})}));return t.forEach(d=>{let c=parseFloat(d[e]);if(isNaN(c))return;let u=Math.min(Math.floor((c-o)/i),a-1);l[u].count++,n.forEach(p=>{let m=parseFloat(d[p.key]);isNaN(m)||l[u].seriesValues[p.key].push(m);});}),l.map(d=>({[e]:(d.binStart+d.binEnd)/2,...n.reduce((c,u)=>{let p=d.seriesValues[u.key];return c[u.key]=p.length?p.reduce((m,f)=>m+f,0)/p.length:null,c},{}),count:d.count,index:n.reduce((c,u)=>{let p=d.seriesValues[u.key],m=p.length?p.reduce((f,y)=>f+y,0)/p.length:0;return c+m},0)})).filter(d=>n.some(c=>d[c.key]!==null))}function dn(t,e,n,a,r){let o=t.map((m,f)=>{let y=Yt(m,e,r.type||"number",f);return typeof y=="number"?y:parseFloat(y)}).filter(m=>!isNaN(m)),s=Math.min(...o),d=(Math.max(...o)-s)/a,c=Array.from({length:a},(m,f)=>({binStart:Number((s+f*d).toFixed(2)),binEnd:Number((s+(f+1)*d).toFixed(2)),frequency:0,[e]:Number((s+(f+.5)*d).toFixed(2))}));o.forEach(m=>{let f=Math.min(Math.floor((m-s)/d),a-1);c[f].frequency++;});let u=c.filter(m=>m.frequency>0);return (c.length-u.length)/c.length*100>30?dn(t,e,n,Math.floor(a/2),r):u}function Hr(t,e,n,a){return !e||e.length===0?t:t.filter(r=>e.every(o=>{let s=o.key;n&&o.key.toLowerCase()===n.toLowerCase()?s=n:a&&o.key.toLowerCase()===a.toLowerCase()&&(s=a);let i=r[s],l=Array.isArray(o.value)?o.value:[o.value];switch(o.operator){case "equals":return l.some(d=>String(i)===String(d));case "not_equals":return l.every(d=>String(i)!==String(d));case "greater_than":return parseFloat(String(i))>parseFloat(String(l[0]));case "less_than":return parseFloat(String(i))<parseFloat(String(l[0]));case "contains":return String(i).toLowerCase().includes(String(l[0]).toLowerCase());case "between":if(l.length===2){let d=parseFloat(String(i)),c=parseFloat(String(l[0])),u=parseFloat(String(l[1]));return d>=c&&d<=u}return true;default:return true}}))}var mn=Q__default.memo(function({chartType:e,title:n,invocationId:a,datasetSlugs:r,xAxis:o,yAxes:s,series:i,dataReduction:l={strategy:"none",target_points:1e3},stacked:d,sort:c,onScrollUpdate:u}){let p=zt(r,a),m=p.some(h=>h.isLoading),f=p.map(h=>h.data),y=useDeepCompareMemo(()=>f.map(h=>h||[]),[f]),{resolvedXAxisKey:x,resolvedSeriesKeys:b}=useMemo(()=>{let h=y.find(v=>v.length>0)||[];return {resolvedXAxisKey:Kt(h,o.key),resolvedSeriesKeys:i.map(v=>({...v,resolvedKey:Kt(h,v.key)}))}},[y,o.key,i]),I=useMemo(()=>{let h=y.reduce((D,g,C)=>(i.filter(w=>w.datasetSlug===r[C]).forEach(w=>{let R=b.find($=>$.datasetSlug===w.datasetSlug&&$.key===w.key)?.resolvedKey||w.key;(w.filters?Hr(g,w.filters,R,x):g).forEach(($,be)=>{let Y=Yt($,x,o.type||"category",be);if(Y==null||o.type==="number"&&isNaN(Y))return;let ve=o.type==="number"||o.type==="date"||typeof Y=="object"?Y.toString():String(Y);D.has(ve)||D.set(ve,{[o.key]:Y});let jn=`dataset_${r.findIndex(qn=>qn===w.datasetSlug)}_series_${i.indexOf(w)}_${w.key}`,Wn=$[R];D.get(ve)[jn]=Wn;});}),D),new Map),v=Array.from(h.values());return c&&c.length>0?v:v.sort((D,g)=>{if(o.type==="date")return D[o.key]-g[o.key];let C=parseFloat(D[o.key]),S=parseFloat(g[o.key]);return isNaN(C)||isNaN(S)?String(D[o.key]).localeCompare(String(g[o.key])):C-S})},[y,i,r,b,x,o,c]),k=useMemo(()=>i.map((h,v)=>{let D=r.findIndex(g=>g===h.datasetSlug);return {...h,key:`dataset_${D}_series_${v}_${h.key}`}}),[i,r]),V=useMemo(()=>({[o.key]:{label:o.label,format:o.format,type:o.type},...k.reduce((h,v)=>(h[v.key]={label:v.name,color:v.color},h),{}),...e==="histogram"?{frequency:{label:s[0]?.label||"Frequency",color:k[0]?.color||"#2563eb"}}:{}}),[o,k,e,s]),P=useMemo(()=>!o.key||!k.length?null:{chartType:e,xAxis:o,yAxes:e==="histogram"?s.map(h=>({...h,key:"frequency",minValue:h.minValue||"0"})):s,series:e==="histogram"?[{key:"frequency",name:s[0]?.label||"Frequency",color:i[0]?.color||"#2563eb"}]:k},[o,s,i,k,e]),_=null;switch(e){case "bar":_=st;break;case "line":_=ft;break;case "pie":_=yt;break;case "scatter":_=gt;break;case "histogram":_=st;break;case "heatmap":_=xt;break}let T=useRef(false);useEffect(()=>{T.current||!u||!m&&V&&P&&I.length&&(u(),setTimeout(()=>u(),250),T.current=true);},[u,m,V,P,I.length]);let[B,Dt]=useState({x:[null,null],y:[null,null]}),{processedData:Tt,dataReductionInfo:ke}=useMemo(()=>{if(m||!I.length)return {processedData:[],dataReductionInfo:null};if(e==="histogram"){let C=l.target_points||20;return {processedData:dn(I,x,k,C,o),dataReductionInfo:null}}let h=I;if((B.x[0]!==null||B.y[0]!==null)&&(h=I.filter(C=>{if(B.x[0]!==null&&B.x[1]!==null){let S=parseFloat(C[o.key]);if(isNaN(S)||S<B.x[0]||S>B.x[1])return false}if(B.y[0]!==null&&B.y[1]!==null)for(let S of k){let w=parseFloat(C[S.key]);if(!isNaN(w)&&(w<B.y[0]||w>B.y[1]))return false}return true})),h.length<=l.target_points&&(!c||c.length===0))return {processedData:h,dataReductionInfo:null};let v,D="";switch(l.strategy){case "sample":v=un(h,l.target_points),D="sampled",c&&c.length>0&&(v=Mt(v,o,s,c));break;case "aggregate":v=Wr(h,x,k,l.target_points,o,s,c),D="aggregated";break;case "bin":v=qr(h,x,k,l.target_points),D="binning",c&&c.length>0&&(v=Mt(v,o,s,c));break;default:h.length<1e3?v=h:(v=un(h,l.target_points),D="sampled"),c&&c.length>0&&(v=Mt(v,o,s,c));}let g=null;return h.length!==v.length&&(g=`${D} ${h.length.toLocaleString()} \u2192 ${v.length.toLocaleString()} points`),{processedData:v,dataReductionInfo:g}},[I,l,e,m,B.x,B.y,k,c,o,s,x]);return _?m?jsx("div",{children:"Loading..."}):I.length?P?jsx(_,{data:Tt,displayConfig:V,stacked:d,dataConfig:P,title:n,subtitle:ke||void 0,disableAnimation:Tt.length>100,onZoomChange:Dt}):jsx("div",{children:"Invalid chart configuration"}):jsx("div",{children:"Unable to display chart - no data available"}):(console.error("No chart component found"),null)},(t,e)=>Vr(t,e));function $t({content:t,className:e}){return t?.length?jsx("div",{className:e||"prose dark:prose-invert max-w-4xl w-full leading-normal",children:jsx("p",{style:{whiteSpace:"pre-wrap"},children:t})}):null}function Kr(t){let e=[],n=t;for(;n.length>0;){let a=n.indexOf("{"),r=n.indexOf("["),o=-1,s=true;if(a>=0&&(r<0||a<r)?(o=a,s=true):r>=0&&(o=r,s=false),o<0){n.trim()&&e.push({type:"text",content:n});break}if(o>0){let p=n.slice(0,o);p.trim()&&e.push({type:"text",content:p});}let i=0,l=o,d=s?"{":"[",c=s?"}":"]";for(let p=o;p<n.length;p++)if(n[p]===d&&i++,n[p]===c&&i--,i===0){l=p+1;break}let u=n.slice(o,l);try{let p=JSON.parse(u);e.push({type:"json",content:p});}catch{e.push({type:"text",content:u});}n=n.slice(l);}return e}function Zr(t){switch(t){case "muted":return "text-gray-500";case "error":return "text-red-500";case "warning":return "text-yellow-600";case "success":return "text-green-600";default:return ""}}function kt({content:t,className:e}){if(t==null)return null;let n=typeof t=="string"?t:JSON.stringify(t,null,2),a=useMemo(()=>Kr(n),[n]);return n?.length?jsx("div",{className:e||"prose dark:prose-invert leading-normal",children:a.map((r,o)=>{if(r.type==="json"){let s=r.content;return s.message&&typeof s.message=="string"?jsx("p",{className:Zr(s.style),children:s.message},o):jsx("pre",{className:"bg-gray-100 dark:bg-gray-800 p-3 rounded overflow-x-auto text-sm",children:JSON.stringify(s,null,2)},o)}return jsx("p",{children:r.content},o)})}):null}function Lt({config:t,data:e,className:n}){let a=useMemo(()=>!t?.chart_type||!t?.chart_title||!t?.series?.length||!t?.y_axes?.length?null:{chartType:t.chart_type,title:t.chart_title,xAxis:{label:t.x_axis.axis_label,key:t.x_axis.key,maxValue:t.x_axis.max_value,minValue:t.x_axis.min_value,type:t.x_axis.value_type,format:t.x_axis.format},yAxes:t.y_axes.map(i=>({label:i.axis_label,key:i.key,maxValue:i.max_value,minValue:i.min_value,type:i.value_type,format:i.format})),series:t.series.map(i=>({key:i.key,name:i.series_name,color:i.color,axisIndex:i.axis_index,filters:i.filters})),dataReduction:t.data_reduction,stacked:t.stacked,sort:t.sort},[t]);if(!a)return jsx("div",{className:"text-red-500",children:"Invalid chart configuration"});if(!e||e.length===0)return jsx("div",{className:"text-gray-500",children:"No data available for chart"});let r=null;switch(a.chartType){case "bar":case "histogram":r=st;break;case "line":r=ft;break;case "pie":r=yt;break;case "scatter":r=gt;break;case "heatmap":r=xt;break}if(!r)return jsxs("div",{className:"text-red-500",children:["Unsupported chart type: ",a.chartType]});let o={[a.xAxis.key]:{label:a.xAxis.label,format:a.xAxis.format,type:a.xAxis.type},...a.series.reduce((i,l)=>(i[l.key]={label:l.name,color:l.color},i),{})},s={chartType:a.chartType,xAxis:a.xAxis,yAxes:a.yAxes,series:a.series};return jsx("div",{className:n||"w-full max-w-3xl",children:jsx(r,{title:a.title,data:e,displayConfig:o,dataConfig:s,stacked:a.stacked,disableAnimation:e.length>100})})}function Gt({title:t,columns:e,data:n,className:a,maxRows:r=100}){let o=useMemo(()=>!n||n.length===0?[]:r?n.slice(0,r):n,[n,r]);return !e||e.length===0?jsx("div",{className:"text-gray-500",children:"No columns defined"}):!n||n.length===0?jsx("div",{className:"text-gray-500",children:"No data available"}):jsxs("div",{className:a||"w-full max-w-4xl",children:[t&&jsx("h3",{className:"text-lg font-medium mb-2",children:t}),jsx("div",{className:"overflow-x-auto border rounded-md",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsx("tr",{className:"border-b bg-gray-50 dark:bg-gray-800",children:e.map(s=>jsx("th",{className:"px-4 py-2 text-left font-medium text-gray-700 dark:text-gray-300",children:s.column_name},s.key))})}),jsx("tbody",{children:o.map((s,i)=>jsx("tr",{className:"border-b last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-800/50",children:e.map(l=>jsx("td",{className:"px-4 py-2 text-gray-900 dark:text-gray-100",children:At(s[l.key],l.format,l.value_type)},l.key))},i))})]})}),n.length>r&&jsxs("p",{className:"text-sm text-gray-500 mt-2",children:["Showing ",r," of ",n.length," rows"]})]})}function G({content:t,className:e}){return t?.length?jsx("div",{className:L("prose dark:prose-invert leading-tight",e),children:jsx(ta,{remarkPlugins:[ea],children:t})}):null}function te({item:t,className:e}){let[n,a]=useState(false),r=t.content_type==="redacted_thinking",o="";typeof t.content=="string"?o=t.content:t.content&&typeof t.content=="object"&&(r?o=t.content.data||"Some of Claude's internal reasoning has been automatically encrypted for safety reasons. This doesn't affect the quality of responses.":o=t.content.thinking||"");let s=r?"border-amber-200 bg-amber-50 dark:bg-amber-900/20 dark:border-amber-700":"border-gray-200 bg-gray-50 dark:bg-gray-800 dark:border-gray-700",i=r?"hover:bg-amber-100 dark:hover:bg-amber-800/30":"hover:bg-gray-100 dark:hover:bg-gray-700",l=r?"text-amber-700 dark:text-amber-300":"text-gray-600 dark:text-gray-400",d=r?"text-amber-800 dark:text-amber-200 italic":"text-gray-700 dark:text-gray-300",c=r?"border-amber-200 dark:border-amber-700":"border-gray-200 dark:border-gray-700";return jsxs("div",{className:`my-2 border rounded-lg ${s} ${e||""}`,children:[jsxs("button",{onClick:()=>a(!n),className:`w-full px-3 py-2 flex items-center gap-2 text-left transition-colors rounded-lg ${i}`,children:[n?jsx(ChevronDown,{className:"h-4 w-4 text-gray-500"}):jsx(ChevronRight,{className:"h-4 w-4 text-gray-500"}),jsx("span",{className:`text-sm font-medium ${l}`,children:r?"Encrypted Thinking...":"Thinking..."}),!n&&jsx("span",{className:"text-xs text-gray-500 dark:text-gray-500 ml-auto",children:"Click to expand"})]}),n&&jsx("div",{className:`px-3 pb-3 border-t ${c}`,children:jsx("div",{className:`mt-2 text-sm whitespace-pre-wrap ${d}`,children:o})})]})}function xn(t){try{return JSON.parse(t)}catch{return t}}function oa(t){if(!t)return "";try{return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return ""}}function Te({log:t}){let e=typeof t.message=="string"?xn(t.message):t.message,n=oa(t.timestamp),a="text-xs font-mono py-0.5 px-1.5 rounded flex items-start",r="";switch(t.level){case "error":a+=" bg-red-50/50 dark:bg-red-950/30 text-red-600 dark:text-red-400 border-l-2 border-red-400 dark:border-red-600",r="text-red-500 dark:text-red-400";break;case "requires_info":a+=" bg-yellow-50/50 dark:bg-yellow-950/30 text-yellow-600 dark:text-yellow-400 border-l-2 border-yellow-400 dark:border-yellow-600",r="text-yellow-500 dark:text-yellow-400";break;default:a+=" bg-blue-50/40 dark:bg-blue-900/20 text-blue-500/90 dark:text-blue-300/80 border-l-2 border-blue-300 dark:border-blue-600/50",r="text-blue-400 dark:text-blue-400/70";}return jsx("div",{className:"my-0.5",children:jsx("div",{className:a,children:jsxs("div",{className:"flex items-start gap-2",children:[n&&jsx("span",{className:"text-[10px] opacity-60 whitespace-nowrap w-16 flex-shrink-0 pt-0.5",children:n}),t.level==="error"&&jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z",clipRule:"evenodd"})})}),t.level==="requires_info"&&jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})})}),t.level==="info"&&jsx("span",{className:"inline-block mr-1 flex-shrink-0",children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:`h-3 w-3 ${r}`,viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})})}),jsx("div",{className:"flex-1 break-words whitespace-pre-wrap",children:String(e)})]})})})}function ee({item:t,className:e}){let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),a=xn(n),r={level:a.level||"info",message:a.message||n,timestamp:a.timestamp};return jsx("div",{className:e,children:jsx(Te,{log:r})})}function ne({item:t,className:e}){let n=t.content;return n?.results?.length?jsx("div",{className:`max-w-2xl ${e||""}`,children:jsx("div",{className:"space-y-1",children:n.results.map((a,r)=>jsx("div",{className:"group hover:shadow-sm transition-shadow rounded-sm py-2 border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900",children:jsx("div",{className:"px-4",children:jsx("div",{className:"flex items-start justify-between gap-2",children:jsxs("div",{className:"flex-1 min-w-0",children:[jsxs("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 font-medium text-xs leading-tight truncate text-gray-900 dark:text-gray-100 hover:text-blue-600 dark:hover:text-blue-400 hover:underline",children:[jsx("span",{children:a.title}),jsxs("span",{className:"text-xs text-gray-500/60 dark:text-gray-400/60 flex-shrink-0",children:["(",new URL(a.url).hostname,")"]})]}),jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 truncate leading-tight mt-0.5",children:a.description})]})})})},r))})}):null}function re({item:t,className:e}){let n=t.content;return n?.content?.length?jsxs("div",{className:`max-w-4xl border border-gray-200 dark:border-gray-700 rounded-lg bg-white dark:bg-gray-900 ${e||""}`,children:[jsx("div",{className:"p-4 border-b border-gray-200 dark:border-gray-700",children:jsxs("div",{className:"flex items-start justify-between",children:[jsxs("div",{className:"space-y-2",children:[jsxs("h3",{className:"flex items-center gap-2 text-lg font-semibold text-gray-900 dark:text-gray-100",children:[jsx(Globe,{className:"h-5 w-5 text-blue-600 dark:text-blue-400"}),n.title||"Parsed Website Content"]}),n.description&&jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 leading-relaxed",children:n.description})]}),n.url&&jsxs("a",{href:n.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 transition-colors font-medium",children:[jsx(ExternalLink,{className:"h-3 w-3"}),"Visit"]})]})}),jsx("div",{className:"p-4",children:jsx(G,{content:n.content,className:"prose dark:prose-invert max-w-none leading-relaxed prose-sm"})})]}):null}var ga=Prism;function Ct({language:t,value:e,defaultOpen:n=false,title:a="View code",closeTitle:r="Hide code",className:o,theme:s="auto"}){let[i,l]=useState(n),[d,c]=useState(false),u=useMemo(()=>s!=="auto"?s:typeof window>"u"?"light":document.documentElement.classList.contains("dark")||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[s]),p=useMemo(()=>u==="dark"?oneDark:oneLight,[u]),m=async()=>{try{await navigator.clipboard.writeText(e),c(!0),setTimeout(()=>c(!1),2e3);}catch{let b=document.createElement("textarea");b.value=e,document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b),c(true),setTimeout(()=>c(false),2e3);}},f=useMemo(()=>({margin:0,width:"100%",background:"transparent",padding:"1rem 0.5rem",fontSize:"0.825rem",maxWidth:"100vw",overflow:"auto"}),[]),y=useMemo(()=>({userSelect:"none",minWidth:"2.5em",paddingRight:"1em",color:"rgb(161 161 170)",opacity:"0.5"}),[]),x=useMemo(()=>({style:{fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre",wordBreak:"break-word"}}),[]);return jsx(Et.Root,{open:i,onOpenChange:l,className:o,children:jsxs("div",{className:"relative w-full font-sans rounded-lg overflow-hidden border border-zinc-200 dark:border-zinc-800",children:[jsxs("div",{className:"flex items-center justify-between w-full px-4 py-1.5 bg-white/80 dark:bg-zinc-800/80 text-zinc-600 dark:text-zinc-100 backdrop-blur-sm border-b border-zinc-200 dark:border-zinc-800",children:[jsx("span",{className:"text-xs font-medium lowercase text-zinc-400 dark:text-zinc-500",children:t}),jsx("button",{onClick:m,className:"h-6 w-6 flex items-center justify-center rounded-md hover:bg-zinc-100 dark:hover:bg-zinc-700 transition-colors",children:d?jsx(Check,{className:"h-3 w-3 text-green-500"}):jsx(Copy,{className:"h-3 w-3 text-zinc-400 dark:text-zinc-500"})})]}),jsxs("div",{className:`${i?"":"max-h-[200px] overflow-hidden"} relative`,children:[jsx("div",{className:"bg-zinc-50/50 dark:bg-zinc-950/70",children:jsx(ga,{language:t,style:p,PreTag:"div",showLineNumbers:true,wrapLines:false,wrapLongLines:false,startingLineNumber:1,className:"not-prose",customStyle:f,lineNumberStyle:y,codeTagProps:x,children:e})}),!i&&jsx("div",{className:"absolute bottom-0 inset-x-0 h-24 pointer-events-none bg-gradient-to-t from-zinc-50 dark:from-zinc-900 to-transparent",style:{marginBottom:"1.5rem"}})]}),jsx(Et.Trigger,{className:"absolute bottom-0 inset-x-0 flex items-center gap-2 text-sm text-zinc-400 dark:text-zinc-500 hover:text-zinc-600 dark:hover:text-zinc-300 p-2 justify-start bg-zinc-50/80 dark:bg-zinc-900/80 backdrop-blur-sm border-t border-zinc-200 dark:border-zinc-800 cursor-pointer",children:i?jsxs(Fragment,{children:[jsx(ChevronUp,{className:"h-4 w-4"}),r]}):jsxs(Fragment,{children:[jsx(ChevronDown,{className:"h-4 w-4"}),a]})})]})})}var _t=Symbol("parsing"),X=class{result;stack;key;state;stringBuffer;numberBuffer;quoteBuffer;escapeNext;unicode;isInTripleQuotes;constructor(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}reset(){this.result=void 0,this.stack=[],this.key=void 0,this.state="START",this.stringBuffer="",this.numberBuffer="",this.quoteBuffer="",this.escapeNext=false,this.unicode="",this.isInTripleQuotes=false;}parse(e){return this.reset(),this.add(e)}add(e){for(let n=0;n<e.length;n++){let a=e[n];this.processChar(a);}return this.result}processChar(e){switch(this.state){case "START":this.handleStartState(e);break;case "IN_OBJECT":this.handleObjectState(e);break;case "IN_ARRAY":this.handleArrayState(e);break;case "IN_OBJECT_KEY":this.handleObjectKeyState(e);break;case "AFTER_KEY":this.handleAfterKeyState(e);break;case "IN_OBJECT_VALUE":this.handleObjectValueState(e);break;case "IN_STRING":this.handleStringState(e);break;case "IN_NUMBER":this.handleNumberState(e);break;case "IN_TRUE":this.handleLiteralState(e,"true");break;case "IN_FALSE":this.handleLiteralState(e,"false");break;case "IN_NULL":this.handleLiteralState(e,"null");break;case "IN_UNICODE":this.handleUnicodeState(e);break}}handleStartState(e){if(e==="{")this.startObject();else if(e==="[")this.startArray();else if(!this.isWhitespace(e))throw this.error("must start with { or [","start")}error(e,n){return new Error(`Invalid JSON in ${n}: ${e}`)}handleObjectState(e){if(e==="}")this.endObject();else if(e==='"')this.state="IN_OBJECT_KEY",this.stringBuffer="",this.key=void 0,this.quoteBuffer="";else if(e===",")this.key=void 0;else if(!this.isWhitespace(e))throw this.error(`Invalid character in object: ${e}`,"object")}handleArrayState(e){e==="]"?this.endArray():e===","||this.isWhitespace(e)||this.startValue(e);}handleObjectKeyState(e){e==='"'?(this.state="AFTER_KEY",this.key=this.stringBuffer,this.stringBuffer=""):(this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer));}handleAfterKeyState(e){e===":"?this.state="IN_OBJECT_VALUE":this.isWhitespace(e)||this.isWhitespace(e)||(this.key=this.key+e);}handleObjectValueState(e){this.isWhitespace(e)||this.startValue(e);}handleStringState(e){if(this.escapeNext)this.handleEscapeChar(e);else if(e==="\\")this.escapeNext=true;else if(e==='"'){if(this.quoteBuffer+='"',this.stringBuffer===""&&this.quoteBuffer==='""')this.quoteBuffer="",this.isInTripleQuotes=true;else if(this.stringBuffer&&this.quoteBuffer==='"""'){this.quoteBuffer="",this.isInTripleQuotes=false,this.stringBuffer=this.stringBuffer.replace(/^\n+/,"").replace(/\n+$/,"").trim(),this.endString();return}}else {if(this.quoteBuffer){if(this.quoteBuffer==='"'&&!this.isInTripleQuotes){this.quoteBuffer="",this.endString(),this.processChar(e);return}else if(this.quoteBuffer==='"""'&&this.isInTripleQuotes){this.quoteBuffer="",this.isInTripleQuotes=false,this.endString(),this.processChar(e);return}this.stringBuffer+=this.quoteBuffer,this.quoteBuffer="";}this.stringBuffer+=e,this.updateValueInParent(this.stringBuffer);}}handleNumberState(e){e.match(/[0-9.eE+-]/)?(this.numberBuffer+=e,this.updateValueInParent(parseFloat(this.numberBuffer))):(this.endNumber(),this.processChar(e));}handleLiteralState(e,n){let a=n[this.stringBuffer.length];if(e===a)this.stringBuffer+=e,this.stringBuffer===n?this.endLiteral(n):this.updateValueInParent(this.stringBuffer);else throw this.error(`Invalid literal: expected ${n}`,"literal")}handleUnicodeState(e){if(this.unicode+=e,this.unicode.length===4){let n=parseInt(this.unicode,16);this.stringBuffer+=String.fromCharCode(n),this.unicode="",this.state="IN_STRING";}}handleEscapeChar(e){switch(e){case '"':case "\\":case "/":this.stringBuffer+=e;break;case "b":this.stringBuffer+="\b";break;case "f":this.stringBuffer+="\f";break;case "n":this.stringBuffer+=`
8
+ `;break;case "r":this.stringBuffer+="\r";break;case "t":this.stringBuffer+=" ";break;case "u":this.unicode="",this.state="IN_UNICODE";break;case "`":this.stringBuffer+="`";break;default:throw this.error("Invalid escape character","string")}this.escapeNext=false;}startObject(){let e={[_t]:true};this.addValueToParent(e),this.stack.push({value:e,key:this.key}),this.key=void 0,this.state="IN_OBJECT";}endObject(){let{value:e,key:n,index:a}=this.stack.pop();if(delete e[_t],this.stack.length===0)this.state="END",this.result={...e};else {let{value:r}=this.stack[this.stack.length-1];if(Array.isArray(r))a!==void 0?r[a]={...e}:r[r.length-1]={...e};else if(n!==void 0)r[n]={...e};else throw this.error("Key is undefined","object");this.state=this.getParentState();}}startArray(){let e=[];e[_t]=true,this.addValueToParent(e),this.stack.push({value:e,key:this.key,index:0}),this.key=void 0,this.state="IN_ARRAY";}endArray(){let{value:e,key:n,index:a}=this.stack.pop();if(delete e[_t],this.stack.length===0)if(this.state="END",Array.isArray(e))this.result=[...e];else throw this.error("Expected array at root level","array");else {let{value:r}=this.stack[this.stack.length-1];Array.isArray(r)?a!==void 0?r[a]=Array.isArray(e)?[...e]:e:r[r.length-1]=Array.isArray(e)?[...e]:e:n!==void 0&&(r[n]=Array.isArray(e)?[...e]:e),this.state=this.getParentState();}}startValue(e){if(e==='"')this.state="IN_STRING",this.stringBuffer="",this.quoteBuffer="",this.addValueToParent("");else if(e.match(/[0-9-]/))this.state="IN_NUMBER",this.numberBuffer=e,this.addValueToParent(parseFloat(e));else if(e==="t")this.state="IN_TRUE",this.stringBuffer="t",this.addValueToParent("t");else if(e==="f")this.state="IN_FALSE",this.stringBuffer="f",this.addValueToParent("f");else if(e==="n")this.state="IN_NULL",this.stringBuffer="n",this.addValueToParent("n");else if(e==="{")this.startObject();else if(e==="[")this.startArray();else throw this.error(`Invalid value start: ${e}`,"value")}endString(){let e=this.stringBuffer;this.stringBuffer="",this.updateValueInParent(e),this.state=this.getParentState();}endNumber(){let e=parseFloat(this.numberBuffer);this.updateValueInParent(e),this.numberBuffer="",this.state=this.getParentState();}endLiteral(e){let n;switch(e){case "true":n=true;break;case "false":n=false;break;case "null":n=null;break;default:throw this.error("Invalid literal","literal")}this.updateValueInParent(n),this.stringBuffer="",this.state=this.getParentState();}addValueToParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:a}=n;if(Array.isArray(a))a.push(e),n.index!==void 0&&n.index++;else if(this.state==="IN_OBJECT_KEY")this.key=e,a[this.key]="";else {if(this.key===void 0)throw this.error("Key is undefined","object");a[this.key]=e;}}}updateValueInParent(e){if(this.stack.length===0)this.result=e;else {let n=this.stack[this.stack.length-1],{value:a}=n;if(Array.isArray(a))n.index!==void 0?a[n.index-1]=e:a[a.length-1]=e;else if(this.key!==void 0)a[this.key]=e;else if(this.state!=="IN_OBJECT_KEY")throw this.error("Key is undefined","object")}}isWhitespace(e){return e===" "||e===" "||e===`
9
+ `||e==="\r"}getParentState(){return this.stack.length===0?"END":Array.isArray(this.stack[this.stack.length-1].value)?"IN_ARRAY":"IN_OBJECT"}};function xa(t){let e=t.trim();try{return JSON.parse(e)}catch{try{return new X().parse(e)}catch(a){return console.log("content",e),console.error("Error parsing JSON",a),null}}}function oe(t){return t===" "||t===`
10
+ `||t===" "||t==="\r"}function ha(t,e){if(e>=t.length-1)return "";for(let n=e+1;n<t.length;n++)if(!oe(t[n]))return t[n];return ""}function tt(t){if(typeof t!="string")return t;let e=[],n=/```json\s*\n([\s\S]*?)(?:(?:\n)?```|$)/g,a=n.test(t);if(n.lastIndex=0,a){let r=0,o;for(;(o=n.exec(t))!==null;){let i=t.substring(r,o.index).trim();i&&e.push({content:i,type:"text"});let l=o[1];try{let d=JSON.parse(l);e.push({content:d,type:"json"});}catch{try{let u=new X().parse(l);u?e.push({content:u,type:"json"}):e.push({content:o[0],type:"text"});}catch{e.push({content:o[0],type:"text"});}}r=o.index+o[0].length;}let s=t.substring(r).trim();s&&e.push({content:s,type:"text"});}else {let r="",o=null,s=false,i=0;for(let l=0;l<t.length;l++){let d=t[l],c=ha(t,l);if(!s&&(d==="{"&&c==='"'||d==="["&&c==="{")&&(r.trim()&&e.push({content:r.trim(),type:"text"}),s=true,o=new X,r=""),s){let u;try{u=o.add(d);}catch(p){if(console.log("currentChunk",r),console.log("currentResult",o?.result),console.warn("Error parsing JSON",p),i>3)throw p;i++;continue}r+=d,o.state==="END"&&(e.push({content:u,type:"json"}),s=false,o=null,r="");}else r+=d;}r.trim()&&e.push({content:r.trim(),type:"text"});}return e}function ka(t){return t&&typeof t=="object"&&!t[_t]}function ba(t){return t&&typeof t=="object"&&t[_t]===true}function se({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),a=t.parsedJson||tt(n),r=Array.isArray(a)?a.find(l=>l.type==="json"):a?.[0];if(!r)return jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsx("div",{className:"font-medium",children:"Error"}),jsx("div",{children:n})]});let{thinking:o,sql_query:s,error:i}=r?.content||{};return i?jsxs("div",{className:`text-destructive text-sm ${e||""}`,children:[jsx("div",{className:"font-medium",children:"Error"}),jsx("div",{children:i})]}):s?jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[o&&jsx("div",{className:"mb-2",children:jsx(G,{content:o,className:"text-sm max-w-none"})}),s&&jsx("div",{className:"mb-2",children:jsx(Ct,{language:"sql",value:s,defaultOpen:false})})]}):null}function St({children:t,defaultOpen:e=false,wrapperType:n="standard",compact:a=false,className:r}){let[o,s]=useState(e),[i,l]=useState(false),d=useRef(null);useEffect(()=>{let p=d.current;p&&(o||(p.scrollTop=p.scrollHeight),l(p.scrollHeight>p.clientHeight));},[o,t]);let c={standard:"bg-muted/30 border-border",info:"bg-info/10 border-info/30",warning:"bg-warning/10 border-warning/30"},u={standard:"text-muted-foreground hover:text-foreground",info:"text-info hover:text-info/80",warning:"text-warning hover:text-warning/80"};return jsx("div",{className:`relative text-sm ${a?"":"mb-2"} ${r||""}`,children:jsx(Et.Root,{open:o,onOpenChange:s,className:`border rounded-sm ${c[n]}`,children:jsxs("div",{ref:d,className:`overflow-y-auto ${o?"":"max-h-[200px]"}`,children:[i&&jsx(Et.Trigger,{className:`sticky top-0 text-center text-xs py-1 transition-opacity w-full cursor-pointer ${u[n]}`,children:o?"Less \u2193":"More \u2191"}),jsx("div",{className:`${a?"px-2 py-1":"p-2"} m-0 overflow-x-auto break-words whitespace-pre-wrap`,children:t})]})})})}function Ae(t){return new Date(t).toLocaleTimeString("en-US",{hour12:false,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function le({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-muted-foreground/60 mr-2 select-none",children:Ae(e)}),jsx("span",{className:"text-foreground/80",children:t})]})}function wt({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-info/60 mr-2 select-none",children:Ae(e)}),jsx("span",{className:"text-info/90",children:t})]})}function ce({children:t,timestamp:e}){return jsxs("div",{className:"flex",children:[e&&jsx("span",{className:"text-warning/60 mr-2 select-none",children:Ae(e)}),jsx("span",{className:"text-warning/90",children:t})]})}function ue({item:t,className:e}){if(!t.content)return null;let n=typeof t.content=="string"?t.content:JSON.stringify(t.content),a=t.parsedJson||tt(n),r=Array.isArray(a)?a.find(c=>c.type==="json"):a?.[0],{step_by_step:o,thinking:s,code:i,warnings:l,error:d}=r?.content||{};return d?jsx(St,{wrapperType:"info",className:e,children:jsx(wt,{children:d})}):!o&&!i?null:jsxs("div",{className:`text-foreground whitespace-pre-wrap leading-normal ${e||""}`,children:[o&&jsx(G,{content:o,className:"text-sm max-w-none"}),s&&jsx("div",{className:"mb-2",children:jsx(G,{content:s,className:"text-sm max-w-none"})}),i&&jsx("div",{className:"mb-2",children:jsx(Ct,{language:"python",value:i,defaultOpen:false})}),l&&jsxs("div",{className:"text-sm text-warning",children:[jsx("div",{className:"font-medium",children:"Warnings"}),jsx(G,{content:l,className:"text-sm max-w-none"})]})]})}function de({item:t,className:e}){let n=t.parsedJson;if(!n?.length)return null;let a=n.map(i=>i.message?.trim()?{level:i.level,message:i.message,timestamp:i.timestamp,index:i.index}:null).filter(i=>i!==null);if(a.sort((i,l)=>i.index-l.index),a.length===0)return null;let r=a.some(i=>i.level==="error"),o=a.some(i=>i.level==="warning"),s=r?"info":o?"warning":"standard";return jsx("div",{className:`text-foreground leading-normal ${e||""}`,children:jsx(St,{wrapperType:s,compact:true,children:a.map((i,l)=>jsx(_a,{output:i},`${i.level}-${l}`))})})}function _a({output:t}){switch(t.level){case "output":return jsx(le,{timestamp:t.timestamp,children:t.message});case "error":return jsx(wt,{timestamp:t.timestamp,children:t.message});case "warning":return jsx(ce,{timestamp:t.timestamp,children:t.message});default:return jsx("div",{className:"text-muted-foreground",children:t.message})}}var Ia={"websearch.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched web for "${n}"`:`Failed to search web for "${n}"`:`Searching web for "${n}"...`:"Web search"}},"webparser.parse":{icon:Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"siteparser.parse":{icon:Globe,getLabel:(t,e)=>{let n=t?.url;return n?e?e==="success"?`Read ${n}`:`Failed to read ${n}`:`Reading ${n}...`:"Parse site"}},"resource_definitions.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched resources for "${n}"`:`Failed to search resources for "${n}"`:`Searching resources for "${n}"...`:"Search resources"}},"memory.search":{icon:Search,getLabel:(t,e)=>{let n=t?.query;return n?e?e==="success"?`Searched memories for "${n}"`:`Failed to search memories for "${n}"`:`Searching memories for "${n}"...`:"Search memories"}}};function _n(t){return t&&Ia[t]||null}function Na(t){if(!t?.result||t.status==="error")return false;let e=t.result;if(typeof e=="string"){let n=e.trim();return n!==""&&n!=="{}"&&n!=="[]"}if(Array.isArray(e))return e.length>0;if(typeof e=="object"&&e!==null){let n=Object.keys(e);return n.length===0?false:n.some(a=>{let r=e[a];return r==null?false:typeof r=="string"?r.trim()!=="":Array.isArray(r)?r.length>0:typeof r=="object"?Object.keys(r).length>0:true})}return true}function Ba({actionType:t}){let n=_n(t)?.icon||Wrench;return jsx(n,{className:"h-4 w-4"})}function Da({actionType:t,input:e,name:n,result:a}){if(a?.finished_message)return jsx("span",{children:a.finished_message});if(a?.running_message)return jsx("span",{children:a.running_message});let r=_n(t);if(r)return jsx("span",{children:r.getLabel(e,a?.status)});let o=a?`Completed ${n}`:`Running ${n}...`;return jsx("span",{children:o})}function me({toolGroup:t,ContentComponent:e,className:n}){let[a,r]=useState(false),o=t.invocation,s=t.result,i=Na(s),l=o?.action_type||s?.action_type,d=o?.input||s?.input,c=o?.name||s?.name,u=s?.status==="error"?"text-gray-500/80 dark:text-gray-400/80":"text-gray-500 dark:text-gray-400";return jsxs(Et.Root,{open:a,onOpenChange:r,className:`relative w-full max-w-4xl space-y-2 leading-normal ${n||""}`,children:[jsxs(Et.Trigger,{className:`flex items-center gap-2 text-sm transition-colors w-full ${u} ${i?"hover:text-gray-900 dark:hover:text-gray-100 cursor-pointer":"cursor-default"}`,disabled:!i,children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx(Ba,{actionType:l}),jsx(Da,{actionType:l,input:d,name:c,result:s})]}),i&&jsx(ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${a?"rotate-180":""}`})]}),i&&s&&jsx(Et.Content,{children:jsx("div",{className:"pl-6 mt-2",children:e?jsx(e,{content:{content:s.result,content_type:"text",ui_content_type:"text"}}):jsx("pre",{className:"text-sm bg-gray-100 dark:bg-gray-800 p-2 rounded overflow-x-auto",children:JSON.stringify(s.result,null,2)})})})]})}var Sn={v:"5.10.2",fr:60,ip:0,op:180,w:144,h:144,nm:"system-solid-719-spinner-circle",ddd:0,assets:[{id:"comp_6",nm:"loop-snake-alt",fr:60,layers:[{ddd:0,ind:1,ty:0,nm:"mask-2",td:1,refId:"comp_7",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[72,72,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:144,h:144,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"circle 2",tt:2,tp:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-30.652,0],[0,30.652],[30.652,0],[0,-30.652]],o:[[30.652,0],[0,-30.652],[-30.652,0],[0,30.652]],v:[[0,55.5],[55.5,0],[0,-55.5],[-55.5,0]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
11
+ $bm_rt = comp('system-solid-719-spinner-circle').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:9,ix:5},lc:2,lj:1,ml:4,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
12
+ $bm_rt = comp('system-solid-719-spinner-circle').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"circle",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:300,st:0,ct:1,bm:0}]},{id:"comp_7",nm:"mask-2",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"Null 1108",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[78.6,78.6,100],ix:6,l:2}},ao:0,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0]},{t:180,s:[-360]}],ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[111,111],ix:2},p:{a:0,k:[0,0],ix:3},nm:"Ellipse Path 1",mn:"ADBE Vector Shape - Ellipse",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.33],y:[1]},o:{x:[.335],y:[0]},t:90,s:[99.9]},{t:157,s:[0]}],ix:1},e:{a:1,k:[{i:{x:[.33],y:[1]},o:{x:[.33],y:[0]},t:111,s:[100]},{t:180,s:[.1]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:90,op:991,st:90,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"mask",parent:2,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[111,111],ix:2},p:{a:0,k:[0,0],ix:3},nm:"Ellipse Path 1",mn:"ADBE Vector Shape - Ellipse",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.33],y:[1]},o:{x:[.335],y:[0]},t:0,s:[99.9]},{t:67,s:[0]}],ix:1},e:{a:1,k:[{i:{x:[.33],y:[1]},o:{x:[.33],y:[0]},t:21,s:[100]},{t:90,s:[.1]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:90,st:0,ct:1,bm:0}]},{id:"comp_9",nm:"mask-1",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"Null 1107",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[78.6,78.6,100],ix:6,l:2}},ao:0,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.584],y:[.217]},o:{x:[.247],y:[0]},t:0,s:[0]},{i:{x:[.647],y:[.59]},o:{x:[.314],y:[.277]},t:9,s:[18.902]},{i:{x:[.649],y:[.675]},o:{x:[.315],y:[.302]},t:13,s:[36.82]},{i:{x:[.693],y:[1]},o:{x:[.208],y:[.228]},t:18,s:[63.991]},{t:240,s:[1080]}],ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.833,y:.833},o:{x:.26,y:0},t:168,s:[{i:[[-30.652,0],[-4.25,4.25],[30.652,0],[5.125,5.125]],o:[[30.652,0],[-4.25,4.25],[-30.652,0],[6,6.5]],v:[[0,55],[45,32.75],[0,55.5],[-45.25,32.5]],c:true}]},{i:{x:.833,y:.833},o:{x:.167,y:.167},t:186,s:[{i:[[-43.5,0],[4.456,-17.326],[30.652,0],[2.907,16.173]],o:[[38.5,0],[-2.411,15.677],[-30.652,0],[-5.064,-20.184]],v:[[0,39.201],[49.544,18.576],[0,55.5],[-49.686,18.434]],c:true}]},{i:{x:.05,y:1},o:{x:.167,y:.167},t:196,s:[{i:[[-50,0],[0,-29.209],[30.652,0],[1.285,24.253]],o:[[50.75,0],[-1.065,24.034],[-30.652,0],[0,-29.896]],v:[[0,14.948],[52.868,8.209],[0,55.5],[-52.931,8.146]],c:true}]},{t:240,s:[{i:[[-30.652,0],[0,-30.652],[30.652,0],[0,30.652]],o:[[30.652,0],[0,30.652],[-30.652,0],[0,-30.652]],v:[[0,-55.5],[55.5,0],[0,55.5],[-55.5,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:168,op:350,st:120,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"mask",parent:2,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[111,111],ix:2},p:{a:0,k:[0,0],ix:3},nm:"Ellipse Path 1",mn:"ADBE Vector Shape - Ellipse",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.334],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0]},{t:48,s:[35]}],ix:1},e:{a:1,k:[{i:{x:[.334],y:[1]},o:{x:[.333],y:[0]},t:0,s:[100]},{t:48,s:[65]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:168,st:0,ct:1,bm:0}]},{id:"comp_11",nm:"mask-3",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"Null 1109",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[78.6,78.6,100],ix:6,l:2}},ao:0,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.833,y:.833},o:{x:.26,y:0},t:48,s:[{i:[[-30.652,0],[-4.25,4.25],[30.652,0],[5.125,5.125]],o:[[30.652,0],[-4.25,4.25],[-30.652,0],[6,6.5]],v:[[0,55],[45,32.75],[0,55.5],[-45.25,32.5]],c:true}]},{i:{x:.833,y:.833},o:{x:.167,y:.167},t:66,s:[{i:[[-43.5,0],[4.456,-17.326],[30.652,0],[2.907,16.173]],o:[[38.5,0],[-2.411,15.677],[-30.652,0],[-5.064,-20.184]],v:[[0,39.201],[49.544,18.576],[0,55.5],[-49.686,18.434]],c:true}]},{i:{x:.05,y:1},o:{x:.167,y:.167},t:76,s:[{i:[[-50,0],[0,-29.209],[30.652,0],[1.285,24.253]],o:[[50.75,0],[-1.065,24.034],[-30.652,0],[0,-29.896]],v:[[0,14.948],[52.868,8.209],[0,55.5],[-52.931,8.146]],c:true}]},{t:120,s:[{i:[[-30.652,0],[0,-30.652],[30.652,0],[0,30.652]],o:[[30.652,0],[0,30.652],[-30.652,0],[0,-30.652]],v:[[0,-55.5],[55.5,0],[0,55.5],[-55.5,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:48,op:523,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[111,111],ix:2},p:{a:0,k:[0,0],ix:3},nm:"Ellipse Path 1",mn:"ADBE Vector Shape - Ellipse",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.334],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0]},{t:48,s:[35]}],ix:1},e:{a:1,k:[{i:{x:[.334],y:[1]},o:{x:[.333],y:[0]},t:0,s:[100]},{t:48,s:[65]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:49,st:0,ct:1,bm:0}]},{id:"comp_14",nm:"mask-4",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"Null 1110",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[78.6,78.6,100],ix:6,l:2}},ao:0,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.167],y:[.167]},t:0,s:[0]},{t:90,s:[100]}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.833,y:.833},o:{x:.167,y:.167},t:0,s:[{i:[[-0.276,0],[0,-0.276],[.276,0],[0,.276]],o:[[.276,0],[0,.276],[-0.276,0],[0,-0.276]],v:[[0,-0.5],[.5,0],[0,.5],[-0.5,0]],c:true}]},{t:120,s:[{i:[[-30.154,0],[0,-30.154],[30.154,0],[0,30.154]],o:[[30.154,0],[0,30.154],[-30.154,0],[0,-30.154]],v:[[0,-54.598],[54.598,0],[0,54.598],[-54.598,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:0,k:0,ix:1},e:{a:0,k:100,ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:1800,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:1,k:[{i:{x:[.161],y:[1]},o:{x:[.167],y:[.167]},t:0,s:[100]},{t:60,s:[0]}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.161,y:1},o:{x:.167,y:.167},t:0,s:[{i:[[-30.652,0],[0,-30.652],[30.652,0],[0,30.652]],o:[[30.652,0],[0,30.652],[-30.652,0],[0,-30.652]],v:[[0,-55.5],[55.5,0],[0,55.5],[-55.5,0]],c:true}]},{t:60,s:[{i:[[-37.003,0],[0,-37.003],[37.003,0],[0,37.003]],o:[[37.003,0],[0,37.003],[-37.003,0],[0,-37.003]],v:[[0,-67],[67,0],[0,67],[-67,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:0,k:0,ix:1},e:{a:0,k:100,ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:1800,st:0,ct:1,bm:0}]},{id:"comp_16",nm:"mask-5",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"Null 1111",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[78.6,78.6,100],ix:6,l:2}},ao:0,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:0,y:.66},o:{x:.124,y:.088},t:20,s:[{i:[[-0.276,0],[0,-0.276],[.276,0],[0,.276]],o:[[.276,0],[0,.276],[-0.276,0],[0,-0.276]],v:[[0,-0.5],[.5,0],[0,.5],[-0.5,0]],c:true}]},{t:60,s:[{i:[[-30.154,0],[0,-30.154],[30.154,0],[0,30.154]],o:[[30.154,0],[0,30.154],[-30.154,0],[0,-30.154]],v:[[0,-54.598],[54.598,0],[0,54.598],[-54.598,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:0,k:0,ix:1},e:{a:0,k:100,ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:20,op:1800,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:0,s:[100]},{t:60,s:[0]}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.507,y:1},o:{x:.095,y:.321},t:0,s:[{i:[[-30.652,0],[0,-30.652],[30.652,0],[0,30.652]],o:[[30.652,0],[0,30.652],[-30.652,0],[0,-30.652]],v:[[0,-55.5],[55.5,0],[0,55.5],[-55.5,0]],c:true}]},{t:60,s:[{i:[[-37.003,0],[0,-37.003],[37.003,0],[0,37.003]],o:[[37.003,0],[0,37.003],[-37.003,0],[0,-37.003]],v:[[0,-67],[67,0],[0,67],[-67,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:0,k:0,ix:1},e:{a:0,k:100,ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:1800,st:0,ct:1,bm:0}]},{id:"comp_19",nm:"mask-6",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"Null 1112",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[78.6,78.6,100],ix:6,l:2}},ao:0,ip:0,op:1800,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:"mask",parent:3,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[.514,-0.84,0],ix:2,l:2},a:{a:0,k:[.514,-6.24,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[-12.745,-9.902],[-2.377,-1.327],[-8.708,-0.155],[-4.427,1.116],[-5.211,16.683],[-0.162,4.273],[.683,3.57],[16.218,4.737],[3.846,.074],[4.596,-1.531],[-0.017,-17.15],[-13.185,-6.083],[-3.505,-0.454],[-6.139,3.186],[-3.046,5.293],[-0.309,4.673],[.703,2.893],[4.329,3.821],[5.306,.603],[4.422,-2.403],[2.136,-3.916],[-0.144,-3.846],[-3.333,-3.451],[-1.877,-0.92],[-3.188,.401],[-1.893,5.145],[.978,2.596],[2.775,.798],[1.781,-2.308],[-1.419,-1.448]],o:[[.965,16.115],[2.149,1.67],[7.626,4.259],[4.598,.082],[16.65,-4.196],[1.275,-4.083],[.138,-3.624],[-3.192,-16.68],[-3.724,-1.088],[-4.887,-0.094],[-16.161,5.384],[.287,14.428],[3.249,1.499],[6.853,.887],[5.491,-2.85],[2.336,-4.06],[.198,-3.003],[-1.376,-5.661],[-4.129,-3.645],[-5.084,-0.578],[-3.952,2.148],[-1.841,3.376],[.182,4.869],[1.49,1.543],[3.02,1.48],[5.353,-0.673],[1.032,-2.804],[-1.139,-3.025],[-2.704,-0.778],[-1.14,1.477],[0,0]],v:[[-55.765,-4.143],[-34.151,37.195],[-27.316,41.629],[-2.358,48.14],[11.243,46.45],[46.671,12.649],[48.717,.071],[47.804,-10.664],[15.642,-45.824],[4.204,-47.466],[-10.148,-45.15],[-37.914,-6.587],[-16.262,27.132],[-6.024,29.983],[13.888,26.321],[26.864,13.719],[30.785,.393],[29.933,-8.55],[21.059,-23.045],[6.42,-29.442],[-8.246,-26.497],[-17.475,-17.167],[-20.027,-5.992],[-14.434,7.02],[-9.293,10.7],[.313,12.253],[12.328,2.889],[12.294,-5.579],[5.835,-11.66],[-1.807,-9.436],[-1.903,-4.143]],c:false},ix:2},nm:"Path 3",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:0,k:0,ix:1},e:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.167],y:[.167]},t:39,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:97.559,s:[100]},{i:{x:[.667],y:[1]},o:{x:[.298],y:[0]},t:117.559,s:[100]},{i:{x:[.802],y:[1]},o:{x:[.333],y:[0]},t:193.559,s:[45.895]},{t:228,s:[0]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:1,ml:4,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 33",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:194,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"mask",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.652],y:[.354]},o:{x:[.443],y:[.213]},t:0,s:[0]},{i:{x:[.526],y:[.666]},o:{x:[.231],y:[.231]},t:118,s:[-473.927]},{t:240,s:[-1384.503]}],ix:10},p:{a:0,k:[0,0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{t:118.559,s:[{i:[[-30.652,0],[0,-30.652],[30.652,0],[0,30.652]],o:[[30.652,0],[0,30.652],[-30.652,0],[0,-30.652]],v:[[0,-55.5],[55.5,0],[0,55.5],[-55.5,0]],c:true}],h:1},{i:{x:.29,y:1},o:{x:.333,y:0},t:194,s:[{i:[[-26.752,3.759],[0,-30.652],[30.646,-1.513],[0,30.652]],o:[[21.768,-3.059],[0,30.652],[-30.615,1.511],[0,-12.422]],v:[[-2.911,-43.444],[49.68,1.935],[-0.898,54.175],[-55.863,-2.206]],c:true}]},{t:240,s:[{i:[[-30.652,0],[0,-30.652],[30.652,0],[0,30.652]],o:[[30.652,0],[0,30.652],[-30.652,0],[0,-30.652]],v:[[0,-55.5],[55.5,0],[0,55.5],[-55.5,0]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:1,k:[{t:0,s:[1.1],h:1},{i:{x:[.728],y:[1]},o:{x:[.28],y:[-0.325]},t:39,s:[0]},{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:194,s:[0]},{t:240,s:[1.1]}],ix:1},e:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:0,s:[73.3]},{t:73.559,s:[0],h:1},{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:194,s:[82.8]},{t:240,s:[73.3]}],ix:2},o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:0,s:[91]},{t:39,s:[-89],h:1},{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:194,s:[-382]},{t:240,s:[-319]}],ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.070588238537,.074509806931,.192156866193,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:11.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Ellipse 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:595,st:0,ct:1,bm:0}]}],layers:[{ddd:0,ind:1,ty:3,nm:"control",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,ef:[{ty:5,nm:"primary",np:3,mn:"ADBE Color Control",ix:1,en:1,ef:[{ty:2,nm:"Color",mn:"ADBE Color Control-0001",ix:1,v:{a:0,k:[.071,.075,.192],ix:1}}]}],ip:0,op:1751,st:0,bm:0},{ddd:0,ind:8,ty:0,nm:"loop-snake-alt",refId:"comp_6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[72,72,0],ix:2,l:2},a:{a:0,k:[72,72,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:144,h:144,ip:0,op:190,st:0,bm:0}],markers:[{tm:0,cm:"default:loop-snake-alt",dr:180}]};var wn={v:"5.12.1",fr:60,ip:0,op:59,w:500,h:500,nm:"system-solid-31-check",ddd:0,assets:[{id:"comp_1",nm:"hover-check",fr:60,layers:[{ddd:0,ind:1,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[2083,2083,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.26,0],[.2,.19],[0,0],[-0.39,.39],[-0.39,-0.39],[0,0],[0,0],[-0.39,-0.39],[.39,-0.39],[0,0]],o:[[-0.26,0],[0,0],[-0.39,-0.39],[.39,-0.39],[0,0],[0,0],[.39,-0.39],[.39,.39],[0,0],[-0.2,.19]],v:[[-1.34,4],[-2.05,3.71],[-4.55,1.2],[-4.55,-0.21],[-3.14,-0.21],[-1.34,1.59],[3.47,-3.21],[4.88,-3.21],[4.88,-1.8],[-0.63,3.71]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ind:1,ty:"sh",ix:2,ks:{a:0,k:{i:[[5.41,0],[0,0],[-0.13,-5.51],[-5.41,0],[0,0],[.13,5.51]],o:[[0,0],[-5.51,.14],[.13,5.43],[0,0],[5.51,-0.14],[-0.13,-5.43]],v:[[0,-10],[-0.24,-10],[-10,.24],[0,10],[.24,10],[10,-0.24]],c:true},ix:2},nm:"Path 2",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
13
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:60,op:305,st:60,ct:1,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[2083,2083,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.26,0],[.2,.19],[0,0],[-0.39,.39],[-0.39,-0.39],[0,0],[0,0],[-0.39,-0.39],[.39,-0.39],[0,0]],o:[[-0.26,0],[0,0],[-0.39,-0.39],[.39,-0.39],[0,0],[0,0],[.39,-0.39],[.39,.39],[0,0],[-0.2,.19]],v:[[-1.34,4],[-2.05,3.71],[-4.55,1.2],[-4.55,-0.21],[-3.14,-0.21],[-1.34,1.59],[3.47,-3.21],[4.88,-3.21],[4.88,-1.8],[-0.63,3.71]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ind:1,ty:"sh",ix:2,ks:{a:0,k:{i:[[5.41,0],[0,0],[-0.13,-5.51],[-5.41,0],[0,0],[.13,5.51]],o:[[0,0],[-5.51,.14],[.13,5.43],[0,0],[5.51,-0.14],[-0.13,-5.43]],v:[[0,-10],[-0.24,-10],[-10,.24],[0,10],[.24,10],[10,-0.24]],c:true},ix:2},nm:"Path 2",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
14
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:1,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:0,nm:"mask",td:1,refId:"comp_2",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[250,250,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:500,h:500,ip:1,op:60,st:1,bm:0},{ddd:0,ind:4,ty:4,nm:".primary.design",cl:"primary design",tt:2,tp:3,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:-180,ix:10},p:{a:0,k:[250.004,250.003,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[-2.572,-106.399],[106.399,-2.572],[2.572,106.399],[-106.399,2.572]],o:[[2.572,106.399],[-106.399,2.572],[-2.572,-106.399],[106.399,-2.572]],v:[[192.652,-4.656],[4.656,192.652],[-192.652,4.656],[-4.656,-192.652]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
15
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
16
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:31.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:1,op:60,st:1,ct:1,bm:0}]},{id:"comp_2",nm:"mask",fr:60,layers:[{ddd:0,ind:1,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[253.419,260.347,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[149.956,-127.947],[-31.321,52.362],[-83.54,.208]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.833],y:[1]},o:{x:[.333],y:[0]},t:0,s:[100]},{t:19,s:[100]}],ix:1},e:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.333],y:[0]},t:0,s:[28.5]},{t:19,s:[100]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
17
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:41,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:59,st:-1,ct:1,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[253.419,260.347,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[149.956,-127.947],[-31.321,52.362],[-83.54,.208]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.05],y:[1]},o:{x:[.167],y:[.167]},t:20,s:[0]},{t:59,s:[100]}],ix:1},e:{a:1,k:[{i:{x:[.05],y:[1]},o:{x:[.333],y:[0]},t:20,s:[0]},{t:59,s:[28.5]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
18
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:41,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:59,st:-1,ct:1,bm:0}]},{id:"comp_5",nm:"check",fr:60,layers:[{ddd:0,ind:1,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[253.419,260.347,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[149.956,-122.947],[-31.321,57.362],[-83.54,5.208]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:11,s:[0]},{t:30,s:[100]}],ix:1},e:{a:1,k:[{i:{x:[.19],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0]},{t:27,s:[100]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
19
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:41,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,-5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:59,st:-1,ct:1,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[253.419,260.347,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[149.956,-122.947],[-31.321,57.362],[-83.54,5.208]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"tm",s:{a:1,k:[{i:{x:[.05],y:[1]},o:{x:[.167],y:[.167]},t:20,s:[0]},{t:59,s:[100]}],ix:1},e:{a:1,k:[{i:{x:[.05],y:[1]},o:{x:[.333],y:[0]},t:20,s:[0]},{t:59,s:[28.5]}],ix:2},o:{a:0,k:0,ix:3},m:1,ix:2,nm:"Trim Paths 1",mn:"ADBE Vector Filter - Trim",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
20
+ $bm_rt = comp('system-solid-31-check').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:41,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,-5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:59,st:-1,ct:1,bm:0}]}],layers:[{ddd:0,ind:1,ty:3,nm:"control",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,ef:[{ty:5,nm:"primary",np:3,mn:"ADBE Color Control",ix:1,en:1,ef:[{ty:2,nm:"Color",mn:"ADBE Color Control-0001",ix:1,v:{a:0,k:[.071,.075,.192],ix:1}}]}],ip:0,op:300,st:0,bm:0},{ddd:0,ind:3,ty:0,nm:"hover-check",refId:"comp_1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[250,250,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:500,h:500,ip:0,op:69,st:0,bm:0}],markers:[{tm:0,cm:"default:hover-check",dr:59}],props:{}};var En={v:"5.12.1",fr:60,ip:0,op:60,w:500,h:500,nm:"system-solid-56-warning",ddd:0,assets:[{id:"comp_1",nm:"mask-2",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"NULL ",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:1,k:[{i:{x:[.159],y:[1]},o:{x:[.333],y:[0]},t:1,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:35,s:[35]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:45.441,s:[-35]},{t:59,s:[0]}],ix:10},p:{a:0,k:[250,284,0],ix:2,l:2},a:{a:0,k:[50,50,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,ip:0,op:59,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.005,120.173,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:0,y:1},o:{x:.167,y:.167},t:0,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.005,61],[.005,61]],c:false}]},{t:29,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,0],[0,0]],c:false}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[0,0,0,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:52,ix:5},lc:2,lj:1,ml:10,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:59,st:-1,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.004,10.799,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:0,y:1},o:{x:.167,y:.167},t:0,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,169.167],[.011,168.333]],c:false}]},{t:29,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[0,0,0,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:41,ix:5},lc:2,lj:2,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,-15],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:59,st:-1,ct:1,bm:0}]},{id:"comp_2",nm:"hover-warning",fr:60,layers:[{ddd:0,ind:1,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.12,y:1},o:{x:.167,y:.167},t:54,s:[{i:[[.236,-1.806],[.914,-1.802],[.912,-1.35],[1.362,-1.122],[1.588,-1.12],[1.585,-0.669],[1.81,-0.441],[1.807,.01],[5.391,5.454],[1.121,1.588],[.669,1.585],[.441,1.81],[-0.01,1.807],[-0.236,1.806],[-0.914,1.802],[-0.912,1.35],[-1.136,1.123],[-9.027,-1.86],[-1.802,-0.914],[-1.35,-0.912],[-1.122,-1.362],[-1.121,-1.588],[-0.669,-1.585],[-0.441,-1.81],[.01,-1.808]],o:[[-0.462,1.805],[-0.687,1.578],[-1.139,1.575],[-1.138,1.349],[-1.361,.896],[-1.813,.893],[-1.809,.215],[-7.456,-0.043],[-1.123,-1.136],[-0.896,-1.361],[-0.893,-1.813],[-0.215,-1.809],[.01,-1.807],[.462,-1.805],[.687,-1.578],[1.139,-1.575],[6.816,-6.513],[1.805,.462],[1.578,.687],[1.575,1.139],[1.349,1.137],[.896,1.361],[.893,1.813],[.215,1.809],[-0.01,1.808]],v:[[27.506,115.798],[25.667,121.21],[23.155,125.94],[19.515,130.212],[15.201,133.802],[10.442,136.26],[5.009,138.036],[-0.416,138.457],[-20.476,129.981],[-23.84,125.668],[-26.298,120.909],[-28.074,115.476],[-28.495,110.051],[-28.011,104.631],[-26.173,99.219],[-23.66,94.489],[-20.246,90.216],[5.331,82.456],[10.743,84.294],[15.473,86.807],[19.745,90.447],[23.335,94.761],[25.793,99.52],[27.569,104.953],[27.99,110.378]],c:true}]},{t:60,s:[{i:[[.208,-1.667],[.833,-1.667],[.833,-1.25],[1.25,-1.042],[1.458,-1.042],[1.458,-0.625],[1.667,-0.417],[1.667,0],[5,5],[1.042,1.458],[.625,1.458],[.417,1.667],[0,1.667],[-0.208,1.667],[-0.833,1.667],[-0.833,1.25],[-1.042,1.042],[-8.333,-1.667],[-1.667,-0.833],[-1.25,-0.833],[-1.042,-1.25],[-1.042,-1.458],[-0.625,-1.458],[-0.417,-1.667],[0,-1.667]],o:[[-0.417,1.667],[-0.625,1.458],[-1.042,1.458],[-1.042,1.25],[-1.25,.833],[-1.667,.833],[-1.667,.208],[-6.875,0],[-1.042,-1.042],[-0.833,-1.25],[-0.833,-1.667],[-0.208,-1.667],[0,-1.667],[.417,-1.667],[.625,-1.458],[1.042,-1.458],[6.25,-6.041],[1.667,.417],[1.458,.625],[1.458,1.042],[1.25,1.042],[.833,1.25],[.833,1.667],[.208,1.667],[0,1.667]],v:[[25.987,108.66],[24.321,113.659],[22.029,118.034],[18.696,121.992],[14.738,125.325],[10.363,127.617],[5.364,129.283],[.364,129.7],[-18.176,121.992],[-21.301,118.034],[-23.593,113.659],[-25.259,108.66],[-25.676,103.66],[-25.259,98.66],[-23.593,93.661],[-21.301,89.286],[-18.176,85.328],[5.364,78.037],[10.363,79.703],[14.738,81.995],[18.696,85.328],[22.029,89.286],[24.321,93.661],[25.987,98.66],[26.404,103.66]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ind:1,ty:"sh",ix:2,ks:{a:1,k:[{i:{x:.12,y:1},o:{x:.167,y:.167},t:54,s:[{i:[[0,0],[-12.427,-0.072],[.072,-12.427],[0,0],[12.427,.072],[-0.072,12.427]],o:[[.072,-12.427],[12.427,.072],[0,0],[-0.072,12.427],[-12.427,-0.072],[0,0]],v:[[-21.802,-70.666],[.923,-93.129],[23.386,-70.405],[22.863,19.97],[.139,42.433],[-22.324,19.709]],c:true}]},{t:60,s:[{i:[[0,0],[-11.458,0],[0,-11.458],[0,0],[11.458,0],[0,11.458]],o:[[0,-11.458],[11.458,0],[0,0],[0,11.458],[-11.458,0],[0,0]],v:[[-20.468,-62.996],[.364,-83.828],[21.196,-62.996],[21.196,20.332],[.364,41.164],[-20.468,20.332]],c:true}]}],ix:2},nm:"Path 2",mn:"ADBE Vector Shape - Group",hd:false},{ind:2,ty:"sh",ix:3,ks:{a:0,k:{i:[[2.708,4.791],[0,0],[5.416,-10.208],[0,0],[-2.916,-4.791],[-5.416,0],[0,0],[-2.708,4.583]],o:[[0,0],[-5.416,-10.208],[0,0],[-2.708,4.791],[2.708,4.583],[0,0],[5.416,0],[2.917,-4.791]],v:[[206.809,164.073],[14.113,-200.487],[-13.385,-200.487],[-206.081,164.073],[-205.664,179.488],[-192.332,186.988],[193.06,186.988],[206.392,179.488]],c:true},ix:2},nm:"Path 3",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
21
+ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:4,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:54,op:300,st:0,ct:1,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[.208,-1.667],[.833,-1.667],[.833,-1.25],[1.25,-1.042],[1.458,-1.042],[1.458,-0.625],[1.667,-0.417],[1.667,0],[5,5],[1.042,1.458],[.625,1.458],[.417,1.667],[0,1.667],[-0.208,1.667],[-0.833,1.667],[-0.833,1.25],[-1.042,1.042],[-8.333,-1.667],[-1.667,-0.833],[-1.25,-0.833],[-1.042,-1.25],[-1.042,-1.458],[-0.625,-1.458],[-0.417,-1.667],[0,-1.667]],o:[[-0.417,1.667],[-0.625,1.458],[-1.042,1.458],[-1.042,1.25],[-1.25,.833],[-1.667,.833],[-1.667,.208],[-6.875,0],[-1.042,-1.042],[-0.833,-1.25],[-0.833,-1.667],[-0.208,-1.667],[0,-1.667],[.417,-1.667],[.625,-1.458],[1.042,-1.458],[6.25,-6.041],[1.667,.417],[1.458,.625],[1.458,1.042],[1.25,1.042],[.833,1.25],[.833,1.667],[.208,1.667],[0,1.667]],v:[[25.987,108.66],[24.321,113.659],[22.029,118.034],[18.696,121.992],[14.738,125.325],[10.363,127.617],[5.364,129.283],[.364,129.7],[-18.176,121.992],[-21.301,118.034],[-23.593,113.659],[-25.259,108.66],[-25.676,103.66],[-25.259,98.66],[-23.593,93.661],[-21.301,89.286],[-18.176,85.328],[5.364,78.037],[10.363,79.703],[14.738,81.995],[18.696,85.328],[22.029,89.286],[24.321,93.661],[25.987,98.66],[26.404,103.66]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ind:1,ty:"sh",ix:2,ks:{a:0,k:{i:[[0,0],[-11.458,0],[0,-11.458],[0,0],[11.458,0],[0,11.458]],o:[[0,-11.458],[11.458,0],[0,0],[0,11.458],[-11.458,0],[0,0]],v:[[-20.468,-62.996],[.364,-83.828],[21.196,-62.996],[21.196,20.332],[.364,41.164],[-20.468,20.332]],c:true},ix:2},nm:"Path 2",mn:"ADBE Vector Shape - Group",hd:false},{ind:2,ty:"sh",ix:3,ks:{a:0,k:{i:[[2.708,4.791],[0,0],[5.416,-10.208],[0,0],[-2.916,-4.791],[-5.416,0],[0,0],[-2.708,4.583]],o:[[0,0],[-5.416,-10.208],[0,0],[-2.708,4.791],[2.708,4.583],[0,0],[5.416,0],[2.917,-4.791]],v:[[206.809,164.073],[14.113,-200.487],[-13.385,-200.487],[-206.081,164.073],[-205.664,179.488],[-192.332,186.988],[193.06,186.988],[206.392,179.488]],c:true},ix:2},nm:"Path 3",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
22
+ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:4,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:1,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:3,nm:"NULL ",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:12,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:18.25,s:[-30]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:24.5,s:[30]},{i:{x:[.16],y:[1]},o:{x:[.333],y:[0]},t:32,s:[-30]},{t:47,s:[0]}],ix:10},p:{a:0,k:[250,284,0],ix:2,l:2},a:{a:0,k:[50,50,0],ix:1,l:2},s:{a:1,k:[{i:{x:[0,0,.2],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:1,s:[100,100,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[1,1,.8],y:[0,0,0]},t:17,s:[180,180,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[.7,.7,.7],y:[0,0,0]},t:36,s:[180,180,100]},{t:59,s:[100,100,100]}],ix:6,l:2}},ao:0,ip:3,op:54,st:1,bm:0},{ddd:0,ind:4,ty:4,nm:".primary.design",cl:"primary design",parent:3,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.005,120.173,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,0],[0,0]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
23
+ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:52,ix:5},lc:2,lj:1,ml:10,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:3,op:54,st:0,ct:1,bm:0},{ddd:0,ind:5,ty:4,nm:".primary.design",cl:"primary design",parent:3,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.004,10.799,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
24
+ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:42,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,-14.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:3,op:54,st:0,ct:1,bm:0},{ddd:0,ind:6,ty:0,nm:"mask-1",td:1,refId:"comp_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[250,250,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:500,h:500,ip:1,op:54,st:1,bm:0},{ddd:0,ind:7,ty:4,nm:".primary.design",cl:"primary design",tt:2,tp:6,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250.004,239.584,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0],[0,0]],o:[[0,0],[0,0],[0,0]],v:[[-192.709,182.293],[0,-182.293],[192.709,182.293]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.071,.075,.192,1],ix:3,x:`var $bm_rt;
25
+ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:4},w:{a:0,k:31.3,ix:5},lc:2,lj:2,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Stroke",hd:false,cl:"primary"},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"fl",c:{a:0,k:[.071,.075,.192,1],ix:4,x:`var $bm_rt;
26
+ $bm_rt = comp('system-solid-56-warning').layer('control').effect('primary')('Color');`},o:{a:0,k:100,ix:5},r:1,bm:0,nm:".primary",mn:"ADBE Vector Graphic - Fill",hd:false,cl:"primary"}],ip:1,op:54,st:0,ct:1,bm:0}]},{id:"comp_3",nm:"mask-1",fr:60,layers:[{ddd:0,ind:1,ty:3,nm:"NULL 2",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:11,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:17.25,s:[-30]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:23.5,s:[30]},{i:{x:[.16],y:[1]},o:{x:[.333],y:[0]},t:31,s:[-30]},{t:46,s:[0]}],ix:10},p:{a:0,k:[250,284,0],ix:2,l:2},a:{a:0,k:[50,50,0],ix:1,l:2},s:{a:1,k:[{i:{x:[0,0,.2],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:0,s:[100,100,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[1,1,.8],y:[0,0,0]},t:16,s:[180,180,100]},{i:{x:[.3,.3,.3],y:[1,1,1]},o:{x:[.7,.7,.7],y:[0,0,0]},t:35,s:[180,180,100]},{t:58,s:[100,100,100]}],ix:6,l:2}},ao:0,ip:0,op:53,st:0,bm:0},{ddd:0,ind:2,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.005,120.173,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,0],[0,0]],c:false},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:1,k:[{i:{x:[0],y:[1]},o:{x:[.333],y:[0]},t:0,s:[52]},{i:{x:[0],y:[1]},o:{x:[1],y:[0]},t:10,s:[150]},{i:{x:[.833],y:[.833]},o:{x:[1],y:[0]},t:29,s:[150]},{t:53,s:[52]}],ix:5},lc:2,lj:1,ml:10,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:53,st:-1,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:".primary.design",cl:"primary design",parent:1,sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[50.004,10.799,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:0,y:1},o:{x:.333,y:0},t:0,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]},{i:{x:0,y:1},o:{x:1,y:0},t:10,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,142.667],[0,-41.667]],c:false}]},{i:{x:.833,y:.833},o:{x:1,y:0},t:29,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[.004,142.667],[0,-41.667]],c:false}]},{t:53,s:[{i:[[0,0],[0,0]],o:[[0,0],[0,0]],v:[[0,41.667],[0,-41.667]],c:false}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[1,1,1,1],ix:3},o:{a:0,k:100,ix:4},w:{a:1,k:[{i:{x:[0],y:[1]},o:{x:[.333],y:[0]},t:0,s:[42]},{i:{x:[0],y:[1]},o:{x:[1],y:[0]},t:10,s:[150]},{i:{x:[.833],y:[.833]},o:{x:[1],y:[0]},t:29,s:[150]},{t:53,s:[42]}],ix:5},lc:2,lj:2,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,-14.5],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false}],ip:0,op:53,st:-1,ct:1,bm:0}]}],layers:[{ddd:0,ind:1,ty:3,nm:"control",sr:1,ks:{o:{a:0,k:0,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[0,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,ef:[{ty:5,nm:"primary",np:3,mn:"ADBE Color Control",ix:1,en:1,ef:[{ty:2,nm:"Color",mn:"ADBE Color Control-0001",ix:1,v:{a:0,k:[.071,.075,.192],ix:1}}]}],ip:0,op:131,st:0,bm:0},{ddd:0,ind:3,ty:0,nm:"hover-warning",refId:"comp_2",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[250,250,0],ix:2,l:2},a:{a:0,k:[250,250,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,w:500,h:500,ip:0,op:70,st:0,bm:0}],markers:[{tm:0,cm:"default:hover-warning",dr:60}],props:{}};function Aa(){let[t,e]=useState("#000000");return useEffect(()=>{if(typeof window>"u")return;let n=()=>{let r=document.documentElement.classList.contains("dark");e(r?"#ffffff":"#000000");};n();let a=new MutationObserver(r=>{r.forEach(o=>{o.attributeName==="class"&&n();});});return a.observe(document.documentElement,{attributes:true}),()=>a.disconnect()},[]),t}function ye({status:t,color:e,size:n=16,className:a}){let r=useRef(null),o=useRef(null),s=useRef(null),i=useRef(null),[l,d]=useState(false),c=Aa(),u=e||c;useEffect(()=>{typeof window<"u"&&!i.current&&import('@lordicon/react').then(m=>{i.current=m.Player,d(true);});},[]),useEffect(()=>{l&&(t==="loading"?r.current?.playFromBeginning?.():t==="finished"?(r.current?.pause?.(),o.current?.playFromBeginning?.()):t==="failed"&&(r.current?.pause?.(),s.current?.playFromBeginning?.()));},[t,l]);let p=i.current;return p?jsxs("div",{className:a,style:{width:n,height:n,position:"relative"},children:[jsx("div",{style:{position:"absolute",opacity:t==="loading"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsx(p,{ref:r,size:n,icon:Sn,colorize:u,onComplete:()=>r.current?.playFromBeginning?.()})}),jsx("div",{style:{position:"absolute",opacity:t==="finished"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsx(p,{ref:o,size:n,icon:wn,colorize:u})}),jsx("div",{style:{position:"absolute",opacity:t==="failed"?1:0,transition:"opacity 0.3s ease-in-out"},children:jsx(p,{ref:s,size:n,icon:En,colorize:u})})]}):jsx("div",{className:a,style:{width:n,height:n,position:"relative"},children:t==="loading"&&jsx("div",{style:{width:n,height:n,border:"2px solid transparent",borderTopColor:u,borderRadius:"50%",animation:"spin 1s linear infinite"}})})}var pt={Success:"success",Error:"error",RequiresInfo:"requires info"};function Ga(t){return t?t===pt.Success?"finished":t===pt.Error||t===pt.RequiresInfo?"failed":"loading":"loading"}function Dn(t){return t?t!==pt.Success&&t!==pt.Error&&t!==pt.RequiresInfo:true}function Ua(t,e){let n=e||"agent",a=t?.message,r=typeof a=="object"&&a?.Valid?a.String:typeof a=="string"?a:null;return r||(t?.status===pt.Success?`Finished ${n}`:`Running ${n}...`)}function ge({content:t,botInvocation:e,isLoading:n=false,defaultOpen:a,adminLinkHref:r,adminLinkText:o="Open in Agent Designer",showAdminLink:s=false,onAdminClick:i,onExpand:l,EventsComponent:d,ContentComponent:c,className:u}){let p=()=>a!==void 0?a:e?.currentStatus?Dn(e.currentStatus.status):false,[m,f]=useState(p),[y,x]=useState(false),b=useRef(null);if(useEffect(()=>{if(e?.currentStatus){let T=e.currentStatus.status;if(b.current!==T&&(b.current=T,!y)){let B=Dn(T);B&&!m?f(true):!B&&m&&f(false);}}},[e,y,m]),useEffect(()=>{m&&e&&l&&l(t.invocation_id,t.bot_id,t.bot_name);},[m,e,l,t]),n&&!e)return jsxs("div",{className:`flex items-center gap-2 text-sm text-muted-foreground ${u||""}`,children:[jsx(Loader2,{className:"h-4 w-4 animate-spin"}),jsxs("span",{children:["Loading ",t.bot_name,"..."]})]});if(!e)return null;let I=Ga(e.currentStatus?.status),k=Ua(e.currentStatus,t.bot_name),V=T=>{f(T),x(true);},P=T=>{i&&(T.preventDefault(),i(t.invocation_id,t.bot_id));},_=e.eventsByID&&Object.keys(e.eventsByID).length>0;return jsxs(Et.Root,{open:m,onOpenChange:V,className:`relative w-full max-w-4xl space-y-2 leading-normal bot-invocation-content ${u||""}`,children:[jsxs("div",{className:"flex items-center justify-between",children:[jsxs(Et.Trigger,{className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[jsx(ye,{status:I}),k]}),jsx(ChevronDown,{className:`h-4 w-4 transition-transform duration-200 ${m?"transform rotate-180":""}`})]}),s&&(r||i)&&jsxs("a",{href:r||"#",onClick:i?P:void 0,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,className:"flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[o,jsx(ArrowUpRight,{className:"h-3.5 w-3.5"})]})]}),jsx(Et.Content,{children:jsx("div",{className:"space-y-2 max-w-3xl",children:_&&d?jsx(d,{eventsByID:e.eventsByID,defaultOpen:m}):_?jsx("pre",{className:"text-sm bg-gray-100 dark:bg-gray-800 p-2 rounded overflow-x-auto",children:JSON.stringify(e.eventsByID,null,2)}):jsx("span",{className:"text-sm text-muted-foreground",children:"No events to display"})})})]})}function Le({content:t,className:e,components:n}){let a=typeof t.ui_content_type=="object"&&t.ui_content_type?.Valid?t.ui_content_type.String:typeof t.ui_content_type=="string"?t.ui_content_type:t.content_type,r=n?.[a];if(r)return jsx(r,{content:t,className:e});let o=s=>jsx(Le,{...s,components:n});switch(a){case "text":return jsx($t,{content:$e(t),className:e});case "markdown":return jsx(G,{content:$e(t),className:e});case "thinking":case "redacted_thinking":return jsx(te,{item:t,className:e});case "json":return jsx(kt,{content:t.content,className:e});case "codegen_json":return jsx(ue,{item:t,className:e});case "sql_generation":return jsx(se,{item:t,className:e});case "codeexec_output":return jsx(de,{item:t,className:e});case "log":return jsx(ee,{item:t,className:e});case "websearch":case "websearch_output":return jsx(ne,{item:t,className:e});case "webparse":case "webparse_output":return jsx(re,{item:t,className:e});case "tool_group":return jsx(me,{toolGroup:t.content,ContentComponent:o,className:e});case "bot_invocation":{let s=t.content,i=t.botInvocation;return jsx(ge,{content:s,botInvocation:i,ContentComponent:o,className:e})}case "chart":case "ui_generation":{if(t.chartConfig&&t.chartData)return jsx(Lt,{config:t.chartConfig,data:t.chartData,className:e});try{let s=typeof t.content=="string"?JSON.parse(t.content):t.content;if(s?.children)return jsx(Fragment,{children:Fa(s.children,e,o)})}catch{}return jsx(kt,{content:t.content,className:e})}case "table":return t.tableColumns&&t.tableData?jsx(Gt,{columns:t.tableColumns,data:t.tableData,className:e}):jsx(kt,{content:t.content,className:e});case "bot_invocation_result":case "tool_invocation":case "tool_result":case "security_check_json":return null;default:return jsx($t,{content:$e(t),className:e})}}function $e(t){return typeof t.content=="string"?t.content:JSON.stringify(t.content)}function Fa(t,e,n){return !t||!Array.isArray(t)?null:t.map((a,r)=>{let o=a;if(!o?._type)return null;switch(o._type){case "Chart":{let s=o.content;return s?jsx("div",{className:"my-4",children:jsx(Lt,{config:{chart_type:s.chart_type,chart_title:s.chart_title,x_axis:s.x_axis,y_axes:s.y_axes,series:s.series,data_reduction:s.data_reduction,stacked:s.stacked,sort:s.sort},data:[],className:e})},`chart-${r}`):null}case "Table":{let s=o.content;return s?jsx("div",{className:"my-4",children:jsx(Gt,{title:s.table_title,columns:s.columns,data:[],className:e})},`table-${r}`):null}case "TextMarkdown":{let s=o.content;return jsx("div",{className:"my-2",children:jsx(G,{content:s?.text||"",className:e})},`text-${r}`)}case "Suggestions":{let i=o.content?.suggestions||[];return i.length?jsx("div",{className:"flex flex-col gap-2 my-4",children:i.map((l,d)=>jsx("button",{className:"text-left px-3 py-2 bg-gray-100 dark:bg-gray-800 rounded hover:bg-gray-200 dark:hover:bg-gray-700 text-sm",children:l},d))},`suggestions-${r}`):null}default:return null}})}function Pn(t){let e={success:true,messages:[],events:t,steps:[]};for(let n of t)switch(n.type){case "invocation_started":if(n.payload&&typeof n.payload=="object"){let r=n.payload;e.invocationId=r.invocation_id,e.botId=r.bot_id;}break;case "message":case "message_content":if(n.payload&&typeof n.payload=="object"){let r=n.payload;r.role&&r.content&&e.messages.push({role:r.role,content:r.content});}break;case "step_started":if(n.payload&&typeof n.payload=="object"){let r=n.payload;e.steps.push({key:r.step_key||"",action:r.action||"",status:"running"});}break;case "step_completed":if(n.payload&&typeof n.payload=="object"){let o=n.payload.step_key,s=e.steps.find(i=>i.key===o);s&&(s.status="completed");}break;case "step_error":if(n.payload&&typeof n.payload=="object"){let o=n.payload.step_key,s=e.steps.find(i=>i.key===o);s&&(s.status="failed");}break;case "result":n.payload&&typeof n.payload=="object"&&(e.result=n.payload);break;case "error":if(e.success=false,n.payload&&typeof n.payload=="object"){let r=n.payload;e.error=r.message||r.error||"Unknown error";}else typeof n.payload=="string"&&(e.error=n.payload);break;}return e}function Rn(t={}){let e=at(),[n,a]=useState(null),[r,o]=useState(false),[s,i]=useState(null),l=useRef(null),d=useCallback(()=>{l.current&&(l.current.abort(),l.current=null);},[]),c=useCallback(async(u,p)=>{if(!e.client)throw new Error("ErdoClient not configured in provider. Pass a client to ErdoProvider config to use useInvocation.");d(),l.current=new AbortController,o(true),i(null),a(null);try{let m=[];for await(let y of e.client.invokeStream(u,p)){if(l.current?.signal.aborted)break;m.push(y),t.onEvent?.(y);let x=Pn(m);a(x);}let f=Pn(m);return a(f),t.onFinish?.(f),f}catch(m){let f=m instanceof Error?m:new Error(String(m));throw i(f),t.onError?.(f),f}finally{o(false),l.current=null;}},[e.client,t,d]);return {result:n,isStreaming:r,error:s,invoke:c,cancel:d}}function jt(t,e){return t==="json"||e==="json"}var An=(l=>(l.Pending="pending",l.Running="running",l.Success="success",l.Error="error",l.RequiresInfo="requires info",l.GoToStep="go to step",l.Skipped="skipped",l.Break="break",l))(An||{}),Vn=(o=>(o.Initializing="initializing",o.Running="running",o.ProcessingDatasets="processing datasets",o.Completed="completed",o.Failed="failed",o))(Vn||{});function A(t){if(!t)throw new Error("Entity is null");if(!("_type"in t))throw new Error(`Entity ${JSON.stringify(t)} is missing _type`);return t._type}function Wa(t){return t.contents.length===0?null:t.contents[t.contents.length-1]||null}function qa(t){return t.contents.length===0?null:t.contents[0]||null}function je(t,e){let n=A(t);switch(n){case "message":return t;case "step":let a=t;if(e){let s=a.eventsByID[e]?.Message;return s||Un({},"",e)}let o=Object.keys(a.eventsByID).reverse();for(let s of o){let i=a.eventsByID[s];if(i&&i.Message)return i.Message}throw new Error("Unable to find message for step");default:throw new Error(`Unable to have messages on entity type ${n}`)}}function Ha(t,e){switch(A(t)){case "message_content":return t;case "output_content":return t;case "message":return Nt(t,e);case "output":return Bt(t,e);case "step":let a=xe(t,e);return a?Bt(a,e):null;default:return null}}function Nt(t,e){let n=A(t);switch(n){case "message_content":return t;case "message":let a=je(t);if(!a)throw new Error("Unable to find message to add content to");return e?a.contentsByID[e]:Wa(a);default:throw new Error(`Unable to have message content on entity type ${n}`)}}function Bt(t,e){let n=A(t);switch(n){case "output_content":return t;case "output":let a=t;return e?a.contentsByID[e]||null:a.contents.length<=0?null:a.contents[a.contents.length-1]||null;case "step":let o=xe(t,e);return o?Bt(o):null;case "invocation":if(!e)return null;let s=t.eventsByID[e];return !s||!s.Output?null:Bt(s.Output);default:throw new Error(`Unable to have output content on entity type ${n}`)}}function We(t,e){let n=A(t),a=null;switch(n){case "invocation":return t;case "message_content":if(a=t.botInvocation||null,!a)throw new Error("Unable to find bot invocation for message content");if(e&&a.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message content - mismatched ID");return a;case "message":if(a=qa(t)?.botInvocation||null,!a)throw new Error("Unable to find bot invocation for message");if(e&&a.bot_invocation.id!==e)throw new Error("Unable to find bot invocation for message - mismatched ID");return a;case "output_content":return t.botInvocation||null;default:throw new Error(`Unable to have bot invocation on entity type ${n}`)}}function xe(t,e){let n=A(t);switch(n){case "output":return t;case "step":let a=t;if(e){let i=a.eventsByID[e]?.Output;if(!i)throw new Error("Unable to find output with id "+e);return i}let o=Object.keys(a.eventsByID).reverse();for(let i of o){let l=a.eventsByID[i];if(l&&l.Output)return l.Output}throw new Error("Unable to find output for step");case "invocation":if(!e)throw new Error("Unable to find output for invocation without ID");return t.eventsByID[e]?.Output||null;default:throw new Error(`Unable to have step outputs on entity type ${n}`)}}function Ln(t,e){let n=A(t);switch(n){case "result_handler":return t;case "step":if(!e)throw new Error("Unable to have result handlers on step without ID");let a=t.eventsByID[e];if(!a||!a.type||a.type!=="result_handler"||!a.ResultHandler)throw new Error(`Unable to find result handler with id ${e} on step ${t.id}`);return a.ResultHandler;default:throw new Error(`Unable to have result handlers on entity type ${n}`)}}function Gn(t,e){let n=A(t),a=null;switch(n){case "step":if(t.id===e||!e)return t;throw new Error("Unable to find step on step with id "+e);case "invocation":if(!e)throw new Error("Unable to have steps on bot invocation without ID");a=t;let r=a.eventsByID[e];if(!r)throw new Error("Unable to find step on invocation with id "+e);if(!r.Step)throw new Error("Unable to find step on invocation with id "+e);return r.Step;case "result_handler":if(!e)throw new Error("Unable to have steps on result handler without ID");let s=t.eventsByID[e];if(!s)throw new Error("Unable to find step on result handler with id "+e);if(!s.Step)throw new Error("Unable to find step on result handler with id "+e);return s.Step;default:throw new Error(`Unable to have steps on entity type ${n}`)}}var Fe=class extends Error{};function za(t,e,n){let a=null,r=e[0],o=e[1];n[r]=o;try{switch(r){case "message":a=je(t,o);break;case "content":a=Nt(t,o);break;case "step":a=Gn(t,o);break;case "output":a=xe(t,o);break;case "output_content":a=Bt(t,o);break;case "invocation":a=We(t,o);break;case "result_handler":a=Ln(t,o);break}}catch(s){throw console.error("error finding next entity"),console.log("path",e),console.log("currentEntity",t),s}if(!a)throw console.log("path",e),console.log("currentEntity",t),console.log("nextEntity",a),new Fe(`Unable to find next entity for path ${e.join("/")}`);return a}function Un(t,e,n,a){let r=t.payload;return {_type:"message",message:{id:n,thread_id:e,author_id:r.author_id||"app",author_entity_type:r.author_entity_type||"app",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),role:r.role||"assistant",avatar:"/teams/erdo.svg"},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function Ka(t,e){return {_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"in_progress",user_visibility:t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",content:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata?.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false}}}function Za(t,e){let n=t.metadata?.ui_content_type,a=typeof t.payload=="string"?t.payload:t.payload.content||t.payload,r=null;return jt(t.metadata.content_type,n)&&(r=tt(a)),{_type:"message_content",id:t.metadata.message_content_id,message_id:e.message,content:a,content_type:t.metadata.content_type,created_by_invocation_id:t.metadata.invocation_id,invocation_id:t.metadata.invocation_id,state:"completed",user_visibility:t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:n?{String:n,Valid:true}:{String:"",Valid:false},parsedJson:r}}function Ya(t,e,n){let a=t.payload;return {_type:"step",id:e,invocation_id:n.invocation||"",step_id:a.step_id||"",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_status_id:"",path:{String:"",Valid:false},action_type:{String:a.action_type,Valid:true},key:{String:a.key,Valid:true},bot_id:a.bot_id,result_handler_id:"",step_order:{Int32:a.step_order,Valid:true},output_content_type:{String:a.content_type,Valid:true},execution_mode:{String:a.execution_mode,Valid:true},output_behaviour:{String:a.output_behaviour,Valid:true},user_output_visibility:{String:t.metadata.visibility||"visible",Valid:true},output_channels:a.output_channels||[],running_message:{String:"",Valid:false},finished_message:{String:"",Valid:false},depends_on:[],eventsByID:{},currentStatus:null}}function Qa(t,e,n){let a=t.payload;return {_type:"result_handler",id:e,invocation_id:t.metadata.invocation_id||"",result_handler_id:a.result_handler_id||e,step_invocation_id:a.step_invocation_id||"",type:a.type||"",if_conditions:a.if_conditions||{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),output_content_type:a.output_content_type||"",result_handler_order:a.result_handler_order||0,eventsByID:{}}}function Xa(t,e,n){return {_type:"output",id:e,step_id:n.step_id,output:{id:e,invocation_id:t.metadata?.invocation_id,path:t.metadata.path,created_at:new Date().toISOString(),updated_at:new Date().toISOString()},state:"in_progress",contents:[],contentsByID:{},contentIDToIdx:{}}}function On(t,e,n,a=null){return {_type:"output_content",id:e,output_id:n.output,content:"",content_type:t.metadata.content_type,state:"in_progress",invocation_id:t.metadata.invocation_id,user_visibility:a??t.metadata.user_visibility??"visible",bot_visibility:t.metadata.bot_visibility??"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:t.metadata.ui_content_type?{String:t.metadata.ui_content_type,Valid:true}:{String:"",Valid:false},output:null}}function Mn(t,e,n,a=null){let r=null,o=t.metadata?.ui_content_type;return jt(t.metadata.content_type,o)&&(r=tt(t.payload)),{_type:"output_content",id:e,output_id:n.output,content:t.payload,content_type:t.metadata.content_type,state:"completed",invocation_id:t.metadata.invocation_id,parsedJson:r,user_visibility:a||t.metadata.visibility||"visible",bot_visibility:"visible",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),content_params:{RawMessage:null,Valid:false},history_content_type:t.metadata?.history_content_type?{String:t.metadata.history_content_type,Valid:true}:{String:"",Valid:false},ui_content_type:o?{String:o,Valid:true}:{String:"",Valid:false},output:null}}function to(t,e,n){return {_type:"invocation",bot_invocation:{id:t.payload.invocation_id,bot_id:t.payload.bot_id,bot_name:t.payload.bot_name,created_by_user_id:t.payload.created_by_user_id,current_state_id:"",parent_invocation_id:"",branch_init_state_id:"",current_status_id:"",organization_id:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()},eventsByID:{},currentStatus:null,current_status:null,step_invocations:[],step_invocation_states:[],resources:[],outputs:[],statuses:[]}}function Ue(t,e){let n=t.payload;return {_type:"status",id:new Date().toISOString(),status:n.status,message:{String:n.message,Valid:true},Details:n}}function Fn(t){return {id:t.id,type:"step",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:null,Step:t}}function qe(t){return {id:t.output.id,type:"output",created_at:t.output.created_at,_type:"invocation_event",Output:t,Message:null,Status:null,ResultHandler:null,Step:null}}function He(t){return {id:t.id,type:"status",created_at:t.created_at,_type:"invocation_event",Status:t,Output:null,Message:null,ResultHandler:null,Step:null}}function eo(t){return {id:t.message.id,type:"message",created_at:t.message.created_at,_type:"invocation_event",Output:null,Message:t,Status:null,ResultHandler:null,Step:null}}function no(t){return {id:t.id,type:"result_handler",created_at:t.created_at,_type:"invocation_event",Output:null,Message:null,Status:null,ResultHandler:t,Step:null}}function ze(t,e){if(t.content||(t.content=""),t.user_visibility!=="visible"||!jt(t.content_type,t.ui_content_type.String))return t.content+=e,{...t};if(t.parsedJson||(t.parsedJson=[]),typeof e=="object")return t.content+=JSON.stringify(e),t.parsedJson=[...t.parsedJson,e],{...t};t._jsonParser||(t._isInJson=false),t._charBuffer||(t._charBuffer="");for(let n of e){if(t.content+=n,!t._isInJson&&n==="{"){t._charBuffer="{";continue}if(t._charBuffer&&oe(n)){t._charBuffer+=n;continue}if(!t._isInJson&&t._charBuffer?.match(/^\s*{\s*$/)&&n==='"'){t._isInJson=true,t._jsonParser=new X;let r={content:t._jsonParser.add("{"),type:"json"};t._currentContent?.content?t._currentContent.content.match(/^\s*{$/)?(t._currentContent=r,t.parsedJson[t.parsedJson.length-1]=r):(t._currentContent.content=t._currentContent.content.replace(/{$/,""),t._currentContent=r,t.parsedJson=[...t.parsedJson,r]):(t._currentContent=r,t.parsedJson=[...t.parsedJson,r]);}if(t._isInJson)try{let a=t._jsonParser.add(n);t._currentContent.content=a,t._jsonParser.state==="END"&&(t._isInJson=!1,t._currentContent=void 0);}catch(a){console.log("content",e),console.log("currentContent",t.content),console.error("Error incrementally parsing JSON",a);}else t._currentContent||(t._currentContent={content:t._charBuffer||"",type:"text"},t.parsedJson=[...t.parsedJson,t._currentContent]),t._currentContent.content+=t._charBuffer+n;t._charBuffer="";}return {...t}}function ro(t,e){return ze(t,e)}function $n(t,e){return ze(t,e)}function Je(t,e){let n=A(t);switch(n){case "message":return rt(t,e);case "message_content":return Ke(t,e);case "step":return oo(t,e);case "output":return so(t,e);case "output_content":return io(t,e);case "invocation":return he(t,e);case "result_handler":return lo(t,e);default:throw new Error(`Unable to add update entity for entity type ${n}`)}}function ao(t,e){for(let n of e)t=Je(t,n);return t}function rt(t,e){let n=je(t);if(!n)throw new Error("Unable to find message to add content to");let a=A(e),r=null;switch(a){case "message_content":return r=e,n.contentsByID[r.id]?n.contents[n.contentIDToIdx[r.id]]=r:(n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r]),n.contentsByID={...n.contentsByID,[r.id]:r},{...n};case "invocation":let o=e;if(n.contents.length===0)throw new Error("Unable to find message content to add invocation to");return r=Ke(n.contents[0],o),rt(n,r);case "step":if(n.contents.length===0)throw new Error("Unable to find message content to add content to");if(r=n.contents[0],!r)throw new Error("Unable to find message content to add content to");let s=We(r);if(!s)throw new Error("Unable to find bot invocation to add content to");return r.botInvocation=he(s,e),rt(n,r);default:throw new Error(`Unable to add update message child for child type ${a}`)}}function Ke(t,e){let n=Nt(t);if(!n)throw new Error("Unable to find message content to add content to");let a=A(e);switch(a){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=he(r,e),{...n};default:throw new Error(`Unable to add update message content child for child type ${a}`)}}function oo(t,e){let n=Gn(t);if(!n)throw new Error("Unable to find bot invocation to add step to");let a=A(e),r=null;switch(a){case "output":let o=e;return r=qe(o),n.eventsByID={...n.eventsByID,[o.output.id]:r},{...n};case "message":let s=e;return r=eo(s),n.eventsByID={...n.eventsByID,[s.message.id]:r},{...n};case "status":let i=e;return r=He(i),n.eventsByID={...n.eventsByID,[i.id]:r},{...n};case "result_handler":let l=e;return r=no(l),n.eventsByID={...n.eventsByID,[l.id]:r},{...n};default:throw new Error(`Unable to add update step for entity type ${a}`)}}function so(t,e){let n=xe(t);if(!n)throw new Error("Unable to find step output to add content to");let a=A(e);switch(a){case "output_content":let r=e;return n.contentsByID[r.id]?n.contents[n.contentIDToIdx[r.id]]=r:(n.contentIDToIdx={...n.contentIDToIdx,[r.id]:n.contents.length},n.contents=[...n.contents,r]),n.contentsByID={...n.contentsByID,[r.id]:r},{...n};default:throw new Error(`Unable to add update output for entity type ${a}`)}}function io(t,e){let n=Bt(t);if(!n)throw new Error("Unable to find step output content to add content to");let a=A(e);switch(a){case "invocation":return n.botInvocation=e,{...n};case "step":let r=n.botInvocation;if(!r)throw new Error("Unable to find bot invocation to add content to");return n.botInvocation=he(r,e),{...n};default:throw new Error(`Unable to add update step output content for entity type ${a}`)}}function he(t,e){let n=We(t);if(!n)throw new Error("Unable to find bot invocation to add content to");let a=A(e),r;switch(a){case "step":let o=e;return r=Fn(o),n.eventsByID={...n.eventsByID,[o.id]:r},{...n};case "output":let s=e;return r=qe(s),n.eventsByID={...n.eventsByID,[s.output.id]:r},{...n};case "status":let i=e;return r=He(i),n.eventsByID={...n.eventsByID,[i.id]:r},{...n};default:throw new Error(`Unable to add update invocation for entity type ${a}`)}}function lo(t,e){let n=Ln(t);if(!n)throw new Error("Unable to find result handler to add content to");let a=A(e),r=null;switch(a){case "step":let o=e;return r=Fn(o),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[o.id]:r},{...n};case "output":let s=e;return r=qe(s),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[s.output.id]:r},{...n};case "status":let i=e;return r=He(i),n.eventsByID||(n.eventsByID={}),n.eventsByID={...n.eventsByID,[i.id]:r},{...n};default:throw new Error(`Unable to add update to result handler for entity type ${a}`)}}function co(t){return t==="bot started"||t==="bot resumed"||t==="message created"||t==="create message content"||t==="message content result"||t==="step started"||t==="result handler started"||t==="state created"||t==="step output created"||t==="create step output content"||t==="step output content result"||t==="log"}function Jn(t,e,n,a,r,o=null,s=[],i={}){if(!o&&Object.keys(r).length>0){let u,p;if(n.length>=2&&n[0]==="message"?(p=n[1],u=r[p],u||(u=Object.values(r)[0],p=Object.keys(r)[0])):(u=Object.values(r)[Object.values(r).length-1],p=Object.keys(r)[Object.keys(r).length-1]),i.message=p,n.length<=2&&t==="message finished")return null;if(n[0]!=="content"&&Object.keys(u.contentsByID).length>0&&e.metadata.message_content_id){let m=e.metadata.message_content_id,f=u.contentsByID[m];f&&(o=f);}o?s=[u]:o=u;}if(n.length<=2&&co(t)){let u=n[1],p=[],m,f,y,x,b;switch(t){case "bot started":case "bot resumed":if(!o)throw new Error("Unable to find message to add content to");let I=to(e);if(o._type==="message_content"){if(f=o,!f.id)throw new Error("Unable to find message content id");if(y=r[f.message_id],!y)throw new Error("Unable to find message to add content to");if(x=Nt(y,f.id),!x)throw new Error("Unable to find message content to add content to");let _=Ke(x,I);r[f.message_id]={...rt(y,_)};}p.push(I);break;case "message created":return r[u]=Un(e,a,u),null;case "create message content":if(!o)throw new Error("Unable to find message to add content to");if(b=Ka(e,i),o._type==="output"){m=o,p.push(On(e,u,i,"hidden"));let _=e.payload.message_id;if(_||(_=s[0].message.id),y=r[_],!y)throw new Error("Unable to find message to add content to")}else if(o._type==="message_content"){if(m=o,y=r[m.message_id],!y)throw new Error("Unable to find message to add content to")}else {if(o._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${o._type}`);if(m=o,y=r[m.message.id],!y)throw new Error("Unable to find message to add content to");p.push(b);}r[y.message.id]={...rt(y,b)};break;case "message content result":if(!o)throw new Error("Unable to find message to add content to");let k=null;if(o._type==="output"){p.push(Mn(e,u,i,"hidden"));let _=e.payload.message_id||i.message;if(_?k=s.find(T=>T.message.id===_):k=s[0],y=r[_],!y)throw new Error("Unable to find message to add content to")}else if(o._type==="message_content"){if(k=s[0],y=r[k.message.id],!y)throw new Error("Unable to find message to add content to")}else {if(o._type!=="message")throw new Error(`Incorrect path? Cannot add content to non-message entity: ${o._type}`);if(k=o,y=r[k.message.id],!y)throw new Error("Unable to find message to add content to")}let V=e.metadata.message_content_id;if(!V)throw new Error("Unable to find message content id");let P=Nt(k,V);if(P){P.state="completed";let _=typeof e.payload=="string"?e.payload:e.payload.content||e.payload;P.content=_,r[y.message.id]={...rt(y,P)},(o._type==="message"||o._type==="message_content")&&p.push(P);}else P=Za(e,i),r[y.message.id]={...rt(y,P)},(o._type==="message"||o._type==="message_content")&&p.push(P);break;case "step started":p.push(Ya(e,u,i));break;case "result handler started":p.push(Qa(e,u));break;case "step output created":p.push(Xa(e,u,o));break;case "create step output content":p.push(On(e,u,i));break;case "step output content result":p.push(Mn(e,u,i));break;case "log":return null;default:throw new Error(`Unable to handle create event type ${t}`)}return p.length?!o||o._type==="message_content"&&p.length===1&&p[0]._type==="message_content"?p[0]:ao(o,p):null}if(!o)throw new Error("No first message has been created, so cannot handle amend events");if(n.length<=1){let u=null;try{u=Ha(o);}catch{}switch(t){case "message content delta":if(!u)throw new Error("Unable to find message content");let p=null,m=null,f=null;if(o._type==="output_content"){p=$n(o,e.payload);let I=e.metadata.message_content_id;if(!I)throw new Error("Unable to find message content id from entity ids");let k=i.message;if(f=s.find(V=>V.message.id===k),!f)throw new Error("Unable to find message to add content to");m=Nt(f,I);}else {if(m=u,f=s[s.length-1],!f)throw new Error("Unable to find message to add content to");if(f._type!=="message")throw new Error("Unable to find message to add content to - not a message")}if(!m)throw new Error("Unable to find message content");let y=r[f.message.id];if(!y)throw new Error("Unable to find message to add content to");let x=ro(m,e.payload);return r[y.message.id]={...rt(y,x)},o._type==="message_content"&&(p=x),p;case "step output content delta":return $n(u,e.payload);case "status":return o._type==="step"&&(o.currentStatus=Ue(e)),o._type==="invocation"&&(o.currentStatus=Ue(e)),Je(o,Ue(e));case "result":return null;case "message finished":return null;case "step output finished":return null;case "step result":return null;case "error":return null;case "dataset created":return null;case "log":return null;default:throw new Error(`Unable to handle event type ${t}`)}}let l=n.slice(2),d=za(o,n,i),c=Jn(t,e,l,a,r,d,[...s,o],i);return c?Je(o,{...c}):o}export{st as BarChart,ge as BotInvocationContent,j as Chart,Pt as ChartContainer,Lt as ChartContent,Ee as ChartLegend,Ie as ChartLegendContent,en as ChartStyle,Se as ChartTooltip,we as ChartTooltipContent,de as CodeexecContent,ue as CodegenContent,Ct as CollapsibleCodeBlock,Le as Content,mn as DatasetChart,Ye as ErdoProvider,ot as ErrorBoundary,Vn as ExecutionStatus,St as ExpandableOutputContent,xt as HeatmapChart,An as InvocationStatus,X as JSONStreamParser,kt as JsonContent,ft as LineChart,Te as Log,ee as LogContent,G as MarkdownContent,yt as PieChart,gt as ScatterChart,se as SqlContent,ye as StatusSpinner,wt as StderrText,le as StdoutText,ce as StdwarnText,Gt as TableContent,$t as TextContent,te as ThinkingContent,me as ToolGroupContent,re as WebParseContent,ne as WebSearchContent,L as cn,At as formatValue,ze as handleIncrementalMixedJsonParsing,Jn as handleSSEEvent,jt as isJsonLike,ka as isParsingComplete,ba as isParsingInProgress,oe as isWhitespaceChar,xa as parseCompleteJson,tt as parseMixedJson,nn as parseToDate,Kt as resolveKeyFromData,pn as toSnakeCase,qt as useChartZoom,cn as useDatasetContents,at as useErdoConfig,Qe as useErdoConfigOptional,Rn as useInvocation,zt as useMultipleDatasetContents};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erdoai/ui",
3
- "version": "0.1.6",
3
+ "version": "0.1.9",
4
4
  "description": "Erdo UI components for rendering agent results",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,6 +33,7 @@
33
33
  "dependencies": {
34
34
  "@erdoai/types": "workspace:^",
35
35
  "@hugocxl/react-to-image": "^0.0.9",
36
+ "@lordicon/react": "^1.11.0",
36
37
  "@radix-ui/react-collapsible": "^1.1.0",
37
38
  "@tanstack/react-query": "^5.90.12",
38
39
  "clsx": "^2.1.1",
@@ -41,9 +42,11 @@
41
42
  "date-fns": "^4.1.0",
42
43
  "html-to-image": "^1.11.11",
43
44
  "lodash": "^4.17.21",
45
+ "lottie-web": "^5.13.0",
44
46
  "lucide-react": "^0.555.0",
45
47
  "react-is": "^19.1.0",
46
48
  "react-markdown": "^10.1.0",
49
+ "react-syntax-highlighter": "^16.1.0",
47
50
  "recharts": "^3.5.1",
48
51
  "remark-gfm": "^4.0.1",
49
52
  "tailwind-merge": "^3.4.0",
@@ -55,6 +58,7 @@
55
58
  "@types/lodash": "^4.17.21",
56
59
  "@types/react": "^19.2.7",
57
60
  "@types/react-dom": "^19.2.3",
61
+ "@types/react-syntax-highlighter": "^15.5.13",
58
62
  "react": "^19.2.1",
59
63
  "react-dom": "^19.2.1",
60
64
  "tsup": "^8.5.1",