@athenaintel/react 0.4.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -6,7 +6,6 @@ import { ComponentPropsWithRef } from 'react';
6
6
  import { FC } from 'react';
7
7
  import { ForwardRefExoticComponent } from 'react';
8
8
  import { JSX } from 'react/jsx-runtime';
9
- import { LangChainMessage } from '@assistant-ui/react-langgraph';
10
9
  import * as React_2 from 'react';
11
10
  import { ReactNode } from 'react';
12
11
  import { RefAttributes } from 'react';
@@ -56,7 +55,7 @@ export declare interface AssetTab {
56
55
  type: AssetType;
57
56
  }
58
57
 
59
- export declare type AssetType = 'presentation' | 'spreadsheet' | 'document' | 'unknown';
58
+ export declare type AssetType = 'presentation' | 'spreadsheet' | 'document' | 'notebook' | 'unknown';
60
59
 
61
60
  export declare const AthenaChat: FC<AthenaChatProps>;
62
61
 
@@ -95,7 +94,7 @@ export declare interface AthenaLayoutProps {
95
94
  minPercent?: number;
96
95
  }
97
96
 
98
- export declare function AthenaProvider({ children, apiKey, token: tokenProp, agent, model, tools, frontendTools, apiUrl, backendUrl, workbench, knowledgeBase, systemPrompt, threadId: threadIdProp, enableThreadList, }: AthenaProviderProps): JSX.Element;
97
+ export declare function AthenaProvider({ children, apiKey, token: tokenProp, agent, model, tools, frontendTools, apiUrl, backendUrl, workbench, knowledgeBase, systemPrompt, threadId: threadIdProp, enableThreadList, theme, }: AthenaProviderProps): JSX.Element;
99
98
 
