@visma-swno/gaia-chat-ui 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/core/chat/chat.dto.d.ts +22 -44
  2. package/dist/core/chat/chat.dto.d.ts.map +1 -1
  3. package/dist/core/chat/chat.service.d.ts.map +1 -1
  4. package/dist/core/chat/chat.store.d.ts +4 -3
  5. package/dist/core/chat/chat.store.d.ts.map +1 -1
  6. package/dist/core/chat/chat.types.d.ts +26 -36
  7. package/dist/core/chat/chat.types.d.ts.map +1 -1
  8. package/dist/core/chat/chat.utils.d.ts +4 -6
  9. package/dist/core/chat/chat.utils.d.ts.map +1 -1
  10. package/dist/core/lib/websocket-client.d.ts +23 -0
  11. package/dist/core/lib/websocket-client.d.ts.map +1 -0
  12. package/dist/gaia-chat-ui.es.js +914 -980
  13. package/dist/gaia-chat-ui.es.js.map +1 -1
  14. package/dist/gaia-chat-ui.umd.js +131 -186
  15. package/dist/gaia-chat-ui.umd.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/ui/chat/{message-list.d.ts → chat-message-list.d.ts} +2 -2
  18. package/dist/ui/chat/chat-message-list.d.ts.map +1 -0
  19. package/dist/ui/chat/chat-message-list.styles.d.ts +2 -0
  20. package/dist/ui/chat/chat-message-list.styles.d.ts.map +1 -0
  21. package/dist/ui/chat/chat-message.d.ts +15 -0
  22. package/dist/ui/chat/chat-message.d.ts.map +1 -0
  23. package/dist/ui/chat/{message/message.styles.d.ts → chat-message.styles.d.ts} +1 -1
  24. package/dist/ui/chat/chat-message.styles.d.ts.map +1 -0
  25. package/dist/ui/chat/chat.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/ui/chat/message/abstract-message.d.ts +0 -16
  28. package/dist/ui/chat/message/abstract-message.d.ts.map +0 -1
  29. package/dist/ui/chat/message/assistant-message.d.ts +0 -12
  30. package/dist/ui/chat/message/assistant-message.d.ts.map +0 -1
  31. package/dist/ui/chat/message/index.d.ts +0 -1
  32. package/dist/ui/chat/message/index.d.ts.map +0 -1
  33. package/dist/ui/chat/message/message.styles.d.ts.map +0 -1
  34. package/dist/ui/chat/message/notification-message.d.ts +0 -7
  35. package/dist/ui/chat/message/notification-message.d.ts.map +0 -1
  36. package/dist/ui/chat/message/user-message.d.ts +0 -6
  37. package/dist/ui/chat/message/user-message.d.ts.map +0 -1
  38. package/dist/ui/chat/message-list.d.ts.map +0 -1
  39. package/dist/ui/chat/message-list.styles.d.ts +0 -2
  40. package/dist/ui/chat/message-list.styles.d.ts.map +0 -1
@@ -1,5 +1,4 @@
1
- import { EventSourceMessage } from 'eventsource-client';
2
- import { ChatMessage, NotificationType } from './chat.types';
1
+ import { ChatMessage } from './chat.types';
3
2
  /**
4
3
  * Chat DTOs
5
4
  */
@@ -15,54 +14,33 @@ export type ApproveToolCallRequest = {
15
14
  };
16
15
  export type GetConversationByIdResponse = {
17
16
  id: string;
18
- messages: ChatMessage[];
17
+ messages: Record<string, ChatMessage>;
18
+ currentNode: string | null;
19
19
  createdAt: string;
20
20
  updatedAt: string;
21
21
  };
22
22
  /**
23
- * Json Patch Event
23
+ * Chat Events
24
24
  */
