@memberjunction/ng-conversations 2.115.0 → 2.117.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.
Files changed (37) hide show
  1. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +12 -0
  2. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  3. package/dist/lib/components/conversation/conversation-chat-area.component.js +141 -7
  4. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  5. package/dist/lib/components/conversation/conversation-list.component.d.ts +9 -3
  6. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  7. package/dist/lib/components/conversation/conversation-list.component.js +398 -197
  8. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  9. package/dist/lib/components/message/message-input-box.component.d.ts +4 -0
  10. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  11. package/dist/lib/components/message/message-input-box.component.js +9 -0
  12. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  13. package/dist/lib/components/message/message-input.component.d.ts +18 -15
  14. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  15. package/dist/lib/components/message/message-input.component.js +108 -93
  16. package/dist/lib/components/message/message-input.component.js.map +1 -1
  17. package/dist/lib/components/message/message-item.component.d.ts +1 -0
  18. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  19. package/dist/lib/components/message/message-item.component.js +8 -4
  20. package/dist/lib/components/message/message-item.component.js.map +1 -1
  21. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +3 -1
  22. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  23. package/dist/lib/components/workspace/conversation-workspace.component.js +24 -17
  24. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  25. package/dist/lib/services/conversation-state.service.d.ts +14 -0
  26. package/dist/lib/services/conversation-state.service.d.ts.map +1 -1
  27. package/dist/lib/services/conversation-state.service.js +32 -0
  28. package/dist/lib/services/conversation-state.service.js.map +1 -1
  29. package/dist/lib/services/conversation-streaming.service.d.ts +101 -0
  30. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -0
  31. package/dist/lib/services/conversation-streaming.service.js +319 -0
  32. package/dist/lib/services/conversation-streaming.service.js.map +1 -0
  33. package/dist/public-api.d.ts +1 -0
  34. package/dist/public-api.d.ts.map +1 -1
  35. package/dist/public-api.js +1 -0
  36. package/dist/public-api.js.map +1 -1
  37. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,10 @@ export declare class MessageInputBoxComponent {
51
51
  * Only moves cursor to end if clicking outside the contentEditable area
52
52
  */
53
53
  onContainerClick(event: MouseEvent): void;
54
+ /**
55
+ * Public method to focus the input programmatically
56
+ */
57
+ focus(): void;
54
58
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputBoxComponent, never>;
55
59
  static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputBoxComponent, "mj-message-input-box", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; }, { "textSubmitted": "textSubmitted"; "valueChange": "valueChange"; }, never, never, false, never>;
56
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-input-box.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input-box.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAa,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;;AAE7E;;;;;;;;;;;;;;GAcG;AACH,qBAKa,wBAAwB;IACP,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAE1D,WAAW,EAAE,MAAM,CAAsD;IACzE,QAAQ,EAAE,OAAO,CAAS;IAC1B,KAAK,EAAE,MAAM,CAAM;IACnB,kBAAkB,EAAE,OAAO,CAAS;IACpC,cAAc,EAAE,OAAO,CAAQ;IAC/B,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,IAAI,EAAE,MAAM,CAAK;IAEhB,aAAa,uBAA8B;IAC3C,WAAW,uBAA8B;IAEnD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAMtD;;OAEG;IACH,WAAW,IAAI,IAAI;IASnB;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;yCA1D9B,wBAAwB;2CAAxB,wBAAwB;CAsFpC"}
1
+ {"version":3,"file":"message-input-box.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input-box.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAa,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;;AAE7E;;;;;;;;;;;;;;GAcG;AACH,qBAKa,wBAAwB;IACP,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAE1D,WAAW,EAAE,MAAM,CAAsD;IACzE,QAAQ,EAAE,OAAO,CAAS;IAC1B,KAAK,EAAE,MAAM,CAAM;IACnB,kBAAkB,EAAE,OAAO,CAAS;IACpC,cAAc,EAAE,OAAO,CAAQ;IAC/B,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,IAAI,EAAE,MAAM,CAAK;IAEhB,aAAa,uBAA8B;IAC3C,WAAW,uBAA8B;IAEnD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAMtD;;OAEG;IACH,WAAW,IAAI,IAAI;IASnB;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA6BzC;;OAEG;IACH,KAAK,IAAI,IAAI;yCA1FF,wBAAwB;2CAAxB,wBAAwB;CAgGpC"}
@@ -92,6 +92,15 @@ export class MessageInputBoxComponent {
92
92
  selection.addRange(range);
93
93
  }
94
94
  }
95
+ /**
96
+ * Public method to focus the input programmatically
97
+ */
98
+ focus() {
99
+ const editor = this.mentionEditor?.editorRef?.nativeElement;
100
+ if (editor) {
101
+ editor.focus();
102
+ }
103
+ }
95
104
  static ɵfac = function MessageInputBoxComponent_Factory(t) { return new (t || MessageInputBoxComponent)(); };