100
99
  export declare interface AthenaProviderProps {
101
100
  children: ReactNode;
@@ -124,13 +123,29 @@ export declare interface AthenaProviderProps {
124
123
  systemPrompt?: string;
125
124
  /** Thread ID override. Auto-generated if not provided. */
126
125
  threadId?: string;
127
- /** Enable thread list management (list, switch, create threads). Defaults to false. */
126
+ /** Enable thread list management (sidebar thread switching). */
128
127
  enableThreadList?: boolean;
128
+ /** Theme configuration. Pass a preset from `themes` or a custom `AthenaTheme` object.
129
+ * Injects CSS variables on a wrapper element — no CSS files needed.
130
+ *
131
+ * @example
132
+ * import { themes } from '@athenaintel/react';
133
+ * <AthenaProvider theme={themes.dark}>
134
+ *
135
+ * @example
136
+ * <AthenaProvider theme={{ primary: '#8b5cf6', radius: '1rem' }}>
137
+ *
138
+ * @example
139
+ * <AthenaProvider theme={{ ...themes.dark, primary: '#22c55e' }}>
140
+ */
141
+ theme?: AthenaTheme;
129
142
  }
130
143
 
131
144
  export declare interface AthenaRuntimeConfig {
132
145
  /** URL for the chat streaming endpoint. Defaults to Athena production sync server. */
133
146
  apiUrl?: string;
147
+ /** URL for the sync server resume endpoint. Derived from apiUrl if not provided. */
148
+ resumeApiUrl?: string;
134
149
  /** URL for the Agora backend API. Defaults to Athena production API. */
135
150
  backendUrl?: string;
136
151
  /** API key for authentication. Used when no auth token is provided. */
@@ -153,8 +168,76 @@ export declare interface AthenaRuntimeConfig {
153
168
  systemPrompt?: string;
154
169
  /** Thread ID override. Auto-generated if not provided. */
155
170
  threadId?: string;
156
- /** Pre-loaded messages for existing threads (from thread switching). */
157
- initialMessages?: LangChainMessage[];
171
+ }
172
+
173
+ /**
174
+ * Athena SDK Theming System
175
+ *
176
+ * Usage:
177
+ * import { AthenaProvider, themes } from '@athenaintel/react';
178
+ *
179
+ * // Use a preset theme
180
+ * <AthenaProvider theme={themes.dark}>
181
+ *
182
+ * // Customize a preset
183
+ * <AthenaProvider theme={{ ...themes.dark, primary: '#8b5cf6' }}>
184
+ *
185
+ * // Full custom theme
186
+ * <AthenaProvider theme={{ primary: '#2563eb', background: '#fafafa', radius: '1rem' }}>
187
+ */
188
+ export declare interface AthenaTheme {
189
+ /** Brand / accent color. Send button, active states, focus ring, spinner. */
190
+ primary?: string;
191
+ /** Text color on primary background. */
192
+ primaryForeground?: string;
193
+ /** Page / panel background. */
194
+ background?: string;
195
+ /** Primary text color. */
196
+ foreground?: string;
197
+ /** Subtle background. User message bubble, sidebar hover, thread highlight. */
198
+ muted?: string;
199
+ /** De-emphasized text. Timestamps, placeholders, sidebar items. */
200
+ mutedForeground?: string;
201
+ /** Hover / focus highlight background. */
202
+ accent?: string;
203
+ /** Text on accent background. */
204
+ accentForeground?: string;
205
+ /** Secondary surface color. */
206
+ secondary?: string;
207
+ /** Text on secondary surface. */
208
+ secondaryForeground?: string;
209
+ /** Card / modal surface color. */
210
+ card?: string;
211
+ /** Text on card surface. */
212
+ cardForeground?: string;
213
+ /** Popover / tooltip / dropdown surface. */
214
+ popover?: string;
215
+ /** Text on popover surface. */
216
+ popoverForeground?: string;
217
+ /** Error / danger color. Error banners, delete actions. */
218
+ destructive?: string;
219
+ /** Default border color. Dividers, card borders. */
220
+ border?: string;
221
+ /** Input field border color. Composer border. */
222
+ input?: string;
223
+ /** Focus ring color. Composer focus ring. */
224
+ ring?: string;
225
+ /** Base border radius for all rounded corners. e.g. '0.5rem', '0.75rem', '0' */
226
+ radius?: string;
227
+ /** Sidebar background color. Falls back to muted with transparency. */
228
+ sidebarBackground?: string;
229
+ /** Sidebar border color. Falls back to border. */
230
+ sidebarBorder?: string;
231
+ /** User message bubble background. Falls back to muted. */
232
+ userBubble?: string;
233
+ /** User message bubble text color. Falls back to foreground. */
234
+ userBubbleForeground?: string;
235
+ /** Assistant message text color. Falls back to foreground. */
236
+ assistantForeground?: string;
237
+ /** Composer border color. Falls back to input. */
238
+ composerBorder?: string;
239
+ /** Composer border radius. Falls back to radius-based default. */
240
+ composerRadius?: string;
158
241
  }
159
242
 
160
243
  export declare const BrowseToolUI: ToolCallMessagePartComponent;
@@ -164,7 +247,7 @@ export declare function Button({ className, variant, size, asChild, ...props }:
164
247
  }): JSX.Element;
165
248
 
166
249
  export declare const buttonVariants: (props?: ({
167
- variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
250
+ variant?: "link" | "secondary" | "destructive" | "default" | "outline" | "ghost" | null | undefined;
168
251
  size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
169
252
  } & ClassProp) | undefined) => string;
170
253
 
@@ -178,16 +261,23 @@ export declare function CollapsibleContent({ ...props }: React.ComponentProps<ty
178
261
 
179
262
  export declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof Collapsible_2.CollapsibleTrigger>): JSX.Element;
180
263
 
264
+ export declare function createAssetToolUI(config: {
265
+ icon: React.ElementType;
266
+ assetType: AssetType;
267
+ runningLabel: string;
268
+ doneLabel: string;
269
+ }): ToolCallMessagePartComponent;
270
+
181
271
  export declare const CreateDocumentToolUI: ToolCallMessagePartComponent;
182
272
 
183
273
  export declare const CreateEmailDraftToolUI: ToolCallMessagePartComponent;
184
274
 
275
+ export declare const CreateNotebookToolUI: ToolCallMessagePartComponent;
276
+
185
277
  export declare const CreatePresentationToolUI: ToolCallMessagePartComponent;
186
278
 
187
279
  export declare const CreateSheetToolUI: ToolCallMessagePartComponent;
188
280
 
189
- export declare function createThreadListStore(config: StoreConfig): UseBoundStore<StoreApi<ThreadListStore>>;
190
-
191
281
  export declare const DEFAULT_BACKEND_URL = "https://api.athenaintel.com/api/assistant-ui";
192
282
 
193
283
  export declare const EmailSearchToolUI: ToolCallMessagePartComponent;
@@ -241,10 +331,14 @@ declare interface MenuItem {
241
331
  */
242
332
  declare type MenuScope = string;
243
333
 
334
+ export declare const OpenAssetToolUI: ToolCallMessagePartComponent;
335
+
244
336
  export declare const ReadAssetToolUI: ToolCallMessagePartComponent;
245
337
 
246
338
  export declare function resetAssetAutoOpen(): void;
247
339
 
340
+ export declare const RunPythonCodeToolUI: ToolCallMessagePartComponent;
341
+
248
342
  declare interface ScopeRegistry {
249
343
  entries: Map<MenuScope, ScopeRegistryEntry>;
250
344
  }
@@ -270,38 +364,150 @@ declare interface SourceResult {
270
364
  };
271
365
  }
272
366
 
273
- declare interface StoreConfig {
274
- backendUrl: string;
275
- apiKey?: string;
276
- token?: string | null;
277
- }
367
+ export declare const themes: {
368
+ /** Default light theme. Neutral grays with blue accent. */
369
+ readonly light: {
370
+ background: string;
371
+ foreground: string;
372
+ primary: string;
373
+ primaryForeground: string;
374
+ secondary: string;
375
+ secondaryForeground: string;
376
+ muted: string;
377
+ mutedForeground: string;
378
+ accent: string;
379
+ accentForeground: string;
380
+ card: string;
381
+ cardForeground: string;
382
+ popover: string;
383
+ popoverForeground: string;
384
+ destructive: string;
385
+ border: string;
386
+ input: string;
387
+ ring: string;
388
+ radius: string;
389
+ };
390
+ /** Dark theme. Deep gray background with lighter text. */
391
+ readonly dark: {
392
+ background: string;
393
+ foreground: string;
394
+ primary: string;
395
+ primaryForeground: string;
396
+ secondary: string;
397
+ secondaryForeground: string;
398
+ muted: string;
399
+ mutedForeground: string;
400
+ accent: string;
401
+ accentForeground: string;
402
+ card: string;
403
+ cardForeground: string;
404
+ popover: string;
405
+ popoverForeground: string;
406
+ destructive: string;
407
+ border: string;
408
+ input: string;
409
+ ring: string;
410
+ radius: string;
411
+ };
412
+ /** Midnight theme. Deep navy with soft blue tones. */
413
+ readonly midnight: {
414
+ background: string;
415
+ foreground: string;
416
+ primary: string;
417
+ primaryForeground: string;
418
+ secondary: string;
419
+ secondaryForeground: string;
420
+ muted: string;
421
+ mutedForeground: string;
422
+ accent: string;
423
+ accentForeground: string;
424
+ card: string;
425
+ cardForeground: string;
426
+ popover: string;
427
+ popoverForeground: string;
428
+ destructive: string;
429
+ border: string;
430
+ input: string;
431
+ ring: string;
432
+ radius: string;
433
+ };
434
+ /** Warm earthy theme. Brown and sand tones. */
435
+ readonly warm: {
436
+ background: string;
437
+ foreground: string;
438
+ primary: string;
439
+ primaryForeground: string;
440
+ secondary: string;
441
+ secondaryForeground: string;
442
+ muted: string;
443
+ mutedForeground: string;
444
+ accent: string;
445
+ accentForeground: string;
446
+ card: string;
447
+ cardForeground: string;
448
+ popover: string;
449
+ popoverForeground: string;
450
+ destructive: string;
451
+ border: string;
452
+ input: string;
453
+ ring: string;
454
+ radius: string;
455
+ };
456
+ /** Purple creative theme. Vibrant purple accent. */
457
+ readonly purple: {
458
+ background: string;
459
+ foreground: string;
460
+ primary: string;
461
+ primaryForeground: string;
462
+ secondary: string;
463
+ secondaryForeground: string;
464
+ muted: string;
465
+ mutedForeground: string;
466
+ accent: string;
467
+ accentForeground: string;
468
+ card: string;
469
+ cardForeground: string;
470
+ popover: string;
471
+ popoverForeground: string;
472
+ destructive: string;
473
+ border: string;
474
+ input: string;
475
+ ring: string;
476
+ radius: string;
477
+ };
478
+ /** Green nature theme. Fresh green tones. */
479
+ readonly green: {
480
+ background: string;
481
+ foreground: string;
482
+ primary: string;
483
+ primaryForeground: string;
484
+ secondary: string;
485
+ secondaryForeground: string;
486
+ muted: string;
487
+ mutedForeground: string;
488
+ accent: string;
489
+ accentForeground: string;
490
+ card: string;
491
+ cardForeground: string;
492
+ popover: string;
493
+ popoverForeground: string;
494
+ destructive: string;
495
+ border: string;
496
+ input: string;
497
+ ring: string;
498
+ radius: string;
499
+ };
500
+ };
278
501
 
279
- export declare function ThreadList({ className }: ThreadListProps): JSX.Element;
502
+ /** Convert an AthenaTheme object to a CSS variables style object. */
503
+ export declare function themeToStyleVars(theme: AthenaTheme): Record<string, string>;
280
504
 
281
- export declare interface ThreadListActions {
282
- /** Fetch threads from Agora. */
283
- fetchThreads: () => Promise<void>;
284
- /** Switch to an existing thread. */
285
- switchThread: (threadId: string) => void;
286
- /** Create a new thread and switch to it. */
287
- newThread: () => Promise<string>;
288
- /** Archive a thread. If it's active, switch to the most recent thread. */
289
- archiveThread: (threadId: string) => Promise<void>;
290
- }
505
+ export declare function ThreadList({ className }: ThreadListProps): JSX.Element;
291
506
 
292
507
  export declare interface ThreadListProps {
293
508
  className?: string;
294
509
  }
295
510
 
296
- export declare interface ThreadListState {
297
- threads: ThreadSummary[];
298
- activeThreadId: string | null;
299
- isLoading: boolean;
300
- error: string | null;
301
- }
302
-
303
- export declare type ThreadListStore = ThreadListState & ThreadListActions;
304
-
305
511
  /**
306
512
  * Agora thread API client.
307
513
  * Calls existing REST endpoints for thread CRUD.
@@ -370,6 +576,88 @@ export declare function ToolFallbackTrigger({ toolName, argsText, result, status
370
576
 
371
577
  export { Toolkit }
372
578
 
579
+ /** A toolkit ID string. */
580
+ export declare type ToolkitId = (typeof Toolkits)[keyof typeof Toolkits];
581
+
582
+ /**
583
+ * Backend toolkit IDs.
584
+ *
585
+ * Pass these to the `tools` prop on `<AthenaProvider>` to enable backend toolkits.
586
+ *
587
+ * @example
588
+ * import { Toolkits } from '@athenaintel/react';
589
+ *
590
+ * <AthenaProvider tools={[Toolkits.DOCUMENT, Toolkits.SPREADSHEET, Toolkits.WEB_SEARCH]}>
591
+ */
592
+ export declare const Toolkits: {
593
+ /** Web search and page browsing. */
594
+ readonly WEB_SEARCH: "web_search_browse_toolkit";
595
+ /** SQL query execution. */
596
+ readonly SQL: "sql_toolkit";
597
+ /** Athena Code development environment. */
598
+ readonly ATHENA_CODE: "athena_code_toolkit";
599
+ /** Document comments and collaboration. */
600
+ readonly COMMENTS: "comments_toolkit";
601
+ /** Visual canvas creation. */
602
+ readonly CANVAS: "canvas_toolkit";
603
+ /** PostgreSQL database management. */
604
+ readonly DATABASE: "database_toolkit";
605
+ /** Asset collections management. */
606
+ readonly COLLECTIONS: "collections_toolkit";
607
+ /** Charts, dashboards, and figures. */
608
+ readonly VISUALIZATIONS: "visualizations_toolkit";
609
+ /** Custom UI creation. */
610
+ readonly USER_INTERFACE: "user_interface_toolkit";
611
+ /** Agent Operating Procedures. */
612
+ readonly AOP: "aop_toolkit";
613
+ /** Ephemeral compute environments. */
614
+ readonly COMPUTER_ASSET: "computer_asset_toolkit";
615
+ /** Web browser automation. */
616
+ readonly BROWSER: "browser_toolkit";
617
+ /** Virtual machine management. */
618
+ readonly VM: "vm_toolkit";
619
+ /** Jupyter notebook execution. */
620
+ readonly NOTEBOOK: "notebook_toolkit";
621
+ /** Presentation slide editing. */
622
+ readonly PRESENTATION: "presentation_toolkit";
623
+ /** PowerPoint presentation creation from templates. */
624
+ readonly POWERPOINT: "powerpoint_deck_toolkit";
625
+ /** Workspace file management (Spaces). */
626
+ readonly DRIVE: "olympus_drive_toolkit";
627
+ /** Python code execution. */
628
+ readonly PYTHON: "python_toolkit";
629
+ /** Multi-account email and calendar (Gmail + Outlook). */
630
+ readonly EMAIL: "unified_email_toolkit";
631
+ /** Legacy email and calendar operations. */
632
+ readonly EMAIL_CALENDAR: "email_calendar_toolkit";
633
+ /** Spreadsheet operations. */
634
+ readonly SPREADSHEET: "spreadsheet_toolkit";
635
+ /** Athena document editing. */
636
+ readonly DOCUMENT: "document_toolkit";
637
+ /** Word document backend operations. */
638
+ readonly WORD_DOCUMENT: "word_document_be_toolkit";
639
+ /** Go-To-Market management. */
640
+ readonly GTM: "gtm_toolkit";
641
+ /** Marketing campaign management. */
642
+ readonly MARKETING: "marketing_toolkit";
643
+ /** FDE implementations and workflows. */
644
+ readonly FDE: "fde_toolkit";
645
+ /** Code repository search via Greptile. */
646
+ readonly GREPTILE: "greptile_toolkit";
647
+ /** SharePoint / Google Drive / workspace file access. */
648
+ readonly EXTERNAL_DRIVE: "external_drive_toolkit";
649
+ /** Reusable playbooks and prompts. */
650
+ readonly PLAYBOOK: "playbook_toolkit";
651
+ /** Local Chrome browser control via tunnel. */
652
+ readonly DEVICE_TUNNEL: "device_tunnel_toolkit";
653
+ /** Project management. */
654
+ readonly PROJECTS: "projects_toolkit";
655
+ /** Task Studio script execution. */
656
+ readonly TASK_STUDIO: "task_studio_toolkit";
657
+ /** User memory and preferences. */
658
+ readonly PREFERENCES: "preferences_toolkit";
659
+ };
660
+
373
661
  export declare function Tooltip({ ...props }: React_2.ComponentProps<typeof Tooltip_2.Root>): JSX.Element;
374
662
 
375
663
  export declare function TooltipContent({ className, sideOffset, children, ...props }: React_2.ComponentProps<typeof Tooltip_2.Content>): JSX.Element;
@@ -387,9 +675,6 @@ export declare function TooltipTrigger({ ...props }: React_2.ComponentProps<type
387
675
 
388
676
  export declare function tryParseJson(text: string): Record<string, unknown> | null;
389
677
 
390
- /** Hook to get just the active thread ID. */
391
- export declare function useActiveThreadId(): string | null;
392
-
393
678
  /**
394
679
  * Hook to programmatically append text to the composer.
395
680
  *
@@ -461,12 +746,6 @@ export declare function useMentionSuggestions(tools: MentionTool[]): MentionSugg
461
746
  */
462
747
  export declare function useParentAuth(): string | null;
463
748
 
464
- /** Hook to access thread list state and actions. */
465
- export declare function useThreadList(): ThreadListState & ThreadListActions;
466
-
467
- /** Returns true while a thread switch is loading messages. */
468
- export declare function useThreadLoading(): boolean;
469
-
470
749
  export declare type ViewMode = 'tabs' | 'tiled';
471
750
 
472
751
  export declare const WebSearchToolUI: ToolCallMessagePartComponent;