@aikaara/chat-sdk 0.2.0 → 0.3.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.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./AikaaraChatClient-ChZ2bL9f.cjs"),n=require("./headless.cjs"),a=require("./ui.cjs");function u(t){a.registerComponents();const r=document.createElement("aikaara-chat-widget"),o={baseUrl:"base-url",userToken:"user-token",apiKey:"api-key",title:"title",subtitle:"subtitle",theme:"theme",primaryColor:"primary-color",position:"position",width:"width",height:"height",placeholder:"placeholder",welcomeMessage:"welcome-message",avatarUrl:"avatar-url"};for(const[s,l]of Object.entries(o)){const i=t[s];i!=null&&r.setAttribute(l,String(i))}return r.configure(t),document.body.appendChild(r),r}function g(){const t=document.querySelector("aikaara-chat-widget");t&&t.remove()}exports.ActionCableClient=e.ActionCableClient;exports.AikaaraChatClient=e.AikaaraChatClient;exports.ApiClient=e.ApiClient;exports.ChannelSubscription=e.ChannelSubscription;exports.ConnectionManager=e.ConnectionManager;exports.ConversationManager=e.ConversationManager;exports.EventEmitter=e.EventEmitter;exports.MessageStore=e.MessageStore;exports.FormBridge=n.FormBridge;exports.TiledeskTransport=n.TiledeskTransport;exports.AikaaraChatBubble=a.AikaaraChatBubble;exports.AikaaraChatHeader=a.AikaaraChatHeader;exports.AikaaraChatInput=a.AikaaraChatInput;exports.AikaaraChatWidget=a.AikaaraChatWidget;exports.AikaaraErrorBanner=a.AikaaraErrorBanner;exports.AikaaraMessageBubble=a.AikaaraMessageBubble;exports.AikaaraMessageList=a.AikaaraMessageList;exports.AikaaraStreamingMessage=a.AikaaraStreamingMessage;exports.AikaaraTypingIndicator=a.AikaaraTypingIndicator;exports.registerComponents=a.registerComponents;exports.mount=u;exports.unmount=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./AikaaraChatClient-kAu65hX-.cjs"),n=require("./headless.cjs"),a=require("./ui.cjs");function c(t){a.registerComponents();const r=document.createElement("aikaara-chat-widget"),o={baseUrl:"base-url",userToken:"user-token",apiKey:"api-key",title:"title",subtitle:"subtitle",theme:"theme",primaryColor:"primary-color",position:"position",width:"width",height:"height",placeholder:"placeholder",welcomeMessage:"welcome-message",avatarUrl:"avatar-url"};for(const[s,l]of Object.entries(o)){const i=t[s];i!=null&&r.setAttribute(l,String(i))}return r.configure(t),document.body.appendChild(r),r}function d(){const t=document.querySelector("aikaara-chat-widget");t&&t.remove()}exports.ActionCableClient=e.ActionCableClient;exports.AikaaraChatClient=e.AikaaraChatClient;exports.ApiClient=e.ApiClient;exports.ChannelSubscription=e.ChannelSubscription;exports.ConnectionManager=e.ConnectionManager;exports.ConversationManager=e.ConversationManager;exports.EventEmitter=e.EventEmitter;exports.MessageStore=e.MessageStore;exports.TiledeskTransport=e.TiledeskTransport;exports.extractTiledeskFileEnvelope=e.extractTiledeskFileEnvelope;exports.inferTiledeskRole=e.inferTiledeskRole;exports.isTiledeskSelfEcho=e.isTiledeskSelfEcho;exports.parseTiledeskTemplate=e.parseTiledeskTemplate;exports.FormBridge=n.FormBridge;exports.createFetchUploadAdapter=n.createFetchUploadAdapter;exports.AikaaraChatBubble=a.AikaaraChatBubble;exports.AikaaraChatHeader=a.AikaaraChatHeader;exports.AikaaraChatInput=a.AikaaraChatInput;exports.AikaaraChatWidget=a.AikaaraChatWidget;exports.AikaaraErrorBanner=a.AikaaraErrorBanner;exports.AikaaraMessageBubble=a.AikaaraMessageBubble;exports.AikaaraMessageList=a.AikaaraMessageList;exports.AikaaraStreamingMessage=a.AikaaraStreamingMessage;exports.AikaaraTypingIndicator=a.AikaaraTypingIndicator;exports.registerComponents=a.registerComponents;exports.mount=c;exports.unmount=d;
package/dist/index.d.ts CHANGED
@@ -41,14 +41,39 @@ export declare class AikaaraChatBubble extends HTMLElement {
41
41
 
42
42
  export declare class AikaaraChatClient extends EventEmitter<ChatEvents> {
43
43
  private connection;
44
+ private tiledesk;
44
45
  private api;
45
46
  private messageStore;
46
47
  private conversationManager;
47
48
  private subscription;
48
49
  private config;
49
- constructor(config: ChatClientConfig);
50
+ private mode;
51
+ private uploadAdapter;
52
+ private tiledeskUnsubs;
53
+ constructor(config: ChatClientConfig, opts?: {
54
+ uploadAdapter?: UploadAdapter;
55
+ });
56
+ private usesAikaara;
57
+ private usesTiledesk;
58
+ private initTiledeskTransport;
50
59
  connect(): Promise<void>;
51
60
  sendMessage(content: string): Promise<void>;
61
+ /**
62
+ * Upload a file via the configured UploadAdapter (client-side: file goes
63
+ * to the tenant's own backend, never through Aikaara). Then publish the
64
+ * Tiledesk file-message envelope so hooks_controller picks it up.
65
+ */
66
+ sendFile(file: File | Blob, opts?: {
67
+ caption?: string;
68
+ }): Promise<void>;
69
+ /**
70
+ * Trigger Tiledesk's CHAT_INITIATED event — required to kick off a bot flow
71
+ * for newly-created Tiledesk request groups.
72
+ */
73
+ initiateTiledeskChat(extraAttributes?: Record<string, unknown>): void;
74
+ /** Mark a Tiledesk message as read (publishes status=300 update). */
75
+ markTiledeskRead(messageId: string): void;
76
+ setUploadAdapter(adapter: UploadAdapter): void;
52
77
  sendUserEvent(eventKey: string, value?: object, source?: string): Promise<void>;
53
78
  loadHistory(): Promise<Message[]>;
54
79
  get messages(): Message[];
@@ -73,6 +98,8 @@ export declare class AikaaraChatClient extends EventEmitter<ChatEvents> {
73
98
  */
74
99
  setContext(context: AppContext): Promise<void>;
75
100
  disconnect(): Promise<void>;
101
+ private handleTiledeskMessage;
102
+ private handleTiledeskStatusUpdate;
76
103
  /**
77
104
  * Parse structured action results from tool execution output.
78
105
  * When the agent calls tools like `edit_current_entity`, `save_current_entity`,
@@ -120,6 +147,7 @@ export declare class AikaaraChatWidget extends HTMLElement {
120
147
  attributeChangedCallback(_name: string, oldVal: string, newVal: string): void;
121
148
  configure(config: Partial<WidgetConfig>): void;
122
149
  private getConfig;
150
+ setUploadAdapter(adapter: UploadAdapter): void;
123
151
  private render;
124
152
  private initController;
125
153
  sendUserEvent(eventKey: string, value?: Record<string, unknown>, source?: string): void;
@@ -139,11 +167,19 @@ export declare class AikaaraErrorBanner extends HTMLElement {
139
167
 
140
168
  export declare class AikaaraMessageBubble extends HTMLElement {
141
169
  private shadow;
170
+ private templatePayload;
171
+ private attachments;
142
172
  static get observedAttributes(): string[];
143
173
  constructor();
144
174
  connectedCallback(): void;
145
175
  attributeChangedCallback(): void;
176
+ setTemplatePayload(payload: unknown): void;
177
+ setAttachments(attachments: Array<{
178
+ fileName: string;
179
+ fileUrl: string;
180
+ }>): void;
146
181
  private render;
182
+ private renderAttachments;
147
183
  }
148
184
 
149
185
  export declare class AikaaraMessageList extends HTMLElement {
@@ -162,6 +198,13 @@ export declare class AikaaraMessageList extends HTMLElement {
162
198
  showTypingIndicator(): void;
163
199
  removeTypingIndicator(): void;
164
200
  private appendMessageElement;
201
+ /**
202
+ * Replace an existing rendered message (matched by id or externalId) in place.
203
+ * Used when a Tiledesk self-echo reconciles with an optimistic bubble or when
204
+ * a status update flips delivered → read.
205
+ */
206
+ upsertMessage(message: Message): void;
207
+ private findRenderedMessage;
165
208
  private scrollToBottom;
166
209
  private formatTime;
167
210
  }
@@ -239,11 +282,30 @@ export declare interface ChatClientConfig extends ConnectionConfig {
239
282
  conversationId?: string;
240
283
  systemPromptId?: number;
241
284
  channel?: 'widget' | 'api' | 'sidekick';
285
+ /**
286
+ * Transport selection.
287
+ * - `aikaara` (default): ActionCable to Aikaara Rails (AI streaming).
288
+ * - `tiledesk`: MQTT direct to a self-hosted Tiledesk + chat21 stack.
289
+ * - `dual`: both — Aikaara cable for AI, Tiledesk MQTT for live-agent + file events.
290
+ */
291
+ transport?: TransportMode;
292
+ /**
293
+ * Tiledesk-side identity. Required when `transport` is `tiledesk` or `dual`.
294
+ * `userId` here is the Tiledesk user `_id` and is also used as the SDK conversation
295
+ * subject — Aikaara conversations bound to this user via ext_uid mapping.
296
+ */
297
+ tiledeskIdentity?: {
298
+ userId: string;
299
+ userName?: string;
300
+ departmentId?: string;
301
+ senderFullname?: string;
302
+ };
242
303
  onMessage?: (message: Message) => void;
243
304
  onStatusChange?: (status: string) => void;
244
305
  onError?: (error: Error) => void;
245
306
  onStreamUpdate?: (delta: string, fullContent: string) => void;
246
307
  onConnectionStateChange?: (state: ConnectionState) => void;
308
+ onTemplateMessage?: (template: TemplateMessageEvent) => void;
247
309
  }
248
310
 
249
311
  export declare interface ChatEvents {
@@ -331,6 +393,8 @@ declare interface CreateConversationResponse {
331
393
  status: string;
332
394
  }
333
395
 
396
+ export declare function createFetchUploadAdapter(config: FetchUploadAdapterConfig): UploadAdapter;
397
+
334
398
  export declare interface EditEntityAction {
335
399
  action: 'edit_entity';
336
400
  entity_type: string;
@@ -346,6 +410,18 @@ export declare class EventEmitter<Events extends Record<string, any>> {
346
410
  removeAllListeners(): void;
347
411
  }
348
412
 
413
+ export declare function extractTiledeskFileEnvelope(message: TiledeskMessage): TiledeskFileEnvelope | null;
414
+
415
+ export declare interface FetchUploadAdapterConfig {
416
+ endpoint: string;
417
+ method?: 'POST' | 'PUT';
418
+ fieldName?: string;
419
+ headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
420
+ credentials?: RequestCredentials;
421
+ extraFields?: Record<string, string> | ((ctx: UploadAdapterContext) => Record<string, string>);
422
+ parseResponse?: (raw: unknown, ctx: UploadAdapterContext) => UploadAdapterResult;
423
+ }
424
+
349
425
  export declare interface FieldUpdate {
350
426
  field: string;
351
427
  value: unknown;
@@ -468,10 +544,19 @@ export declare interface FormRegistration {
468
544
  getCurrentValues: () => Record<string, unknown>;
469
545
  }
470
546
 
547
+ export declare function inferTiledeskRole(message: TiledeskMessage, cfg: TiledeskRoleConfig): TiledeskRole;
548
+
549
+ /**
550
+ * Self-echo detector — Tiledesk fans the user's outgoing publish back
551
+ * as a `clientadded` event on the same connection. UI must dedupe against
552
+ * the optimistic local message rather than rendering twice.
553
+ */
554
+ export declare function isTiledeskSelfEcho(message: TiledeskMessage, userId: string): boolean;
555
+
471
556
  export declare interface Message {
472
557
  id: string;
473
558
  conversationId: string;
474
- role: 'user' | 'assistant' | 'system' | 'tool';
559
+ role: 'user' | 'assistant' | 'system' | 'tool' | 'agent';
475
560
  content: string;
476
561
  toolCalls?: ToolCall[];
477
562
  toolCallResults?: ToolCallResult;
@@ -479,7 +564,19 @@ export declare interface Message {
479
564
  tokensOutput?: number;
480
565
  metadata?: Record<string, unknown>;
481
566
  createdAt: string;
482
- status?: 'sending' | 'sent' | 'streaming' | 'complete' | 'error';
567
+ status?: 'sending' | 'sent' | 'delivered' | 'read' | 'streaming' | 'complete' | 'error';
568
+ externalId?: string;
569
+ template?: {
570
+ contentType?: string;
571
+ templateId?: string;
572
+ payload?: unknown;
573
+ };
574
+ attachments?: Array<{
575
+ fileName: string;
576
+ fileUrl: string;
577
+ cloudFileId?: string;
578
+ contentType?: string;
579
+ }>;
483
580
  }
484
581
 
485
582
  export declare class MessageStore {
@@ -487,6 +584,22 @@ export declare class MessageStore {
487
584
  private optimisticCounter;
488
585
  get messages(): Message[];
489
586
  addOptimistic(role: 'user', content: string, conversationId: string): Message;
587
+ /**
588
+ * Reconcile a remote message against an outstanding optimistic message.
589
+ * Tiledesk fans the user's outgoing publish back as an inbound clientadded —
590
+ * dedupe by exact content + recency window so the optimistic bubble keeps
591
+ * its position and we don't render duplicates.
592
+ */
593
+ reconcileOptimistic(remote: Message, recencyMs?: number): Message | null;
594
+ /**
595
+ * Append a remote-originated message (e.g. from Tiledesk MQTT). If a matching
596
+ * optimistic message exists it is reconciled in place; otherwise appended.
597
+ */
598
+ upsertRemoteMessage(remote: Message): {
599
+ message: Message;
600
+ deduped: boolean;
601
+ };
602
+ updateMessageStatus(externalId: string, status: Message['status']): Message | undefined;
490
603
  confirmOptimistic(tempId: string): void;
491
604
  addStreamingMessage(conversationId: string): Message;
492
605
  updateStreaming(content: string): void;
@@ -507,6 +620,8 @@ export declare interface NavigateAction {
507
620
  navigate_to: string;
508
621
  }
509
622
 
623
+ export declare function parseTiledeskTemplate(message: TiledeskMessage): TiledeskParsedTemplate;
624
+
510
625
  export declare function registerComponents(): void;
511
626
 
512
627
  export declare interface SaveEntityAction {
@@ -515,44 +630,167 @@ export declare interface SaveEntityAction {
515
630
 
516
631
  declare type SubscriptionCallback = (data: unknown) => void;
517
632
 
633
+ declare interface TemplateMessageEvent {
634
+ messageId: string;
635
+ conversationId: string;
636
+ role: 'user' | 'assistant' | 'system' | 'agent';
637
+ contentType?: string;
638
+ templateId?: string;
639
+ payload?: unknown;
640
+ innerMessage?: string;
641
+ raw: unknown;
642
+ }
643
+
518
644
  export declare interface TestToolAction {
519
645
  action: 'test_tool';
520
646
  tool_id: number;
521
647
  parameters: Record<string, unknown>;
522
648
  }
523
649
 
650
+ export declare interface TiledeskFileEnvelope {
651
+ fileName?: string;
652
+ fileUrl?: string;
653
+ cloudFileId?: string;
654
+ templateId?: string;
655
+ }
656
+
657
+ export declare interface TiledeskFileMessageInput {
658
+ fileName: string;
659
+ fileUrl: string;
660
+ cloudFileId?: string;
661
+ templateId?: string;
662
+ headerImgSrc?: string;
663
+ type?: 'link' | 'image';
664
+ isDeepLink?: boolean;
665
+ description?: string;
666
+ attributes?: Record<string, unknown>;
667
+ metadata?: Record<string, unknown>;
668
+ }
669
+
670
+ export declare interface TiledeskFileTemplateConfig {
671
+ templateId: string;
672
+ headerImgSrc?: string;
673
+ type?: 'link' | 'image';
674
+ isDeepLink?: boolean;
675
+ }
676
+
524
677
  export declare interface TiledeskMessage {
525
678
  text?: string;
526
679
  type?: string;
527
680
  sender?: string;
528
681
  senderFullname?: string;
682
+ sender_fullname?: string;
529
683
  recipient?: string;
684
+ recipient_fullname?: string;
685
+ channel_type?: string;
530
686
  timestamp?: number;
687
+ app_id?: string;
688
+ message_id?: string;
689
+ status?: number;
531
690
  attributes?: Record<string, unknown>;
532
691
  metadata?: Record<string, unknown>;
533
692
  [key: string]: unknown;
534
693
  }
535
694
 
695
+ export declare interface TiledeskMessageContext {
696
+ topic: string;
697
+ conversationId?: string;
698
+ messageId?: string;
699
+ kind: 'clientadded' | 'update' | 'unknown';
700
+ }
701
+
702
+ export declare interface TiledeskMessageDefaults {
703
+ channelType?: string;
704
+ channel?: string;
705
+ requestChannel?: string;
706
+ platform?: string;
707
+ medium?: string;
708
+ departmentId?: string;
709
+ attributes?: Record<string, unknown>;
710
+ }
711
+
712
+ export declare interface TiledeskParsedTemplate {
713
+ contentType?: string;
714
+ templateId?: string;
715
+ payload?: unknown;
716
+ innerMessage?: string;
717
+ raw: TiledeskMessage;
718
+ }
719
+
720
+ export declare type TiledeskRole = 'user' | 'assistant' | 'system' | 'agent';
721
+
722
+ export declare interface TiledeskRoleConfig {
723
+ userId: string;
724
+ systemSenders?: string[];
725
+ botSenderPrefix?: string;
726
+ }
727
+
728
+ export declare interface TiledeskStatusUpdate {
729
+ conversationId: string;
730
+ messageId: string;
731
+ status: number;
732
+ raw: Record<string, unknown>;
733
+ }
734
+
735
+ export declare interface TiledeskTopicTemplates {
736
+ inbound?: string;
737
+ inboundUpdate?: string;
738
+ outbound?: string;
739
+ presence?: string;
740
+ wildcardSubscribe?: string;
741
+ }
742
+
536
743
  export declare class TiledeskTransport {
537
744
  private client;
538
745
  private config;
746
+ private currentToken;
747
+ private clientId;
748
+ private appId;
749
+ private topics;
539
750
  private messageHandlers;
540
751
  private stateHandlers;
752
+ private statusUpdateHandlers;
541
753
  private subscribedTopics;
542
754
  private reconnectAttempt;
543
755
  private maxReconnectAttempts;
756
+ private reconnectMaxDelayMs;
544
757
  private disposed;
758
+ private reconnectTimer;
759
+ private inboundRegex;
760
+ private inboundUpdateRegex;
545
761
  constructor(config: TiledeskTransportConfig);
546
762
  connect(): Promise<void>;
763
+ subscribeWildcard(): void;
547
764
  subscribeToConversation(conversationId: string): void;
548
765
  unsubscribeFromConversation(conversationId: string): void;
549
- publishMessage(conversationId: string, text: string): void;
766
+ publishMessage(conversationId: string, text: string, overrides?: Partial<TiledeskMessage>): void;
767
+ publishFileMessage(conversationId: string, file: TiledeskFileMessageInput): void;
768
+ publishRaw(conversationId: string, message: TiledeskMessage): void;
769
+ /**
770
+ * Send a read receipt for a message. Tiledesk widgets publish
771
+ * `{"status":300}` to apps/{appId}/users/{userId}/messages/{convId}/{msgId}/update.
772
+ */
773
+ publishReadReceipt(conversationId: string, messageId: string, status?: number): void;
774
+ /**
775
+ * Trigger conversation kickoff. Tiledesk bot routing waits for the
776
+ * widget to publish a CHAT_INITIATED event before the bot replies.
777
+ */
778
+ publishChatInitiated(conversationId: string, extraAttributes?: Record<string, unknown>): void;
550
779
  onMessage(handler: TransportMessageHandler): () => void;
551
780
  onStateChange(handler: TransportStateHandler): () => void;
781
+ onStatusUpdate(handler: TransportStatusUpdateHandler): () => void;
552
782
  disconnect(): void;
553
783
  get isConnected(): boolean;
554
784
  private scheduleReconnect;
555
785
  private notifyStateChange;
786
+ private dispatchInbound;
787
+ private buildOutgoingEnvelope;
788
+ private publishEnvelope;
789
+ private renderInboundTopic;
790
+ private renderOutboundTopic;
791
+ private renderPresenceTopic;
792
+ private renderTemplate;
793
+ private buildTopicRegex;
556
794
  }
557
795
 
558
796
  export declare interface TiledeskTransportConfig {
@@ -561,6 +799,28 @@ export declare interface TiledeskTransportConfig {
561
799
  userId: string;
562
800
  userName?: string;
563
801
  projectId: string;
802
+ appId?: string;
803
+ clientId?: string;
804
+ protocolVersion?: 3 | 4 | 5;
805
+ protocolId?: 'MQIsdp' | 'MQTT';
806
+ mqttUsername?: string;
807
+ connectTimeoutMs?: number;
808
+ keepAliveSec?: number;
809
+ maxReconnectAttempts?: number;
810
+ reconnectMaxDelayMs?: number;
811
+ tokenProvider?: () => Promise<string>;
812
+ wildcardSubscribe?: boolean;
813
+ subscribeQos?: 0 | 1 | 2;
814
+ publishQos?: 0 | 1 | 2;
815
+ publishRetain?: boolean;
816
+ enablePresence?: boolean;
817
+ presencePayloadConnected?: Record<string, unknown>;
818
+ presencePayloadDisconnected?: Record<string, unknown>;
819
+ topicTemplates?: TiledeskTopicTemplates;
820
+ messageDefaults?: TiledeskMessageDefaults;
821
+ fileTemplate?: TiledeskFileTemplateConfig;
822
+ recipientFullnameResolver?: (conversationId: string) => string | undefined;
823
+ senderFullname?: string;
564
824
  }
565
825
 
566
826
  export declare interface ToolCall {
@@ -577,12 +837,37 @@ export declare interface ToolCallResult {
577
837
  content: string;
578
838
  }
579
839
 
580
- export declare type TransportMessageHandler = (message: TiledeskMessage) => void;
840
+ export declare type TransportMessageHandler = (message: TiledeskMessage, ctx: TiledeskMessageContext) => void;
841
+
842
+ declare type TransportMode = 'aikaara' | 'tiledesk' | 'dual';
581
843
 
582
844
  export declare type TransportStateHandler = (connected: boolean) => void;
583
845
 
846
+ export declare type TransportStatusUpdateHandler = (update: TiledeskStatusUpdate) => void;
847
+
584
848
  export declare function unmount(): void;
585
849
 
850
+ export declare interface UploadAdapter {
851
+ upload(file: File | Blob, ctx: UploadAdapterContext): Promise<UploadAdapterResult>;
852
+ }
853
+
854
+ export declare interface UploadAdapterContext {
855
+ conversationId: string;
856
+ userId: string;
857
+ projectId?: string;
858
+ appId?: string;
859
+ }
860
+
861
+ export declare interface UploadAdapterResult {
862
+ url: string;
863
+ fileName: string;
864
+ cloudFileId?: string;
865
+ relativePath?: string;
866
+ contentType?: string;
867
+ byteSize?: number;
868
+ meta?: Record<string, unknown>;
869
+ }
870
+
586
871
  export declare interface WidgetConfig extends ChatClientConfig {
587
872
  position?: 'bottom-right' | 'bottom-left';
588
873
  offset?: {
@@ -605,6 +890,7 @@ export declare interface WidgetConfig extends ChatClientConfig {
605
890
  showBubble?: boolean;
606
891
  bubbleText?: string;
607
892
  bubbleIcon?: string;
893
+ uploadAdapter?: UploadAdapter;
608
894
  }
609
895
 
610
896
  export { }
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { A as p, a as d, b as g, C as h, c as k, d as C, E as b, M as A } from "./AikaaraChatClient-C4lWcRsS.mjs";
2
- import { FormBridge as M, TiledeskTransport as w } from "./headless.mjs";
3
- import { registerComponents as n } from "./ui.mjs";
4
- import { AikaaraChatBubble as v, AikaaraChatHeader as E, AikaaraChatInput as S, AikaaraChatWidget as x, AikaaraErrorBanner as B, AikaaraMessageBubble as T, AikaaraMessageList as I, AikaaraStreamingMessage as U, AikaaraTypingIndicator as j } from "./ui.mjs";
1
+ import { A as m, a as u, b as h, C as k, c as g, d as C, E as A, M as b, T as f, e as T, i as M, f as v, p as w } from "./AikaaraChatClient-Cqbcd1jb.mjs";
2
+ import { FormBridge as E, createFetchUploadAdapter as S } from "./headless.mjs";
3
+ import { registerComponents as s } from "./ui.mjs";
4
+ import { AikaaraChatBubble as B, AikaaraChatHeader as F, AikaaraChatInput as U, AikaaraChatWidget as I, AikaaraErrorBanner as j, AikaaraMessageBubble as q, AikaaraMessageList as H, AikaaraStreamingMessage as K, AikaaraTypingIndicator as L } from "./ui.mjs";
5
5
  function l(e) {
6
- n();
6
+ s();
7
7
  const a = document.createElement("aikaara-chat-widget"), r = {
8
8
  baseUrl: "base-url",
9
9
  userToken: "user-token",
@@ -30,26 +30,31 @@ function c() {
30
30
  e && e.remove();
31
31
  }
32
32
  export {
33
- p as ActionCableClient,
34
- v as AikaaraChatBubble,
35
- d as AikaaraChatClient,
36
- E as AikaaraChatHeader,
37
- S as AikaaraChatInput,
38
- x as AikaaraChatWidget,
39
- B as AikaaraErrorBanner,
40
- T as AikaaraMessageBubble,
41
- I as AikaaraMessageList,
42
- U as AikaaraStreamingMessage,
43
- j as AikaaraTypingIndicator,
44
- g as ApiClient,
45
- h as ChannelSubscription,
46
- k as ConnectionManager,
33
+ m as ActionCableClient,
34
+ B as AikaaraChatBubble,
35
+ u as AikaaraChatClient,
36
+ F as AikaaraChatHeader,
37
+ U as AikaaraChatInput,
38
+ I as AikaaraChatWidget,
39
+ j as AikaaraErrorBanner,
40
+ q as AikaaraMessageBubble,
41
+ H as AikaaraMessageList,
42
+ K as AikaaraStreamingMessage,
43
+ L as AikaaraTypingIndicator,
44
+ h as ApiClient,
45
+ k as ChannelSubscription,
46
+ g as ConnectionManager,
47
47
  C as ConversationManager,
48
- b as EventEmitter,
49
- M as FormBridge,
50
- A as MessageStore,
51
- w as TiledeskTransport,
48
+ A as EventEmitter,
49
+ E as FormBridge,
50
+ b as MessageStore,
51
+ f as TiledeskTransport,
52
+ S as createFetchUploadAdapter,
53
+ T as extractTiledeskFileEnvelope,
54
+ M as inferTiledeskRole,
55
+ v as isTiledeskSelfEcho,
52
56
  l as mount,
53
- n as registerComponents,
57
+ w as parseTiledeskTemplate,
58
+ s as registerComponents,
54
59
  c as unmount
55
60
  };