@asgard-js/core 0.0.1 → 0.0.3-8.canary-1

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 (50) hide show
  1. package/README.md +329 -6
  2. package/dist/constants/enum.d.ts +12 -3
  3. package/dist/constants/enum.d.ts.map +1 -1
  4. package/dist/index.cjs +3 -3
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -3
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +1119 -1010
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/lib/channel.d.ts +19 -0
  13. package/dist/lib/channel.d.ts.map +1 -0
  14. package/dist/lib/client.d.ts +11 -13
  15. package/dist/lib/client.d.ts.map +1 -1
  16. package/dist/lib/conversation.d.ts +18 -0
  17. package/dist/lib/conversation.d.ts.map +1 -0
  18. package/dist/lib/create-sse-observable.d.ts +7 -6
  19. package/dist/lib/create-sse-observable.d.ts.map +1 -1
  20. package/dist/lib/event-emitter.d.ts +8 -0
  21. package/dist/lib/event-emitter.d.ts.map +1 -0
  22. package/dist/types/channel.d.ts +42 -0
  23. package/dist/types/channel.d.ts.map +1 -0
  24. package/dist/types/client.d.ts +62 -16
  25. package/dist/types/client.d.ts.map +1 -1
  26. package/dist/types/event-emitter.d.ts +5 -0
  27. package/dist/types/event-emitter.d.ts.map +1 -0
  28. package/dist/types/index.d.ts +2 -0
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/dist/types/sse-response.d.ts +60 -11
  31. package/dist/types/sse-response.d.ts.map +1 -1
  32. package/eslint.config.cjs +22 -0
  33. package/package.json +13 -1
  34. package/src/constants/enum.ts +32 -0
  35. package/src/index.ts +11 -0
  36. package/src/lib/channel.ts +153 -0
  37. package/src/lib/client.spec.ts +150 -0
  38. package/src/lib/client.ts +141 -0
  39. package/src/lib/conversation.ts +120 -0
  40. package/src/lib/create-sse-observable.ts +77 -0
  41. package/src/lib/event-emitter.ts +30 -0
  42. package/src/types/channel.ts +50 -0
  43. package/src/types/client.ts +89 -0
  44. package/src/types/event-emitter.ts +8 -0
  45. package/src/types/index.ts +4 -0
  46. package/src/types/sse-response.ts +176 -0
  47. package/tsconfig.json +13 -0
  48. package/tsconfig.lib.json +28 -0
  49. package/tsconfig.spec.json +33 -0
  50. package/vite.config.ts +80 -0
@@ -0,0 +1,19 @@
1
+ import { ChannelConfig, FetchSseOptions, FetchSsePayload } from '../types';
2
+
3
+ export default class Channel {
4
+ private client;
5
+ customChannelId: string;
6
+ customMessageId?: string;
7
+ private isConnecting$;
8
+ private conversation$;
9
+ private statesObserver?;
10
+ private statesSubscription?;
11
+ private constructor();
12
+ static reset(config: ChannelConfig, payload?: Pick<FetchSsePayload, 'text' | 'payload'>, options?: FetchSseOptions): Promise<Channel>;
13
+ private subscribe;
14
+ private fetchSse;
15
+ private resetChannel;
16
+ sendMessage(payload: Pick<FetchSsePayload, 'customMessageId' | 'text' | 'payload'>, options?: FetchSseOptions): Promise<void>;
17
+ close(): void;
18
+ }
19
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAEb,eAAe,EACf,eAAe,EAIhB,MAAM,UAAU,CAAC;AAIlB,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,OAAO,CAAC,MAAM,CAAuB;IAE9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,kBAAkB,CAAC,CAAe;IAE1C,OAAO;WAkBa,KAAK,CACvB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,EACnD,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,OAAO,CAAC;IAgBnB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,QAAQ;IA2BhB,OAAO,CAAC,YAAY;IAgBb,WAAW,CAChB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAC,EACtE,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC;IAyBT,KAAK,IAAI,IAAI;CAKrB"}
@@ -1,19 +1,17 @@
1
- import { Subscription } from 'rxjs';
2
- import { ClientConfig, SendMessageOptions, SendMessagePayload, SetChannelOptions, SetChannelPayload, SSEResponse } from '../types';
3
- import { EventType, FetchSSEAction } from '../constants/enum';
1
+ import { EventType } from '../constants/enum';
2
+ import { ClientConfig, IAsgardServiceClient, FetchSsePayload, FetchSseOptions, SseResponse, SseEvents } from '../types';
4
3
 