96
105
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MessageInputBoxComponent, selectors: [["mj-message-input-box"]], viewQuery: function MessageInputBoxComponent_Query(rf, ctx) { if (rf & 1) {
97
106
  i0.ɵɵviewQuery(_c0, 5);
@@ -1 +1 @@
1
- {"version":3,"file":"message-input-box.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input-box.component.ts","../../../../src/lib/components/message/message-input-box.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-input-box.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input-box.component.ts","../../../../src/lib/components/message/message-input-box.component.html"],"names":[],"mappings":"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"}
@@ -7,10 +7,12 @@ import { ConversationAgentService } from '../../services/conversation-agent.serv
7
7
  import { ConversationStateService } from '../../services/conversation-state.service';
8
8
  import { DataCacheService } from '../../services/data-cache.service';
9
9
  import { ActiveTasksService } from '../../services/active-tasks.service';
10
+ import { ConversationStreamingService } from '../../services/conversation-streaming.service';
10
11
  import { BaseAgentSuggestedResponse } from '@memberjunction/ai-core-plus';
11
12
  import { MentionAutocompleteService } from '../../services/mention-autocomplete.service';
12
13
  import { MentionParserService } from '../../services/mention-parser.service';
13
14
  import { LazyArtifactInfo } from '../../models/lazy-artifact-info';
15
+ import { MessageInputBoxComponent } from './message-input-box.component';
14
16
  import * as i0 from "@angular/core";
15
17
  export declare class MessageInputComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
16
18
  private dialogService;
@@ -19,6 +21,7 @@ export declare class MessageInputComponent implements OnInit, OnDestroy, OnChang
19
21
  private conversationState;
20
22
  private dataCache;
21
23
  private activeTasks;
24
+ private streamingService;
22
25
  private mentionParser;
23
26
  private mentionAutocomplete;
24
27
  private readonly JSON_ARTIFACT_TYPE_ID;
@@ -33,7 +36,9 @@ export declare class MessageInputComponent implements OnInit, OnDestroy, OnChang
33
36
  artifactsByDetailId?: Map<string, LazyArtifactInfo[]>;
34
37
  systemArtifactsByDetailId?: Map<string, LazyArtifactInfo[]>;
35
38
  agentRunsByDetailId?: Map<string, AIAgentRunEntityExtended>;
36
- inProgressMessageIds?: string[];
39
+ private _inProgressMessageIds?;
40
+ set inProgressMessageIds(value: string[] | undefined);
41
+ get inProgressMessageIds(): string[] | undefined;
37
42
  messageSent: EventEmitter<ConversationDetailEntity>;
38
43
  agentResponse: EventEmitter<{
39
44
  message: ConversationDetailEntity;
@@ -66,16 +71,15 @@ export declare class MessageInputComponent implements OnInit, OnDestroy, OnChang
66
71
  }>;
67
72
  intentCheckStarted: EventEmitter<void>;
68
73
  intentCheckCompleted: EventEmitter<void>;
69
- inputBox: any;
74
+ inputBox: MessageInputBoxComponent;
70
75
  messageText: string;
71
76
  isSending: boolean;
72
77
  isProcessing: boolean;
73
78
  processingMessage: string;
74
79
  converationManagerAgent: AIAgentEntityExtended | null;
75
- private pushStatusSubscription?;
76
- private activeTaskExecutionMessageIds;
77
80
  private completionTimestamps;
78
- constructor(dialogService: DialogService, toastService: ToastService, agentService: ConversationAgentService, conversationState: ConversationStateService, dataCache: DataCacheService, activeTasks: ActiveTasksService, mentionParser: MentionParserService, mentionAutocomplete: MentionAutocompleteService);
81
+ private registeredCallbacks;
82
+ constructor(dialogService: DialogService, toastService: ToastService, agentService: ConversationAgentService, conversationState: ConversationStateService, dataCache: DataCacheService, activeTasks: ActiveTasksService, streamingService: ConversationStreamingService, mentionParser: MentionParserService, mentionAutocomplete: MentionAutocompleteService);
79
83
  ngOnInit(): Promise<void>;
80
84
  ngOnChanges(changes: SimpleChanges): void;
81
85
  ngAfterViewInit(): void;
@@ -85,25 +89,24 @@ export declare class MessageInputComponent implements OnInit, OnDestroy, OnChang
85
89
  */
86
90
  private focusInput;
87
91
  /**
88
- * Reconnect to in-progress messages for streaming updates
92
+ * Reconnect to in-progress messages for streaming updates via global streaming service.
89
93
  * This is called when:
90
94
  * 1. Component initializes (ngOnInit)
91
95
  * 2. Conversation changes (ngOnChanges)
92
96
  * 3. User returns to a conversation with in-progress messages
97
+ * 4. Parent component explicitly triggers reconnection
93
98
  */
94
- private reconnectInProgressMessages;
99
+ reconnectInProgressMessages(): void;
95
100
  /**
96
- * Subscribe to PubSub for real-time task orchestration progress updates
101
+ * Create a progress callback for a specific message ID.
102
+ * This callback will be invoked by the streaming service when progress updates arrive.
97
103
  */
98
- private subscribeToPushStatus;
104
+ private createMessageProgressCallback;
99
105
  /**
100
- * Handle task progress updates from PubSub
106
+ * Unregister all callbacks registered by this component.
107
+ * Called during cleanup and when switching conversations.
101
108
  */
102
- private handleTaskProgress;
103
- /**
104
- * Update task execution messages in real-time based on progress updates
105
- */
106
- private updateTaskExecutionMessages;
109
+ private unregisterAllCallbacks;
107
110
  get canSend(): boolean;
108
111
  /**
109
112
  * Handle text submitted from the input box
@@ -1 +1 @@
1
- {"version":3,"file":"message-input.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAyB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1J,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAkC,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC1J,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,OAAO,EAAsD,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,0BAA0B,EAAqB,MAAM,6CAA6C,CAAC;AAC5G,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;;AAInE,qBAKa,qBAAsB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa;IA2CrF,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAhD7B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAEvE,cAAc,EAAG,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAG,QAAQ,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAS;IAC1B,WAAW,EAAE,MAAM,CAA4C;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,wBAAwB,EAAE,CAAM;IACrD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACtD,yBAAyB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC5D,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC5D,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,WAAW,yCAAgD;IAC3D,aAAa;iBAA8B,wBAAwB;qBAAe,GAAG;OAAK;IAC1F,gBAAgB;8BAA2C,MAAM;oBAAc,MAAM;OAAK;IAC1F,cAAc;8BAA2C,MAAM;mBAAa,GAAG;;OAA0B;IACzG,eAAe;8BAA2C,MAAM;;OAA0B;IAC1F,eAAe;oBAAiC,MAAM;mBAAa,MAAM;uBAAiB,MAAM;8BAAwB,MAAM;cAAQ,MAAM;OAAK;IACjJ,mBAAmB;wBAAqC,MAAM;cAAQ,MAAM;qBAAe,MAAM;OAAK;IACtG,kBAAkB,qBAA4B;IAC9C,oBAAoB,qBAA4B;IAEnC,QAAQ,EAAG,GAAG,CAAC;IAE/B,WAAW,EAAE,MAAM,CAAM;IACzB,SAAS,EAAE,OAAO,CAAS;IAC3B,YAAY,EAAE,OAAO,CAAS;IAC9B,iBAAiB,EAAE,MAAM,CAAyB;IAClD,uBAAuB,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAGpE,OAAO,CAAC,sBAAsB,CAAC,CAAe;IAE9C,OAAO,CAAC,6BAA6B,CAAqB;IAE1D,OAAO,CAAC,oBAAoB,CAA6B;gBAG/C,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,wBAAwB,EACtC,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,kBAAkB,EAC/B,aAAa,EAAE,oBAAoB,EACnC,mBAAmB,EAAE,0BAA0B;IAGnD,QAAQ;IAad,WAAW,CAAC,OAAO,EAAE,aAAa;IAYlC,eAAe;IAaf,WAAW;IAOX;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAenC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;YACW,kBAAkB;IAkBhC;;OAEG;YACW,2BAA2B;IAgDzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B5C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB7B;;;OAGG;IACU,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC7D;;OAEG;YACW,mBAAmB;IAejC;;OAEG;YACW,2BAA2B;IAezC;;OAEG;YACW,oBAAoB;IAWlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;OAGG;YACW,YAAY;IAsB1B;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,qBAAqB;IAqCnC;;OAEG;YACW,oBAAoB;IAalC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;OAGG;YACW,qBAAqB;IA8BnC;;OAEG;YACW,sBAAsB;IAepC;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;;;OAMG;YACW,0BAA0B;IAcxC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAkF9B;;;OAGG;YACW,0BAA0B;IAiMxC;;;OAGG;YACW,wBAAwB;cAmLtB,wBAAwB,CAAC,WAAW,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,OAAO,EAAE,kBAAkB,CAAC,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwChN;;;OAGG;YACW,2BAA2B;IA8CzC;;;OAGG;YACW,yBAAyB;IA+FvC;;;OAGG;YACW,wBAAwB;IAwJtC;;;OAGG;YACW,uBAAuB;IA0JrC;;;OAGG;YACW,mBAAmB;IA8HjC;;;;;OAKG;YACW,iBAAiB;IAwM/B;;OAEG;YACW,gBAAgB;IAgE9B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,0BAA0B;yCA79DvB,qBAAqB;2CAArB,qBAAqB;CAm+DjC"}
1
+ {"version":3,"file":"message-input.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input.component.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,11 @@ import * as i3 from "../../services/conversation-agent.service";
10
10
  import * as i4 from "../../services/conversation-state.service";
11
11
  import * as i5 from "../../services/data-cache.service";
12
12
  import * as i6 from "../../services/active-tasks.service";
13
- import * as i7 from "../../services/mention-parser.service";
14
- import * as i8 from "../../services/mention-autocomplete.service";
15
- import * as i9 from "@angular/common";
16
- import * as i10 from "./message-input-box.component";
13
+ import * as i7 from "../../services/conversation-streaming.service";
14
+ import * as i8 from "../../services/mention-parser.service";
15
+ import * as i9 from "../../services/mention-autocomplete.service";
16
+ import * as i10 from "@angular/common";
17
+ import * as i11 from "./message-input-box.component";
17
18
  const _c0 = ["inputBox"];
18
19
  function MessageInputComponent_div_1_Template(rf, ctx) { if (rf & 1) {
19
20
  i0.ɵɵelementStart(0, "div", 4);
@@ -33,6 +34,7 @@ export class MessageInputComponent {
33
34
  conversationState;
34
35
  dataCache;
35
36
  activeTasks;
37
+ streamingService;
36
38
  mentionParser;
37
39
  mentionAutocomplete;
38
40
  // Default artifact type ID for JSON (when agent doesn't specify DefaultArtifactTypeID)
@@ -48,7 +50,20 @@ export class MessageInputComponent {
48
50
  artifactsByDetailId; // Pre-loaded artifact data for performance
49
51
  systemArtifactsByDetailId; // Pre-loaded system artifact data (Visibility='System Only')
50
52
  agentRunsByDetailId; // Pre-loaded agent run data for performance
51
- inProgressMessageIds; // Message IDs that are in-progress and need streaming reconnection
53
+ // Message IDs that are in-progress and need streaming reconnection
54
+ // Using getter/setter to react immediately when value changes (avoids timing issues with ngOnChanges)
55
+ _inProgressMessageIds;
56
+ set inProgressMessageIds(value) {
57
+ this._inProgressMessageIds = value;
58
+ // React immediately when input changes (after component initialized)
59
+ // This ensures callbacks are registered without relying on ngOnChanges timing
60
+ if (this.streamingService && value && value.length > 0) {
61
+ this.reconnectInProgressMessages();
62
+ }
63
+ }
64
+ get inProgressMessageIds() {
65
+ return this._inProgressMessageIds;
66
+ }
52
67
  messageSent = new EventEmitter();
53
68
  agentResponse = new EventEmitter();
54
69
  agentRunDetected = new EventEmitter();
@@ -58,25 +73,24 @@ export class MessageInputComponent {
58
73
  conversationRenamed = new EventEmitter();
59
74
  intentCheckStarted = new EventEmitter(); // Emits when intent checking starts
60
75
  intentCheckCompleted = new EventEmitter(); // Emits when intent checking completes
61
- inputBox; // MessageInputBoxComponent
76
+ inputBox;
62
77
  messageText = '';
63
78
  isSending = false;
64
79
  isProcessing = false; // True when waiting for agent/naming response
65
80
  processingMessage = 'AI is responding...'; // Message shown during processing
66
81
  converationManagerAgent = null;
67
- // PubSub subscription for task progress updates
68
- pushStatusSubscription;
69
- // Track active task execution message IDs for real-time updates
70
- activeTaskExecutionMessageIds = new Set();
71
82
  // Track completion timestamps to prevent race conditions with late progress updates
72
83
  completionTimestamps = new Map();
73
- constructor(dialogService, toastService, agentService, conversationState, dataCache, activeTasks, mentionParser, mentionAutocomplete) {
84
+ // Track registered streaming callbacks for cleanup
85
+ registeredCallbacks = new Map();
86
+ constructor(dialogService, toastService, agentService, conversationState, dataCache, activeTasks, streamingService, mentionParser, mentionAutocomplete) {
74
87
  this.dialogService = dialogService;
75
88
  this.toastService = toastService;
76
89
  this.agentService = agentService;
77
90
  this.conversationState = conversationState;
78
91
  this.dataCache = dataCache;
79
92
  this.activeTasks = activeTasks;
93
+ this.streamingService = streamingService;
80
94
  this.mentionParser = mentionParser;
81
95
  this.mentionAutocomplete = mentionAutocomplete;
82
96
  }
@@ -84,9 +98,7 @@ export class MessageInputComponent {
84
98
  this.converationManagerAgent = await this.agentService.getConversationManagerAgent();
85
99
  // Initialize mention autocomplete (needed for parsing mentions in messages)
86
100
  await this.mentionAutocomplete.initialize(this.currentUser);
87
- // Subscribe to PubSub for task progress updates
88
- this.subscribeToPushStatus();
89
- // Reconnect to any in-progress messages for streaming updates
101
+ // Reconnect to any in-progress messages for streaming updates (via global streaming service)
90
102
  this.reconnectInProgressMessages();
91
103
  }
92
104
  ngOnChanges(changes) {
@@ -94,10 +106,7 @@ export class MessageInputComponent {
94
106
  if (changes['conversationId'] && !changes['conversationId'].firstChange) {
95
107
  this.focusInput();
96
108
  }
97
- // When in-progress message IDs change (switching conversations), reconnect
98
- if (changes['inProgressMessageIds']) {
99
- this.reconnectInProgressMessages();
100
- }
109
+ // Note: inProgressMessageIds now handled by setter, not ngOnChanges
101
110
  }
102
111
  ngAfterViewInit() {
103
112
  // Focus input on initial load
@@ -111,10 +120,8 @@ export class MessageInputComponent {
111
120
  }
112
121
  }
113
122
  ngOnDestroy() {
114
- // Clean up PubSub subscription
115
- if (this.pushStatusSubscription) {
116
- this.pushStatusSubscription.unsubscribe();
117
- }
123
+ // Unregister all streaming callbacks
124
+ this.unregisterAllCallbacks();
118
125
  }
119
126
  /**
120
127
  * Focus the message input textarea
@@ -128,86 +135,61 @@ export class MessageInputComponent {
128
135
  }, 100);
129
136
  }
130
137
  /**
131
- * Reconnect to in-progress messages for streaming updates
138
+ * Reconnect to in-progress messages for streaming updates via global streaming service.
132
139
  * This is called when:
133
140
  * 1. Component initializes (ngOnInit)
134
141
  * 2. Conversation changes (ngOnChanges)
135
142
  * 3. User returns to a conversation with in-progress messages
143
+ * 4. Parent component explicitly triggers reconnection
136
144
  */
137
145
  reconnectInProgressMessages() {
138
146
  if (!this.inProgressMessageIds || this.inProgressMessageIds.length === 0) {
139
147
  return;
140
148
  }
141
149
  console.log(`🔌 Reconnecting to ${this.inProgressMessageIds.length} in-progress messages for streaming updates`);
142
- // Register all in-progress message IDs to receive PubSub updates
150
+ // Unregister any previously registered callbacks for this component
151
+ this.unregisterAllCallbacks();
152
+ // Register new callbacks for each in-progress message
143
153
  for (const messageId of this.inProgressMessageIds) {
144
- this.activeTaskExecutionMessageIds.add(messageId);
145
- }
146
- console.log(`✅ Registered ${this.activeTaskExecutionMessageIds.size} messages for streaming updates`);
147
- }
148
- /**
149
- * Subscribe to PubSub for real-time task orchestration progress updates
150
- */
151
- subscribeToPushStatus() {
152
- const dataProvider = GraphQLDataProvider.Instance;
153
- this.pushStatusSubscription = dataProvider.PushStatusUpdates().subscribe((status) => {
154
- if (!status || !status.message)
155
- return;
156
- try {
157
- const statusObj = JSON.parse(status.message);
158
- // Filter for TaskOrchestrator messages
159
- if (statusObj.resolver === 'TaskOrchestrator') {
160
- this.handleTaskProgress(statusObj);
161
- }
162
- }
163
- catch (error) {
164
- console.error('Error parsing push status update:', error);
165
- }
166
- });
167
- }
168
- /**
169
- * Handle task progress updates from PubSub
170
- */
171
- async handleTaskProgress(statusObj) {
172
- if (statusObj.type === 'TaskProgress') {
173
- // High-level task progress
174
- const { taskName, message, percentComplete } = statusObj.data;
175
- console.log(`[Task Progress] ${taskName}: ${message} (${percentComplete}%)`);
176
- // Update any active task execution messages
177
- await this.updateTaskExecutionMessages(taskName, message, percentComplete);
178
- }
179
- else if (statusObj.type === 'AgentProgress') {
180
- // Detailed agent progress (shown as smaller sub-text)
181
- const { taskName, agentStep, agentMessage } = statusObj.data;
182
- console.log(`[Agent Progress] ${taskName} → ${agentStep}: ${agentMessage}`);
183
- // Update with agent details
184
- await this.updateTaskExecutionMessages(taskName, `${agentStep}: ${agentMessage}`, undefined, true);
185
- }
154
+ // Create callback bound to this message ID
155
+ const callback = this.createMessageProgressCallback(messageId);
156
+ // Store reference for cleanup
157
+ this.registeredCallbacks.set(messageId, callback);
158
+ // Register with streaming service
159
+ this.streamingService.registerMessageCallback(messageId, callback);
160
+ }
161
+ console.log(`✅ Registered ${this.registeredCallbacks.size} message callbacks with streaming service`);
186
162
  }
