@m6d/cortex-client 1.5.0 → 1.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m6d/cortex-client",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Reusable AI agent chat UI library for Angular",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -15,39 +15,76 @@ type CortexClientConfig = {
15
15
  wsUrl?: string;
16
16
  toolComponents?: Record<string, Type<unknown>>;
17
17
  injector?: Injector;
18
+ showDebugButton?: boolean;
18
19
  onToolCall?: (toolCall: Parameters<ChatOnToolCallCallback>[0]['toolCall']) => Promise<unknown> | unknown;
19
20
  };
20
21
 
21
- type Thread = {
22
+ type MessageMetadata = {
23
+ modelId: string;
24
+ providerMetadata: unknown;
25
+ isAborted?: boolean;
26
+ tokenUsage?: {
27
+ input: {
28
+ noCache: number;
29
+ cacheRead: number;
30
+ cacheWrite: number;
31
+ total: number;
32
+ };
33
+ output: {
34
+ reasoning: number;
35
+ text: number;
36
+ total: number;
37
+ };
38
+ total: number;
39
+ };
40
+ };
41
+
42
+ type ThreadSummary = {
22
43
  id: string;
23
44
  title?: string;
24
- createdAt?: string;
25
- updatedAt?: string;
45
+ createdAt: string;
46
+ updatedAt: string;
47
+ isRunning: boolean;
26
48
  };
49
+
50
+ type Thread = ThreadSummary;
27
51
  declare class CortexChatService {
28
- readonly threads: _angular_core.WritableSignal<Thread[] | undefined>;
29
- readonly selectedThread: _angular_core.WritableSignal<Thread | undefined>;
30
- readonly chat: _angular_core.WritableSignal<Chat<UIMessage<unknown, ai.UIDataTypes, ai.UITools>> | undefined>;
52
+ readonly threads: _angular_core.WritableSignal<ThreadSummary[] | undefined>;
53
+ readonly selectedThread: _angular_core.WritableSignal<ThreadSummary | undefined>;
54
+ readonly chat: _angular_core.WritableSignal<Chat<UIMessage<MessageMetadata, ai.UIDataTypes, ai.UITools>> | undefined>;
31
55
  readonly isLoadingMessages: _angular_core.WritableSignal<boolean>;
32
- readonly isAgentWorking: _angular_core.WritableSignal<boolean>;
56
+ readonly isAgentWorking: Signal<boolean>;
33
57
  readonly hasPendingToolCalls: _angular_core.WritableSignal<boolean>;
34
- private events;
58
+ private readonly events;
35
59
  private activeThreadSelectionId;
60
+ private completeLatchThreadId;
61
+ private hasSeenWsOpen;
36
62
  private readonly config;
37
63
  private readonly wsService;
38
64
  private readonly destroyRef;
65
+ private completeLatch;
39
66
  constructor();
40
67
  get events$(): rxjs.Observable<"onThreadSelected" | "onSend" | "onData" | "onError" | "onFinish">;
41
68
  selectThread(thread: Thread, options?: {
42
69
  skipLoadingMessages?: boolean;
43
- }): rxjs.Observable<UIMessage<unknown, ai.UIDataTypes, ai.UITools>[]>;
70
+ }): rxjs.Observable<UIMessage<MessageMetadata, ai.UIDataTypes, ai.UITools>[]>;
44
71
  deselectThread(): void;
45
72
  send(prompt: string): rxjs.Observable<void>;
46
73
  abort(): void;
47
- deleteThread(threadId: string): rxjs.Observable<Thread[]>;
74
+ deleteThread(threadId: string): rxjs.Observable<unknown>;
48
75
  private subscribeToWsEvents;
76
+ private subscribeToWsConnections;
49
77
  private onThreadMessagesUpdated;
78
+ private onThreadRunStarted;
50
79
  private onThreadTitleUpdated;
80
+ private onThreadRunFinished;
81
+ private onThreadDeleted;
82
+ private upsertThread;
83
+ private removeThread;
84
+ private updateThreadRunning;
85
+ private sortThreads;
86
+ private resumeChat;
87
+ private reloadMessagesForSelectedThread;
51
88
  private reloadThreads;
52
89
  private reloadMessages;
53
90
  private syncConversationState;