5
- export default class AsgardServiceClient {
6
- baseUrl: string;
7
- namespace: string;
8
- botProviderName: string;
9
- endpoint: string;
10
- private webhookToken;
11
- private eventEmitter;
4
+ export default class AsgardServiceClient implements IAsgardServiceClient {
5
+ private apiKey?;
6
+ private endpoint;
7
+ private debugMode?;
12
8
  private destroy$;
9
+ private sseEmitter;
10
+ private transformSsePayload?;
13
11
  constructor(config: ClientConfig);
14
- on<Action extends FetchSSEAction, Event extends EventType>(action: Action, event: Event, listener: (data: SSEResponse<Event>) => void): void;
15
- setChannel(payload: SetChannelPayload, options?: SetChannelOptions): Subscription;
16
- sendMessage(payload: SendMessagePayload, options?: SendMessageOptions): Subscription;
12
+ on<K extends keyof SseEvents>(event: K, listener: SseEvents[K]): void;
13
+ handleEvent(response: SseResponse<EventType>): void;
14
+ fetchSse(payload: FetchSsePayload, options?: FetchSseOptions): void;
17
15
  close(): void;
18
16
  }
19
17
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAML,YAAY,EAEb,MAAM,MAAM,CAAC;AAEd,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,MAAM,EAAE,YAAY;IAyBhC,EAAE,CAAC,MAAM,SAAS,cAAc,EAAE,KAAK,SAAS,SAAS,EACvD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,GAC3C,IAAI;IAUP,UAAU,CACR,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,YAAY;IAsBf,WAAW,CACT,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,YAAY;IAuBf,KAAK,IAAI,IAAI;CAId"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,WAAW,EACX,SAAS,EACV,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,oBAAoB;IACtE,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,mBAAmB,CAAC,CAAgD;gBAEhE,MAAM,EAAE,YAAY;IA6BhC,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI;IAqDnD,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IA4BnE,KAAK,IAAI,IAAI;CAId"}
@@ -0,0 +1,18 @@
1
+ import { ConversationMessage, SseResponse } from '../types';
2
+ import { EventType } from '../constants/enum';
3
+
4
+ interface IConversation {
5
+ messages: Map<string, ConversationMessage> | null;
6
+ }
7
+ export default class Conversation implements IConversation {
8
+ messages: Map<string, ConversationMessage> | null;
9
+ constructor({ messages }: IConversation);
10
+ pushMessage(message: ConversationMessage): Conversation;
11
+ onMessage(response: SseResponse<EventType>): Conversation;
12
+ onMessageStart(response: SseResponse<EventType.MESSAGE_START>): Conversation;
13
+ onMessageDelta(response: SseResponse<EventType.MESSAGE_DELTA>): Conversation;
14
+ onMessageComplete(response: SseResponse<EventType.MESSAGE_COMPLETE>): Conversation;
15
+ onMessageError(response: SseResponse<EventType.ERROR>): Conversation;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/lib/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5D,UAAU,aAAa;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,aAAa;IACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAQ;gBAEpD,EAAE,QAAQ,EAAE,EAAE,aAAa;IAIvC,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAOvD,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,YAAY;IAqBzD,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY;IAiB5E,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,YAAY;IAwB5E,iBAAiB,CACf,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAChD,YAAY;IAkBf,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,YAAY;CAgBrE"}
@@ -1,12 +1,13 @@
1
- import { FetchSSEPayload } from '../types';
2
- import { EventSourceMessage } from '@microsoft/fetch-event-source';
1
+ import { EventType } from '../constants/enum';
2
+ import { FetchSsePayload, SseResponse } from '../types';
3
3
  import { Observable } from 'rxjs';
4
4
 
5
- interface CreateSSEObservableOptions {
5
+ interface CreateSseObservableOptions {
6
6
  endpoint: string;
7
- webhookToken: string;
8
- payload: FetchSSEPayload;
7
+ apiKey?: string;
8
+ debugMode?: boolean;
9
+ payload: FetchSsePayload;
9
10
  }
10
- export declare function createSSEObservable(options: CreateSSEObservableOptions): Observable<EventSourceMessage>;
11
+ export declare function createSseObservable(options: CreateSseObservableOptions): Observable<SseResponse<EventType>>;
11
12
  export {};
12
13
  //# sourceMappingURL=create-sse-observable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-sse-observable.d.ts","sourceRoot":"","sources":["../../src/lib/create-sse-observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,UAAU,0BAA0B;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,UAAU,CAAC,kBAAkB,CAAC,CAoChC"}
1
+ {"version":3,"file":"create-sse-observable.d.ts","sourceRoot":"","sources":["../../src/lib/create-sse-observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAKlC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,UAAU,0BAA0B;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CA2DpC"}
@@ -0,0 +1,8 @@
1
+ export declare class EventEmitter<Events extends Record<string, any>> {
2
+ private listeners;
3
+ on<K extends keyof Events>(event: K, listener: Events[K]): void;
4
+ off<K extends keyof Events>(event: K, listener: Events[K]): void;
5
+ remove<K extends keyof Events>(event: K): void;
6
+ emit<K extends keyof Events>(event: K, ...args: Parameters<Events[K]>): void;
7
+ }
8
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/lib/event-emitter.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC1D,OAAO,CAAC,SAAS,CAAyB;IAE1C,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAM/D,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAQhE,MAAM,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI9C,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAK7E"}
@@ -0,0 +1,42 @@
1
+ import { ErrorMessage, Message } from './sse-response';
2
+ import { IAsgardServiceClient } from './client';
3
+ import { default as Conversation } from '../lib/conversation';
4
+ import { EventType } from '../constants/enum';
5
+ import { Observer } from 'rxjs';
6
+
7
+ export type ObserverOrNext<T> = Partial<Observer<T>> | ((value: T) => void);
8
+ export interface ChannelStates {
9
+ isConnecting: boolean;
10
+ conversation: Conversation;
11
+ }
12
+ export interface ChannelConfig {
13
+ client: IAsgardServiceClient;
14
+ customChannelId: string;
15
+ customMessageId?: string;
16
+ conversation: Conversation;
17
+ statesObserver?: ObserverOrNext<ChannelStates>;
18
+ }
19
+ export type ConversationUserMessage = {
20
+ type: 'user';
21
+ messageId: string;
22
+ text: string;
23
+ time: Date;
24
+ };
25
+ export type ConversationBotMessage = {
26
+ type: 'bot';
27
+ messageId: string;
28
+ eventType: EventType;
29
+ isTyping: boolean;
30
+ typingText: string | null;
31
+ message: Message;
32
+ time: Date;
33
+ };
34
+ export type ConversationErrorMessage = {
35
+ type: 'error';
36
+ messageId: string;
37
+ eventType: EventType;
38
+ error: ErrorMessage;
39
+ time: Date;
40
+ };
41
+ export type ConversationMessage = ConversationUserMessage | ConversationBotMessage | ConversationErrorMessage;
42
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/types/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,wBAAwB,CAAC"}
@@ -1,25 +1,71 @@
1
- import { FetchSSEAction } from '../constants/enum';
1
+ import { EventHandler } from './event-emitter';
2
+ import { SseResponse } from './sse-response';
3
+ import { EventType, FetchSseAction } from '../constants/enum';
2
4
 
3
- export interface ClientConfig {
4
- baseUrl: string;
5
- namespace: string;
6
- botProviderName: string;
7
- webhookToken: string;
5
+ export interface IAsgardServiceClient {
6
+ fetchSse(payload: FetchSsePayload, options?: FetchSseOptions): void;
8
7
  }
9
- export interface FetchSSEPayload {
8
+ export type InitEventHandler = EventHandler<SseResponse<EventType.INIT>>;
9
+ export type MessageEventHandler = EventHandler<SseResponse<EventType.MESSAGE_START | EventType.MESSAGE_DELTA | EventType.MESSAGE_COMPLETE>>;
10
+ export type ProcessEventHandler = EventHandler<SseResponse<EventType.PROCESS_START | EventType.PROCESS_COMPLETE>>;
11
+ export type DoneEventHandler = EventHandler<SseResponse<EventType.DONE>>;
12
+ export type ErrorEventHandler = EventHandler<SseResponse<EventType.ERROR>>;
13
+ export type ToolCallEventHandler = EventHandler<SseResponse<EventType.TOOL_CALL_START | EventType.TOOL_CALL_COMPLETE>>;
14
+ export interface SseHandlers {
15
+ onRunInit?: InitEventHandler;
16
+ onMessage?: MessageEventHandler;
17
+ onToolCall?: ToolCallEventHandler;
18
+ onProcess?: ProcessEventHandler;
19
+ onRunDone?: DoneEventHandler;
20
+ onRunError?: ErrorEventHandler;
21
+ }
22
+ export type ClientConfig = SseHandlers & {
23
+ apiKey?: string;
24
+ debugMode?: boolean;
25
+ transformSsePayload?: (payload: FetchSsePayload) => FetchSsePayload;
26
+ } & ({
27
+ /**
28
+ * @deprecated Use `botProviderEndpoint` instead. This will be removed in the next major version.
29
+ * If provided, it will be used. Otherwise, it will be automatically derived as `${botProviderEndpoint}/message/sse`
30
+ */
31
+ endpoint: string;
32
+ /**
33
+ * Base URL for the bot provider service.
34
+ * The SSE endpoint will be automatically derived as `${botProviderEndpoint}/message/sse`
35
+ */
36
+ botProviderEndpoint?: string;
37
+ } | {
38
+ /**
39
+ * Base URL for the bot provider service.
40
+ * The SSE endpoint will be automatically derived as `${botProviderEndpoint}/message/sse`
41
+ */
42
+ botProviderEndpoint: string;
43
+ /**
44
+ * @deprecated Use `botProviderEndpoint` instead. This will be removed in the next major version.
45
+ * If provided, it will be used. Otherwise, it will be automatically derived as `${botProviderEndpoint}/message/sse`
46
+ */
47
+ endpoint?: string;
48
+ });
49
+ export interface FetchSsePayload {
10
50
  customChannelId: string;
11
51
  customMessageId?: string;
12
52
  text: string;
13
- action: FetchSSEAction;
14
- }
15
- export interface ConnectionOptions {
16
- onStart?: () => void;
17
- onCompleted?: () => void;
53
+ payload?: Record<string, unknown>;
54
+ action: FetchSseAction;
18
55
  }
19
- export type SetChannelPayload = Omit<FetchSSEPayload, 'action'>;
20
- export type SetChannelOptions = ConnectionOptions;
21
- export type SendMessagePayload = Omit<FetchSSEPayload, 'action'>;
22
- export type SendMessageOptions = ConnectionOptions & {
56
+ export interface FetchSseOptions {
23
57
  delayTime?: number;
58
+ onSseStart?: () => void;
59
+ onSseMessage?: (response: SseResponse<EventType>) => void;
60
+ onSseError?: (error: unknown) => void;
61
+ onSseCompleted?: () => void;
62
+ }
63
+ export type SseEvents = {
64
+ [EventType.INIT]: InitEventHandler;
65
+ [EventType.PROCESS]: ProcessEventHandler;
66
+ [EventType.MESSAGE]: MessageEventHandler;
67
+ [EventType.TOOL_CALL]: ToolCallEventHandler;
68
+ [EventType.DONE]: DoneEventHandler;
69
+ [EventType.ERROR]: ErrorEventHandler;
24
70
  };
25
71
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type EventHandler<Args, Return = void> = Args extends any[] ? (...args: Args) => Return : (arg: Args) => Return;
2
+ export type Listeners<Events extends Record<string, any>> = {
3
+ [K in keyof Events]?: Array<Events[K]>;
4
+ };
5
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/types/event-emitter.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,SAAS,GAAG,EAAE,GAC9D,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACzB,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;AAE1B,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;KACzD,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACvC,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export type * from './client';
2
+ export type * from './channel';
2
3
  export type * from './sse-response';
4
+ export type * from './event-emitter';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,UAAU,CAAC;AAC9B,mBAAmB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,UAAU,CAAC;AAC9B,mBAAmB,WAAW,CAAC;AAC/B,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,iBAAiB,CAAC"}
@@ -36,12 +36,32 @@ export interface LocationMessageTemplate extends MessageTemplate {
36
36
  latitude: number;
37
37
  longitude: number;
38
38
  }
39
+ export interface ChartMessageTemplate extends MessageTemplate {
40
+ type: MessageTemplateType.CHART;
41
+ title: string;
42
+ text: string;
43
+ chartOptions: {
44
+ type: string;
45
+ title: string;
46
+ spec: Record<string, unknown>;
47
+ }[];
48
+ defaultChart: string;
49
+ quickReplies: {
50
+ text: string;
51
+ }[];
52
+ }
39
53
  export type ButtonAction = {
40
- type: 'message';
54
+ type: 'message' | 'MESSAGE';
41
55
  text: string;
56
+ uri?: null;
42
57
  } | {
43
- type: 'uri';
58
+ type: 'uri' | 'URI';
59
+ text?: null;
44
60
  uri: string;
61
+ target?: '_blank' | '_self' | '_parent' | '_top';
62
+ } | {
63
+ type: 'emit' | 'EMIT';
64
+ payload: Record<string, unknown>;
45
65
  };
46
66
  export interface ButtonMessageTemplate extends MessageTemplate {
47
67
  type: MessageTemplateType.BUTTON;
@@ -59,7 +79,7 @@ export interface ButtonMessageTemplate extends MessageTemplate {
59
79
  }
60
80
  export interface CarouselMessageTemplate extends MessageTemplate {
61
81
  type: MessageTemplateType.CAROUSEL;
62
- columns: Omit<ButtonMessageTemplate, 'type'>[];
82
+ columns: Omit<ButtonMessageTemplate, 'type' | 'quickReplies'>[];
63
83
  }
64
84
  export interface Message<Payload = unknown> {
65
85
  messageId: string;
@@ -68,20 +88,49 @@ export interface Message<Payload = unknown> {
68
88
  payload: Payload | null;
69
89
  isDebug: boolean;
70
90
  idx: number;
71
- template: TextMessageTemplate | HintMessageTemplate | ButtonMessageTemplate | ImageMessageTemplate | VideoMessageTemplate | AudioMessageTemplate | LocationMessageTemplate | CarouselMessageTemplate;
91
+ template: TextMessageTemplate | HintMessageTemplate | ButtonMessageTemplate | ImageMessageTemplate | VideoMessageTemplate | AudioMessageTemplate | LocationMessageTemplate | CarouselMessageTemplate | ChartMessageTemplate;
72
92
  }
73
- export type EventData<CurrentEventType extends EventType, TargetEventType extends EventType> = CurrentEventType extends TargetEventType ? {
93
+ export type IsEqual<A, B, DataType> = A extends B ? B extends A ? DataType : null : null;
94
+ export interface MessageEventData {
74
95
  message: Message;
75
- } : null;
96
+ }
97
+ export interface ErrorMessage {
98
+ message: string;
99
+ code: string;
100
+ inner: string;
101
+ location: {
102
+ namespace: string;
103
+ workflowName: string;
104
+ processorName: string;
105
+ processorType: string;
106
+ };
107
+ }
108
+ export interface ErrorEventData {
109
+ error: ErrorMessage;
110
+ }
111
+ export interface ToolCallBaseEventData {
112
+ processId: string;
113
+ callSeq: number;
114
+ toolCall: {
115
+ toolsetName: string;
116
+ toolName: string;
117
+ parameter: Record<string, unknown>;
118
+ };
119
+ }
120
+ export interface ToolCallCompleteEventData extends ToolCallBaseEventData {
121
+ toolCallResult: Record<string, unknown>;
122
+ }
76
123
  export interface Fact<Type extends EventType> {
77
124
  runInit: null;
78
125
  runDone: null;
79
- runError: null;
80
- messageStart: EventData<Type, EventType.MESSAGE_START>;
81
- messageDelta: EventData<Type, EventType.MESSAGE_DELTA>;
82
- messageComplete: EventData<Type, EventType.MESSAGE_COMPLETE>;
126
+ runError: IsEqual<Type, EventType.ERROR, ErrorEventData>;
127
+ messageStart: IsEqual<Type, EventType.MESSAGE_START, MessageEventData>;
128
+ messageDelta: IsEqual<Type, EventType.MESSAGE_DELTA, MessageEventData>;
129
+ messageComplete: IsEqual<Type, EventType.MESSAGE_COMPLETE, MessageEventData>;
130
+ toolCallStart: IsEqual<Type, EventType.TOOL_CALL_START, ToolCallBaseEventData>;
131
+ toolCallComplete: IsEqual<Type, EventType.TOOL_CALL_COMPLETE, ToolCallCompleteEventData>;
83
132
  }
84
- export interface SSEResponse<Type extends EventType> {
133
+ export interface SseResponse<Type extends EventType> {
85
134
  eventType: Type;
86
135
  requestId: string;
87
136
  namespace: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sse-response.d.ts","sourceRoot":"","sources":["../../src/types/sse-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse-response.d.ts","sourceRoot":"","sources":["../../src/types/sse-response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ const baseConfig = require('../../eslint.config.cjs');
2
+
3
+ module.exports = [
4
+ ...baseConfig,
5
+ {
6
+ files: ['**/*.json'],
7
+ rules: {
8
+ '@nx/dependency-checks': [
9
+ 'error',
10
+ {
11
+ ignoredFiles: [
12
+ '{projectRoot}/eslint.config.{js,cjs,mjs}',
13
+ '{projectRoot}/vite.config.{js,ts,mjs,mts}',
14
+ ],
15
+ },
16
+ ],
17
+ },
18
+ languageOptions: {
19
+ parser: require('jsonc-eslint-parser'),
20
+ },
21
+ },
22
+ ];
package/package.json CHANGED
@@ -1,10 +1,22 @@
1
1
  {
2
2
  "name": "@asgard-js/core",
3
- "version": "0.0.1",
3
+ "version": "0.0.38.canary-1",
4
4
  "dependencies": {
5
5
  "@microsoft/fetch-event-source": "^2.0.1",
6
6
  "rxjs": "^7.8.1"
7
7
  },
8
+ "devDependencies": {
9
+ "@types/jsdom": "^21.1.6",
10
+ "@vitest/ui": "^1.6.0",
11
+ "jsdom": "^24.0.0",
12
+ "vitest": "^1.6.0"
13
+ },
14
+ "scripts": {
15
+ "test": "vitest run",
16
+ "test:watch": "vitest",
17
+ "test:ui": "vitest --ui",
18
+ "test:coverage": "vitest run --coverage"
19
+ },
8
20
  "type": "module",
9
21
  "main": "./dist/index.cjs",
10
22
  "typings": "./dist/index.d.ts",
@@ -0,0 +1,32 @@
1
+ export enum FetchSseAction {
2
+ RESET_CHANNEL = 'RESET_CHANNEL',
3
+ NONE = 'NONE',
4
+ }
5
+
6
+ export enum EventType {
7
+ INIT = 'asgard.run.init',
8
+ PROCESS = 'asgard.process',
9
+ PROCESS_START = 'asgard.process.start',
10
+ PROCESS_COMPLETE = 'asgard.process.complete',
11
+ MESSAGE = 'asgard.message',
12
+ MESSAGE_START = 'asgard.message.start',
13
+ MESSAGE_DELTA = 'asgard.message.delta',
14
+ MESSAGE_COMPLETE = 'asgard.message.complete',
15
+ TOOL_CALL = 'asgard.tool_call',
16
+ TOOL_CALL_START = 'asgard.tool_call.start',
17
+ TOOL_CALL_COMPLETE = 'asgard.tool_call.complete',
18
+ DONE = 'asgard.run.done',
19
+ ERROR = 'asgard.run.error',
20
+ }
21
+
22
+ export enum MessageTemplateType {
23
+ TEXT = 'TEXT',
24
+ HINT = 'HINT',
25
+ BUTTON = 'BUTTON',
26
+ IMAGE = 'IMAGE',
27
+ VIDEO = 'VIDEO',
28
+ AUDIO = 'AUDIO',
29
+ LOCATION = 'LOCATION',
30
+ CAROUSEL = 'CAROUSEL',
31
+ CHART = 'CHART',
32
+ }
package/src/index.ts ADDED
@@ -0,0 +1,11 @@
1
+ export type { Subscription } from 'rxjs';
2
+
3
+ export type * from './types';
4
+
5
+ export * from './constants/enum';
6
+
7
+ export { default as AsgardServiceClient } from './lib/client';
8
+
9
+ export { default as Channel } from './lib/channel';
10
+
11
+ export { default as Conversation } from './lib/conversation';