187
163
  /**
188
- * Update task execution messages in real-time based on progress updates
164
+ * Create a progress callback for a specific message ID.
165
+ * This callback will be invoked by the streaming service when progress updates arrive.
189
166
  */
190
- async updateTaskExecutionMessages(taskName, progressMessage, percentComplete, isAgentDetail = false) {
191
- // Update all active task execution messages using the cache
192
- for (const messageId of this.activeTaskExecutionMessageIds) {
167
+ createMessageProgressCallback(messageId) {
168
+ return async (progress) => {
193
169
  try {
194
170
  // Get message from cache (single source of truth)
195
171
  const message = await this.dataCache.getConversationDetail(messageId, this.currentUser);
196
172
  if (!message) {
197
- console.warn(`Task execution message ${messageId} not found in cache`);
198
- continue;
173
+ console.warn(`[StreamingCallback] Message ${messageId} not found in cache`);
174
+ return;
199
175
  }
200
- // Skip if already complete
176
+ // Skip if already complete or errored
201
177
  if (message.Status === 'Complete' || message.Status === 'Error') {
202
- continue;
178
+ console.log(`[StreamingCallback] Message ${messageId} is ${message.Status}, ignoring progress update`);
179
+ return;
203
180
  }
204
- // Build progress message
205
- let updatedMessage = message.Message || '';
206
- if (isAgentDetail) {
207
- // Agent details shown as sub-text
208
- updatedMessage = `⏳ **${taskName}**\n\n_${progressMessage}_`;
181
+ // Check if message was marked as completed (prevents race condition)
182
+ const completionTime = this.completionTimestamps.get(messageId);
183
+ if (completionTime) {
184
+ console.log(`[StreamingCallback] Message ${messageId} marked complete at ${new Date(completionTime).toISOString()}, ignoring late progress update`);
185
+ return;
209
186
  }
210
- else if (percentComplete != null) {
187
+ // Build formatted progress message
188
+ const taskName = progress.taskName || 'Task';
189
+ const progressMessage = progress.message;
190
+ const percentComplete = progress.percentComplete;
191
+ let updatedMessage;
192
+ if (percentComplete != null) {
211
193
  updatedMessage = `⏳ **${taskName}** (${percentComplete}%)\n\n${progressMessage}`;
212
194
  }
213
195
  else {
@@ -215,17 +197,33 @@ export class MessageInputComponent {
215
197
  }
216
198
  message.Message = updatedMessage;
217
199
  // Use safe save to prevent race conditions with completion
218
- const saved = await this.safeSaveConversationDetail(message, `TaskProgress:${taskName}`);
200
+ const saved = await this.safeSaveConversationDetail(message, `StreamingProgress:${taskName}`);
219
201
  if (saved) {
202
+ // CRITICAL: Emit update to trigger UI refresh
220
203
  this.messageSent.emit(message);
221
- // Also update the ActiveTasksService to keep the tasks dropdown in sync
204
+ // CRITICAL: Update ActiveTasksService to keep the tasks dropdown in sync
222
205
  this.activeTasks.updateStatusByConversationDetailId(message.ID, progressMessage);
206
+ console.log(`[StreamingCallback] Updated message ${messageId}: ${taskName}`);
223
207
  }
224
208
  }
225
209
  catch (error) {
226
- console.error('Error updating task execution message:', error);
210
+ console.error(`[StreamingCallback] Error updating message ${messageId}:`, error);
227
211
  }
212
+ };
213
+ }
214
+ /**
215
+ * Unregister all callbacks registered by this component.
216
+ * Called during cleanup and when switching conversations.
217
+ */
218
+ unregisterAllCallbacks() {
219
+ if (this.registeredCallbacks.size === 0) {
220
+ return;
228
221
  }
222
+ console.log(`🧹 Unregistering ${this.registeredCallbacks.size} message callbacks`);
223
+ for (const [messageId, callback] of this.registeredCallbacks) {
224
+ this.streamingService.unregisterMessageCallback(messageId, callback);
225
+ }
226
+ this.registeredCallbacks.clear();
229
227
  }
230
228
  get canSend() {
231
229
  return !this.disabled && !this.isSending && this.messageText.trim().length > 0;
@@ -795,8 +793,10 @@ export class MessageInputComponent {
795
793
  // No AgentID for now - this represents the task orchestration system
796
794
  await taskExecutionMessage.Save();
797
795
  this.messageSent.emit(taskExecutionMessage);
798
- // Register for real-time updates via PubSub
799
- this.activeTaskExecutionMessageIds.add(taskExecutionMessage.ID);
796
+ // Register for streaming updates via global streaming service
797
+ const callback = this.createMessageProgressCallback(taskExecutionMessage.ID);
798
+ this.registeredCallbacks.set(taskExecutionMessage.ID, callback);
799
+ this.streamingService.registerMessageCallback(taskExecutionMessage.ID, callback);
800
800
  try {
801
801
  // Get environment ID from user
802
802
  const environmentId = this.currentUser.EnvironmentID || 'F51358F3-9447-4176-B313-BF8025FD8D09';
@@ -859,8 +859,12 @@ export class MessageInputComponent {
859
859
  conversationDetailId: taskExecutionMessage.ID,
860
860
  name: ''
861
861
  });
862
- // Unregister from real-time updates (task complete)
863
- this.activeTaskExecutionMessageIds.delete(taskExecutionMessage.ID);
862
+ // Unregister streaming callback (task complete)
863
+ const callback = this.registeredCallbacks.get(taskExecutionMessage.ID);
864
+ if (callback) {
865
+ this.streamingService.unregisterMessageCallback(taskExecutionMessage.ID, callback);
866
+ this.registeredCallbacks.delete(taskExecutionMessage.ID);
867
+ }
864
868
  // Mark agent response message as complete (removes task from active tasks)
865
869
  await this.updateConversationDetail(conversationManagerMessage, conversationManagerMessage.Message, 'Complete');
866
870
  // Mark user message as complete
@@ -878,8 +882,12 @@ export class MessageInputComponent {
878
882
  conversationDetailId: taskExecutionMessage.ID,
879
883
  name: ''
880
884
  });
881
- // Unregister from real-time updates (task failed)
882
- this.activeTaskExecutionMessageIds.delete(taskExecutionMessage.ID);
885
+ // Unregister streaming callback (task failed)
886
+ const callback = this.registeredCallbacks.get(taskExecutionMessage.ID);
887
+ if (callback) {
888
+ this.streamingService.unregisterMessageCallback(taskExecutionMessage.ID, callback);
889
+ this.registeredCallbacks.delete(taskExecutionMessage.ID);
890
+ }
883
891
  // Mark agent response message as complete (removes task from active tasks)
884
892
  conversationManagerMessage.Error = String(error);
885
893
  await this.updateConversationDetail(conversationManagerMessage, conversationManagerMessage.Message, 'Error');
@@ -1598,6 +1606,13 @@ export class MessageInputComponent {
1598
1606
  markMessageComplete(conversationDetail) {
1599
1607
  const now = Date.now();
1600
1608
  this.completionTimestamps.set(conversationDetail.ID, now);
1609
+ // Unregister streaming callback for this message (no more updates needed)
1610
+ const callback = this.registeredCallbacks.get(conversationDetail.ID);
1611
+ if (callback) {
1612
+ this.streamingService.unregisterMessageCallback(conversationDetail.ID, callback);
1613
+ this.registeredCallbacks.delete(conversationDetail.ID);
1614
+ console.log(`[MarkComplete] Unregistered streaming callback for completed message ${conversationDetail.ID}`);
1615
+ }
1601
1616
  // Remove task from active tasks if it exists
1602
1617
  const task = this.activeTasks.getByConversationDetailId(conversationDetail.ID);
1603
1618
  if (task) {
@@ -1629,7 +1644,7 @@ export class MessageInputComponent {
1629
1644
  this.completionTimestamps.delete(conversationDetailId);
1630
1645
  }, 5000); // 5 seconds should be more than enough
1631
1646
  }
1632
- static ɵfac = function MessageInputComponent_Factory(t) { return new (t || MessageInputComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.ToastService), i0.ɵɵdirectiveInject(i3.ConversationAgentService), i0.ɵɵdirectiveInject(i4.ConversationStateService), i0.ɵɵdirectiveInject(i5.DataCacheService), i0.ɵɵdirectiveInject(i6.ActiveTasksService), i0.ɵɵdirectiveInject(i7.MentionParserService), i0.ɵɵdirectiveInject(i8.MentionAutocompleteService)); };
1647
+ static ɵfac = function MessageInputComponent_Factory(t) { return new (t || MessageInputComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.ToastService), i0.ɵɵdirectiveInject(i3.ConversationAgentService), i0.ɵɵdirectiveInject(i4.ConversationStateService), i0.ɵɵdirectiveInject(i5.DataCacheService), i0.ɵɵdirectiveInject(i6.ActiveTasksService), i0.ɵɵdirectiveInject(i7.ConversationStreamingService), i0.ɵɵdirectiveInject(i8.MentionParserService), i0.ɵɵdirectiveInject(i9.MentionAutocompleteService)); };
1633
1648
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MessageInputComponent, selectors: [["mj-message-input"]], viewQuery: function MessageInputComponent_Query(rf, ctx) { if (rf & 1) {
1634
1649
  i0.ɵɵviewQuery(_c0, 5);
1635
1650
  } if (rf & 2) {
@@ -1649,12 +1664,12 @@ export class MessageInputComponent {
1649
1664
  i0.ɵɵadvance();
1650
1665
  i0.ɵɵproperty("placeholder", ctx.placeholder)("disabled", ctx.disabled || ctx.isProcessing)("showCharacterCount", false)("enableMentions", true)("currentUser", ctx.currentUser)("rows", 3);
1651
1666
  i0.ɵɵtwoWayProperty("value", ctx.messageText);
1652
- } }, dependencies: [i9.NgIf, i10.MessageInputBoxComponent], styles: [".message-input-wrapper[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n}\n\n.processing-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1.25rem;\n background: rgba(255, 255, 255, 0.95);\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 10;\n pointer-events: none;\n\n i {\n color: var(--primary-color, #007bff);\n }\n\n span {\n font-size: 0.9rem;\n color: var(--text-primary, #333);\n }\n}"] });
1667
+ } }, dependencies: [i10.NgIf, i11.MessageInputBoxComponent], styles: [".message-input-wrapper[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n}\n\n.processing-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1.25rem;\n background: rgba(255, 255, 255, 0.95);\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 10;\n pointer-events: none;\n\n i {\n color: var(--primary-color, #007bff);\n }\n\n span {\n font-size: 0.9rem;\n color: var(--text-primary, #333);\n }\n}"] });
1653
1668
  }