25
- export type JsonPatchOp = 'add' | 'remove' | 'replace';
26
- export type JsonPatch = {
27
- op: JsonPatchOp;
25
+ export type JsonPatchOperation = 'add' | 'remove' | 'replace';
26
+ export interface PatchPayload<T> {
27
+ op: JsonPatchOperation;
28
28
  path: string;
29
- value: unknown;
30
- };
31
- export type JsonPatchEvent = Omit<EventSourceMessage, 'data'> & {
29
+ value: T;
30
+ }
31
+ export type MessagePayload = {
32
+ type: 'conversationIdSet';
33
+ conversationId: string;
34
+ } | {
35
+ type: 'contentStart';
36
+ } | {
37
+ type: 'contentEnd';
38
+ };
39
+ export type ChatUpdateEvent = {
32
40
  event: 'patch';
33
- data: JsonPatch;
34
- };
35
- /**
36
- * Notification Event
37
- */
38
- type BaseNotificationPayload = {
39
- timestamp: string;
40
- message: string;
41
- details: Record<string, unknown>;
42
- };
43
- type InfoPayload = BaseNotificationPayload & {
44
- notificationType: NotificationType.Info;
45
- };
46
- type SuccessPayload = BaseNotificationPayload & {
47
- notificationType: NotificationType.Success;
41
+ data: PatchPayload<unknown>;
42
+ } | {
43
+ event: 'message';
44
+ data: MessagePayload;
48
45
  };
49
- type WarningPayload = BaseNotificationPayload & {
50
- notificationType: NotificationType.Warning;
51
- };
52
- type ErrorPayload = BaseNotificationPayload & {
53
- notificationType: NotificationType.Info;
54
- errorCode: string;
55
- exceptionType?: string;
56
- stackTrace?: string;
57
- };
58
- export type NotificationPayload = InfoPayload | SuccessPayload | WarningPayload | ErrorPayload;
59
- export type NotificationEvent = EventSourceMessage & {
60
- event: 'notify';
61
- data: NotificationPayload;
62
- };
63
- /**
64
- * Server Sent Event
65
- */
66
- export type ServerSentEvent = JsonPatchEvent | NotificationEvent;
67
- export {};
68
46
  //# sourceMappingURL=chat.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.dto.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE7D;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF;;GAEG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF;;GAEG;AAEH,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,WAAW,GAAG,uBAAuB,GAAG;IAC3C,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC;CACzC,CAAC;AAEF,KAAK,cAAc,GAAG,uBAAuB,GAAG;IAC9C,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC;CAC5C,CAAC;AAEF,KAAK,cAAc,GAAG,uBAAuB,GAAG;IAC9C,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC;CAC5C,CAAC;AAEF,KAAK,YAAY,GAAG,uBAAuB,GAAG;IAC5C,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;AAE/F,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF;;GAEG;AAEH,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"chat.dto.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,EAAE,EAAE,kBAAkB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3B,MAAM,MAAM,eAAe,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAAE,GAC/C;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,2BAA2B,EAE5B,MAAM,YAAY,CAAC;AAUpB,qBAAa,WAAW;IAChB,IAAI;IAcJ,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;YAQ7D,mBAAmB;CAmClC"}
1
+ {"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,2BAA2B,EAE5B,MAAM,YAAY,CAAC;AAGpB,qBAAa,WAAW;IAChB,IAAI;IAcJ,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzF,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;YAQ7D,mBAAmB;CA2ClC"}
@@ -1,5 +1,5 @@
1
1
  import { Store } from '../lib/store';
2
- import { JsonPatchEvent } from './chat.dto';
2
+ import { PatchPayload } from './chat.dto';
3
3
  import { ChatMessage, ConversationState } from './chat.types';
4
4
  export declare class ChatStore extends Store<ConversationState> {
5
5
  private readonly _conversationStorageKey;
@@ -9,9 +9,10 @@ export declare class ChatStore extends Store<ConversationState> {
9
9
  setStatus(status: ConversationState['status']): void;
10
10
  setError(error: string): void;
11
11
  setMessages(messages: Record<string, ChatMessage>): void;
12
+ setCurrentNode(nodeId: string | null): void;
12
13
  addMessage(message: ChatMessage): void;
13
- private setId;
14
- applyPatchOperation(patch: JsonPatchEvent): void;
14
+ setId(id: string): void;
15
+ applyPatchOperation(patch: PatchPayload<unknown>): void;
15
16
  resetState(): void;
16
17
  private _saveToStorage;
17
18
  private _loadFromStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.store.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,qBAAa,SAAU,SAAQ,KAAK,CAAC,iBAAiB,CAAC;IACrD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAsC;;IAcvE,WAAW,IAAI,WAAW,EAAE;IAI5B,cAAc,IAAI,WAAW,GAAG,IAAI;IAKpC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC;IAO7C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAQtB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;IAOjD,UAAU,CAAC,OAAO,EAAE,WAAW;IAUtC,OAAO,CAAC,KAAK;IAQN,mBAAmB,CAAC,KAAK,EAAE,cAAc;IAQzC,UAAU;IASjB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAWjB,YAAY;CAGpB"}
1
+ {"version":3,"file":"chat.store.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,qBAAa,SAAU,SAAQ,KAAK,CAAC,iBAAiB,CAAC;IACrD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAsC;;IAevE,WAAW,IAAI,WAAW,EAAE;IAI5B,cAAc,IAAI,WAAW,GAAG,IAAI;IAKpC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC;IAO7C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAQtB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;IAOjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOpC,UAAU,CAAC,OAAO,EAAE,WAAW;IAW/B,KAAK,CAAC,EAAE,EAAE,MAAM;IAQhB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;IA8BhD,UAAU;IAUjB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAYjB,YAAY;CAGpB"}
@@ -1,3 +1,11 @@
1
+ export type ChatMessageRole = 'system' | 'user' | 'assistant' | 'tool' | 'notification';
2
+ export type ChatMessageStatus = 'inProgress' | 'finishedSuccessfully';
3
+ export type ChatMessageLevel = 'info' | 'success' | 'warning' | 'error';
4
+ export type ApprovalStatus = 'approved' | 'denied' | 'pending';
5
+ export type Author = {
6
+ role: ChatMessageRole;
7
+ name?: string;
8
+ };
1
9
  export type Citation = {
2
10
  title: string;
3
11
  url: string;
@@ -21,51 +29,33 @@ export type TokenUsage = {
21
29
  outputTokens: number;
22
30
  totalTokens: number;
23
31
  };
24
- export declare enum NotificationType {
25
- Info = "info",
26
- Success = "success",
27
- Warning = "warning",
28
- Error = "error"
29
- }
30
- export type ChatMessageRole = 'system' | 'user' | 'assistant' | 'tool' | 'notification';
31
- export type ChatMessageStatus = 'inProgress' | 'finishedSuccessfully' | 'requestingApproval' | 'toolCallsApproved' | 'toolCallsDenied';
32
+ export type MessageMetadata = {
33
+ isVisuallyHidden: boolean;
34
+ excludeFromHistory: boolean;
35
+ tokenUsage?: TokenUsage;
36
+ requestId?: string;
37
+ userApproval?: ApprovalStatus;
38
+ };
32
39
  /** Single immutable message */
33
- export interface AbstractMessage {
40
+ export interface ChatMessage {
34
41
  readonly id: string;
35
- readonly role: ChatMessageRole;
36
- readonly status: ChatMessageStatus;
37
- readonly content?: string[];
38
- readonly timestamp: string;
39
- }
40
- export interface UserMessage extends AbstractMessage {
41
- readonly role: 'user';
42
- }
43
- export interface AssistantMessage extends AbstractMessage {
44
- readonly role: 'assistant';
45
- readonly toolCalls?: ToolCall[];
46
- readonly tokenUsage?: TokenUsage;
47
- readonly citations?: Citation[];
48
- }
49
- export interface ToolMessage extends AbstractMessage {
50
- readonly role: 'tool';
51
- readonly toolCallResult: ToolCallResult;
52
- }
53
- export interface NotificationMessage extends AbstractMessage {
54
- readonly role: 'notification';
42
+ readonly author: Author;
55
43
  readonly status: ChatMessageStatus;
56
- readonly notificationType: NotificationType;
57
- readonly details: Record<string, unknown>;
44
+ readonly createdAt: string;
45
+ readonly updatedAt: string;
46
+ readonly level?: ChatMessageLevel;
47
+ readonly content: string[];
48
+ readonly toolCalls: ToolCall[];
49
+ readonly toolCallResult?: ToolCallResult;
50
+ readonly citations: Citation[];
51
+ readonly metadata: MessageMetadata;
58
52
  }
59
- export type ChatMessage = UserMessage | AssistantMessage | ToolMessage | NotificationMessage;
60
53
  /** Conversation aggregate */
61
54
  export interface ConversationState {
62
55
  readonly id: string | null;
63
56
  readonly messages: Record<string, ChatMessage>;
57
+ readonly currentNode: string | null;
64
58
  readonly status: 'idle' | 'sending' | 'streaming' | 'error';
65
59
  readonly error?: string;
66
60
  }
67
- export declare function isUserMessage(message: ChatMessage): message is UserMessage;
68
- export declare function isAssistantMessage(message: ChatMessage): message is AssistantMessage;
69
- export declare function isToolMessage(message: ChatMessage): message is ToolMessage;
70
- export declare function isNotificationMessage(message: ChatMessage): message is NotificationMessage;
71
61
  //# sourceMappingURL=chat.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.types.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC;AACxF,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,sBAAsB,GACtB,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,CAAC;AAEtB,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAE7F,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI,WAAW,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI,gBAAgB,CAEpF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI,WAAW,CAE1E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI,mBAAmB,CAE1F"}
1
+ {"version":3,"file":"chat.types.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,CAAC;AACxF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,sBAAsB,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAED,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -1,11 +1,9 @@
1
- import { GetConversationByIdResponse, JsonPatchEvent, NotificationEvent } from './chat.dto';
2
- import { ChatMessage, NotificationMessage } from './chat.types';
1
+ import { MessagePayload, PatchPayload } from './chat.dto';
2
+ import { ChatMessage } from './chat.types';
3
3
  export declare const createUserMessage: (content: string) => ChatMessage;
4
- export declare const mapNotificationEventToMessage: (event: NotificationEvent) => NotificationMessage;
5
- export declare const mapConversationToMessages: (conversation: GetConversationByIdResponse) => Record<string, ChatMessage>;
6
4
  export interface SseEventHandlers {
7
- onPatch: (patchEvent: JsonPatchEvent) => void;
8
- onNotify: (notification: NotificationEvent) => void;
5
+ onPatch: (patchEvent: PatchPayload<unknown>) => void;
6
+ onMessage: (message: MessagePayload) => void;
9
7
  onError: (error: Error) => void;
10
8
  onClose: () => void;
11
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.utils.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.utils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,WAMlD,CAAC;AAEH,eAAO,MAAM,6BAA6B,GAAI,OAAO,iBAAiB,KAAG,mBAWxE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,cAAc,2BAA2B,KACxC,MAAM,CAAC,MAAM,EAAE,WAAW,CAe5B,CAAC;AAGF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAC/C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,cAAc,CAAC,CAAC,GAAG,GAAG;QAC9B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;KACpD;CACF"}
1
+ {"version":3,"file":"chat.utils.d.ts","sourceRoot":"","sources":["../../../src/core/chat/chat.utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,KAAG,WAalD,CAAC;AAGH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACrD,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAC/C,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,cAAc,CAAC,CAAC,GAAG,GAAG;QAC9B,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;KACpD;CACF"}
@@ -0,0 +1,23 @@
1
+ export type WebSocketEvent<TData> = MessageEvent<TData> | Event | CloseEvent;
2
+ export declare class WebSocketClient<TData> {
3
+ #private;
4
+ private ws;
5
+ private pingInterval;
6
+ private pingCounter;
7
+ private listeners;
8
+ private readonly url;
9
+ private readonly pingDelayMs;
10
+ private readonly tryJsonParse;
11
+ /**
12
+ * @param url - The URL of the WebSocket server.
13
+ * @param pingDelayMs - The delay between pings in milliseconds. Default is 1 minute.
14
+ * @param tryJsonParse - Whether to try to parse the data as JSON. Default is true.
15
+ */
16
+ constructor(url: string, pingDelayMs?: number, tryJsonParse?: boolean);
17
+ addListener(listener: (event: WebSocketEvent<TData>) => void): void;
18
+ removeListener(listener: (event: WebSocketEvent<TData>) => void): void;
19
+ isConnected(): boolean;
20
+ connect(): void;
21
+ disconnect(): void;
22
+ }
23
+ //# sourceMappingURL=websocket-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../../src/core/lib/websocket-client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;AAE7E,qBAAa,eAAe,CAAC,KAAK;;IAChC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAkD;IAEnE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAc,EAAE,YAAY,GAAE,OAAc;IAMlF,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI;IAOnE,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI;IAItE,WAAW,IAAI,OAAO;IAItB,OAAO,IAAI,IAAI;IA+Bf,UAAU;CA6BX"}