1654
1669
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MessageInputComponent, [{
1655
1670
  type: Component,
1656
1671
  args: [{ selector: 'mj-message-input', template: "<div class=\"message-input-wrapper\">\n <!-- Processing Indicator Overlay -->\n <div class=\"processing-indicator\" *ngIf=\"isProcessing\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>{{ processingMessage }}</span>\n </div>\n\n <!-- Message Input Box -->\n <mj-message-input-box\n #inputBox\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled || isProcessing\"\n [showCharacterCount]=\"false\"\n [enableMentions]=\"true\"\n [currentUser]=\"currentUser\"\n [rows]=\"3\"\n [(value)]=\"messageText\"\n (textSubmitted)=\"onTextSubmitted($event)\">\n </mj-message-input-box>\n</div>", styles: [".message-input-wrapper {\n position: relative;\n width: 100%;\n}\n\n.processing-indicator {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1.25rem;\n background: rgba(255, 255, 255, 0.95);\n border-radius: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 10;\n pointer-events: none;\n\n i {\n color: var(--primary-color, #007bff);\n }\n\n span {\n font-size: 0.9rem;\n color: var(--text-primary, #333);\n }\n}"] }]
1657
- }], () => [{ type: i1.DialogService }, { type: i2.ToastService }, { type: i3.ConversationAgentService }, { type: i4.ConversationStateService }, { type: i5.DataCacheService }, { type: i6.ActiveTasksService }, { type: i7.MentionParserService }, { type: i8.MentionAutocompleteService }], { conversationId: [{
1672
+ }], () => [{ type: i1.DialogService }, { type: i2.ToastService }, { type: i3.ConversationAgentService }, { type: i4.ConversationStateService }, { type: i5.DataCacheService }, { type: i6.ActiveTasksService }, { type: i7.ConversationStreamingService }, { type: i8.MentionParserService }, { type: i9.MentionAutocompleteService }], { conversationId: [{
1658
1673
  type: Input
1659
1674
  }], conversationName: [{
1660
1675
  type: Input
@@ -1700,5 +1715,5 @@ export class MessageInputComponent {
1700
1715
  type: ViewChild,
1701
1716
  args: ['inputBox']
1702
1717
  }] }); })();
1703
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MessageInputComponent, { className: "MessageInputComponent", filePath: "src/lib/components/message/message-input.component.ts", lineNumber: 25 }); })();
1718
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MessageInputComponent, { className: "MessageInputComponent", filePath: "src/lib/components/message/message-input.component.ts", lineNumber: 27 }); })();
1704
1719
  //# sourceMappingURL=message-input.component.js.map