@memberjunction/ng-conversations 5.4.1 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.js +3 -2
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +10 -9
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.js +3 -2
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +4 -3
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +5 -4
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts +2 -0
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +24 -17
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +1 -0
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +14 -10
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +21 -7
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +44 -14
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.d.ts +3 -0
- package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js +21 -11
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +4 -3
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js +3 -2
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +21 -7
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +7 -6
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-selector.component.js +3 -2
- package/dist/lib/components/project/project-selector.component.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +4 -3
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/services/agent-state.service.d.ts +4 -0
- package/dist/lib/services/agent-state.service.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.js +15 -6
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-permission.service.js +3 -2
- package/dist/lib/services/artifact-permission.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +5 -4
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-attachment.service.js +2 -1
- package/dist/lib/services/conversation-attachment.service.js.map +1 -1
- package/dist/lib/services/conversation-data.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-data.service.js +7 -6
- package/dist/lib/services/conversation-data.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +9 -8
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/package.json +17 -17
|
@@ -506,15 +506,29 @@ export declare class ConversationChatAreaComponent implements OnInit, OnDestroy,
|
|
|
506
506
|
scrollToBottomNow(retryCount?: number): void;
|
|
507
507
|
scrollToBottomAnimate(): void;
|
|
508
508
|
/**
|
|
509
|
-
* Detect
|
|
510
|
-
* Called after loading a conversation to
|
|
509
|
+
* Detect and reconcile agent run states against conversation detail statuses.
|
|
510
|
+
* Called after loading a conversation to handle two scenarios:
|
|
511
511
|
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
*
|
|
515
|
-
*
|
|
512
|
+
* 1. **In-progress catch-up**: If an agent completed between page refresh and
|
|
513
|
+
* WebSocket reconnection, the completion PubSub event is lost. We catch this
|
|
514
|
+
* by comparing message status against the agent run status from the database.
|
|
515
|
+
*
|
|
516
|
+
* 2. **Stale error correction**: If the client previously marked a conversation
|
|
517
|
+
* detail as 'Error' (e.g., due to WebSocket timeout) but the server actually
|
|
518
|
+
* completed successfully, we detect the mismatch and correct it. This prevents
|
|
519
|
+
* the race condition where the client overwrites a server-completed record.
|
|
520
|
+
*/
|
|
521
|
+
private detectAndReconcileAgentRuns;
|
|
522
|
+
/**
|
|
523
|
+
* Reconnect to in-progress agent runs whose completion events were missed.
|
|
524
|
+
*/
|
|
525
|
+
private reconnectInProgressRuns;
|
|
526
|
+
/**
|
|
527
|
+
* Detect conversation details marked as 'Error' by the client whose corresponding
|
|
528
|
+
* agent run actually completed successfully on the server. This corrects the race
|
|
529
|
+
* condition where the client overwrote a server-completed record with an error status.
|
|
516
530
|
*/
|
|
517
|
-
private
|
|
531
|
+
private correctStaleErrorMessages;
|
|
518
532
|
/**
|
|
519
533
|
* Handle pending artifact navigation from collection
|
|
520
534
|
* Opens the artifact and scrolls to the message containing it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-chat-area.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-chat-area.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAkD,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/K,OAAO,EAAE,QAAQ,EAA+B,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAC7K,OAAO,EAA2B,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAA6E,UAAU,EAAE,MAAM,gDAAgD,CAAC;AAEvJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAgC,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;;
|
|
1
|
+
{"version":3,"file":"conversation-chat-area.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-chat-area.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAkD,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/K,OAAO,EAAE,QAAQ,EAA+B,YAAY,EAAe,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAC7K,OAAO,EAA2B,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAA6E,UAAU,EAAE,MAAM,gDAAgD,CAAC;AAEvJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAgC,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;;AAG7F,qBAMa,6BAA8B,YAAW,MAAM,EAAE,SAAS,EAAE,gBAAgB;IAmN9E,gBAAgB,EAAE,uBAAuB;IAChD,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,wBAAwB;IAChC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,0BAA0B;IAClC,OAAO,CAAC,yBAAyB;IACjC,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,gBAAgB;IA3NjB,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAGhC,OAAO,CAAC,eAAe,CAAuB;IAC9C,IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAStC;IACD,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAElC;IAEQ,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACjD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,iBAAiB,EAAE,OAAO,CAAS;IAG5C,OAAO,CAAC,eAAe,CAAuB;IAC9C,IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAOtC;IACD,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAElC;IAGD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,IACI,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAEvD;IACD,IAAI,kBAAkB,IAAI,iBAAiB,EAAE,GAAG,IAAI,CAEnD;IAEQ,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACxC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGnD,iBAAiB,EAAE,OAAO,CAAS;IAElC,mBAAmB;wBAAqC,MAAM;cAAQ,MAAM;qBAAe,MAAM;OAAK;IACtG,gBAAgB;oBAAiC,MAAM;sBAAgB,YAAY;OAAK;IACxF,iBAAiB,kCAAyC;IAC1D,WAAW,6BAAoC;IAC/C,mBAAmB;cAA2B,cAAc,GAAG,YAAY;YAAM,MAAM;OAAK;IAC5F,oBAAoB,qBAA4B;IAIhD,mBAAmB;sBACb,oBAAoB;yBACjB,MAAM;6BACF,iBAAiB,EAAE;OACrC;IACK,YAAY,uBAA8B;IAC1C,YAAY,qBAA4B;IACxC,uBAAuB,qBAA4B;IACnD,sBAAsB,qBAA4B;IAElD,uBAAuB;cAA2B,MAAM;qBAAe,iBAAiB,EAAE;OAAK;IAE3E,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,sBAAsB,CAAoC;IACvD,OAAO,CAAC,uBAAuB,CAAC,CAA+B;IAEjG,QAAQ,EAAE,0BAA0B,EAAE,CAAM;IAC5C,sBAAsB,UAAS;IACtC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,wBAAwB,CAAuB;IACvD,OAAO,CAAC,8BAA8B,CAAuB;IACtD,YAAY,EAAE,OAAO,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAA2C;IAC9D,qBAAqB,EAAE,OAAO,CAAQ;IAG7C,OAAO,CAAC,mBAAmB,CAAoC;IACxD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC,CAAa;IAC5F,WAAW,EAAE,MAAM,CAAK;IACxB,aAAa,EAAE,MAAM,CAAK;IAC1B,oBAAoB,EAAE,MAAM,CAAK;IACjC,QAAQ,EAAE,OAAO,CAAS;IAC1B,eAAe,EAAE,OAAO,CAAS;IACjC,cAAc,EAAE,OAAO,CAAS;IAChC,gBAAgB,EAAE,OAAO,CAAS;IAClC,mBAAmB,EAAE,OAAO,CAAS;IACrC,iBAAiB,EAAE,OAAO,CAAS;IACnC,kBAAkB,EAAE,OAAO,CAAS;IACpC,mBAAmB,EAAE,OAAO,CAAS;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACzC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAa;IACtD,iBAAiB,EAAE,MAAM,CAAM;IAC/B,uBAAuB,EAAE,OAAO,CAAS;IAChD,OAAO,CAAC,+BAA+B,CAAc;IAC9C,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACzC,oBAAoB,EAAE,OAAO,CAAS;IACtC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjD,2BAA2B,EAAE,MAAM,EAAE,CAAM;IAG3C,wBAAwB,EAAE,OAAO,CAAS;IAC1C,uBAAuB,EAAE,OAAO,CAAS;IAGzC,wBAAwB,EAAE,OAAO,CAAS;IAC1C,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAIvD,OAAO,CAAC,qBAAqB,CAAmD;IAKzE,mBAAmB,kCAAyC;IAK5D,yBAAyB,kCAAyC;IAGzE,OAAO,CAAC,qBAAqB,CAAgD;IAItE,mBAAmB,0CAAiD;IAE3E;;OAEG;IACI,iBAAiB,4BAAmC;IAE3D;;OAEG;IACI,qBAAqB,mCAA0C;IAEtE;;;OAGG;IACI,oBAAoB,EAAE,MAAM,EAAE,CAAM;IAG3C,OAAO,CAAC,QAAQ,CAAuB;IAIvC,OAAO,CAAC,yBAAyB,CAAgF;IAGjH,SAAgB,iBAAiB,kCAAyC;IAC1E,SAAgB,iBAAiB,0CAAiD;IAClF,SAAgB,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAG3C,uBAAuB,EAAE,OAAO,CAAS;IAGzC,sBAAsB;oBAA4B,MAAM;uBAAiB,MAAM;OAAK;IAG3F,OAAO,CAAC,aAAa,CAAkB;IAIvC,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,UAAU,CAAa;IAG/B,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0C;IAG3E,eAAe,EAAE,OAAO,CAAS;IACjC,gBAAgB,EAAE,MAAM,CAAM;IAC9B,gBAAgB,EAAE,MAAM,CAAM;IAC9B,qBAAqB,EAAE,MAAM,CAAM;IAGnC,sBAAsB,EAAE,OAAO,CAAS;IACxC,gBAAgB,EAAE,MAAM,CAAM;IAI9B,iBAAiB,EAAE,OAAO,CAAS;IACnC,cAAc,EAAE,MAAM,CAAM;IAC5B,sBAAsB,EAAE,MAAM,CAAoB;IAClD,iBAAiB,EAAE,MAAM,CAAa;IAC7C,OAAO,CAAC,wBAAwB,CAAwC;gBAG/D,gBAAgB,EAAE,uBAAuB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,EAAE,wBAAwB,EAClD,WAAW,EAAE,kBAAkB,EAC/B,GAAG,EAAE,iBAAiB,EACtB,0BAA0B,EAAE,0BAA0B,EACtD,yBAAyB,EAAE,yBAAyB,EACpD,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,6BAA6B,EAChD,gBAAgB,EAAE,4BAA4B;IAGlD,QAAQ;IAqEd;;;OAGG;YACW,2BAA2B;IA2BzC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAmC/B,kBAAkB;IAkBlB,WAAW;YAeG,qBAAqB;IAsEnC;;;;OAIG;IACI,eAAe,IAAI,KAAK,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC;IAI1F;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;YASxB,YAAY;IAyC1B;;;OAGG;YACW,sBAAsB;IAgDpC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;;;;;;OAQG;YACW,kBAAkB;IAuIhC;;;;OAIG;YACW,kBAAkB;IAK1B,aAAa,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CvE;;;OAGG;YACW,yBAAyB;IAcvC;;;OAGG;YACW,4BAA4B;IAqB1C;;;OAGG;IACG,kBAAkB,CAAC,KAAK,EAAE;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlG;;;;OAIG;IACG,iBAAiB,CAAC,KAAK,EAAE;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/F;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,EAAE;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxI;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;OAGG;YACW,mCAAmC;IAuEjD;;;;;OAKG;YACW,uBAAuB;IA4D/B,eAAe,CAAC,KAAK,EAAE;QAAC,OAAO,EAAE,0BAA0B,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCpG;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAKnC;;;;OAIG;YACW,gBAAgB;IA0B9B;;;;;;OAMG;YACW,yBAAyB;IAqDvC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyC7B,mBAAmB,IAAI,IAAI;IAI3B,kBAAkB,IAAI,IAAI;IAI1B,aAAa,IAAI,IAAI;IAIrB;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;;;;OAOG;YACW,mBAAmB;IAajC;;;;OAIG;IACH,IAAW,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAgClE;IAED;;;OAGG;IACI,qBAAqB,IAAI,IAAI;IAOpC;;;OAGG;IACH,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IAED;;;;;OAKG;IACH,iBAAiB,IAAI,KAAK,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAC,CAAC,CAAA;KAC5D,CAAC;IAiDF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtF,kBAAkB,IAAI,IAAI;IAM1B,sBAAsB,IAAI,IAAI;IAI9B,qBAAqB,IAAI,IAAI;IAIvB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpD,iBAAiB,IAAI,IAAI;IAKzB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAK1D,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAKvD,mBAAmB,IAAI,IAAI;IAK3B,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,IAAI;IAW3D,kBAAkB,IAAI,IAAI;IAM1B,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAMnD,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAO1D;;;OAGG;IACG,2BAA2B,CAAC,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7F,cAAc,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAOzD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAYxD;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAO3B;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAKpE,iBAAiB,CAAC,IAAI,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BhF,iBAAiB,CAAC,IAAI,EAAE;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCxJ,oBAAoB,IAAI,IAAI;IAU5B,0BAA0B,IAAI,IAAI;IAalC,2BAA2B,CAAC,KAAK,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,EAAE,CAAA;KAAC,GAAG,IAAI;IAMzF,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAerE,2BAA2B,IAAI,IAAI;IAMnC;;;OAGG;IACI,6BAA6B,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO;IAI3E;;;;OAIG;IACI,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAOlF;;;;OAIG;IACI,wBAAwB,CAAC,oBAAoB,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIjF;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAStC,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ3C,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,qBAAqB;IAQ7B,qBAAqB,CAAC,KAAK,EAAE;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAM/F;;;OAGG;IACG,uBAAuB,CAAC,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,iBAAiB,EAAE,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CrG,kBAAkB,CAAC,KAAK,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,YAAY,CAAA;KAAC,GAAG,IAAI;IAKjF,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKnD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUpC,qBAAqB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAiChE,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKvC,wBAAwB,CAAC,KAAK,EAAE;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAQ/E;;OAEG;IACH,wBAAwB,CAAC,KAAK,EAAE;QAAC,IAAI,EAAE,cAAc,GAAG,YAAY,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAKxF;;OAEG;YACW,uBAAuB;IAmBrC;;OAEG;IACG,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE;;OAEG;IACH,yBAAyB,IAAI,IAAI;IAMjC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvC,WAAW,IAAI,IAAI;IAkBnB,iBAAiB,CAAC,UAAU,GAAE,MAAU,GAAG,IAAI;IAoB/C,qBAAqB,IAAI,IAAI;IAO7B;;;;;;;;;;;;OAYG;YACW,2BAA2B;IAKzC;;OAEG;YACW,uBAAuB;IAiCrC;;;;OAIG;YACW,yBAAyB;IAkBvC;;;OAGG;YACW,+BAA+B;IAmD7C;;;OAGG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3C;;OAEG;IACH,sBAAsB,IAAI,IAAI;yCA3sEnB,6BAA6B;2CAA7B,6BAA6B;CAmtEzC"}
|
|
@@ -8,6 +8,7 @@ import { ArtifactViewerPanelComponent } from '@memberjunction/ng-artifacts';
|
|
|
8
8
|
import { TestFeedbackDialogComponent } from '@memberjunction/ng-testing';
|
|
9
9
|
import { Subject } from 'rxjs';
|
|
10
10
|
import { takeUntil } from 'rxjs/operators';
|
|
11
|
+
import { UUIDsEqual } from '@memberjunction/global';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "../../services/conversation-data.service";
|
|
13
14
|
import * as i2 from "../../services/agent-state.service";
|
|
@@ -647,7 +648,7 @@ export class ConversationChatAreaComponent {
|
|
|
647
648
|
.pipe(takeUntil(this.destroy$))
|
|
648
649
|
.subscribe(async (event) => {
|
|
649
650
|
// Find the message in our current conversation
|
|
650
|
-
const message = this.messages.find(m => m.ID
|
|
651
|
+
const message = this.messages.find(m => UUIDsEqual(m.ID, event.conversationDetailId));
|
|
651
652
|
if (message) {
|
|
652
653
|
await this.handleMessageCompletion(message, event.agentRunId);
|
|
653
654
|
}
|
|
@@ -656,13 +657,13 @@ export class ConversationChatAreaComponent {
|
|
|
656
657
|
// The sessionId is persisted in localStorage and reused on refresh, so WebSocket events
|
|
657
658
|
// normally arrive correctly. However, there's a brief timing gap between page load and
|
|
658
659
|
// WebSocket reconnection where events can be lost. The catch-up check in
|
|
659
|
-
//
|
|
660
|
+
// detectAndReconcileAgentRuns() is the primary fallback; polling is the last resort.
|
|
660
661
|
this.agentStateService.activeAgents$
|
|
661
662
|
.pipe(takeUntil(this.destroy$))
|
|
662
663
|
.subscribe(async (agents) => {
|
|
663
664
|
if (!this.conversationId)
|
|
664
665
|
return;
|
|
665
|
-
const conversationAgents = agents.filter(a => a.run.ConversationID
|
|
666
|
+
const conversationAgents = agents.filter(a => UUIDsEqual(a.run.ConversationID, this.conversationId));
|
|
666
667
|
const hasActiveAgents = conversationAgents.length > 0;
|
|
667
668
|
if (this.hadActiveAgents && !hasActiveAgents) {
|
|
668
669
|
// Agents just completed — reload messages to pick up final response and any
|
|
@@ -718,7 +719,7 @@ export class ConversationChatAreaComponent {
|
|
|
718
719
|
.reverse()
|
|
719
720
|
.find(msg => msg.Role === 'AI' &&
|
|
720
721
|
msg.AgentID &&
|
|
721
|
-
msg.AgentID
|
|
722
|
+
!UUIDsEqual(msg.AgentID, this.conversationManagerAgent?.ID));
|
|
722
723
|
if (lastNonSageAgent?.AgentID) {
|
|
723
724
|
// Check if this agent supports attachments
|
|
724
725
|
if (AIEngineBase.Instance.AgentSupportsAttachments(lastNonSageAgent.AgentID)) {
|
|
@@ -876,7 +877,7 @@ export class ConversationChatAreaComponent {
|
|
|
876
877
|
this.isLoadingPeripheralData = false;
|
|
877
878
|
this.cdr.detectChanges();
|
|
878
879
|
}
|
|
879
|
-
await this.
|
|
880
|
+
await this.detectAndReconcileAgentRuns(conversationId);
|
|
880
881
|
await this.handlePendingArtifactNavigation();
|
|
881
882
|
}
|
|
882
883
|
catch (error) {
|
|
@@ -1089,7 +1090,7 @@ export class ConversationChatAreaComponent {
|
|
|
1089
1090
|
}
|
|
1090
1091
|
// Check if message already exists in the array (by ID) to prevent duplicates
|
|
1091
1092
|
// Messages can be emitted multiple times as they're updated (e.g., status changes)
|
|
1092
|
-
const existingIndex = this.messages.findIndex(m => m.ID
|
|
1093
|
+
const existingIndex = this.messages.findIndex(m => UUIDsEqual(m.ID, message.ID));
|
|
1093
1094
|
if (existingIndex >= 0) {
|
|
1094
1095
|
// Update existing message in place (replace with updated version)
|
|
1095
1096
|
this.messages = [
|
|
@@ -2212,15 +2213,26 @@ export class ConversationChatAreaComponent {
|
|
|
2212
2213
|
}
|
|
2213
2214
|
}
|
|
2214
2215
|
/**
|
|
2215
|
-
* Detect
|
|
2216
|
-
* Called after loading a conversation to
|
|
2216
|
+
* Detect and reconcile agent run states against conversation detail statuses.
|
|
2217
|
+
* Called after loading a conversation to handle two scenarios:
|
|
2217
2218
|
*
|
|
2218
|
-
*
|
|
2219
|
-
*
|
|
2220
|
-
*
|
|
2221
|
-
*
|
|
2219
|
+
* 1. **In-progress catch-up**: If an agent completed between page refresh and
|
|
2220
|
+
* WebSocket reconnection, the completion PubSub event is lost. We catch this
|
|
2221
|
+
* by comparing message status against the agent run status from the database.
|
|
2222
|
+
*
|
|
2223
|
+
* 2. **Stale error correction**: If the client previously marked a conversation
|
|
2224
|
+
* detail as 'Error' (e.g., due to WebSocket timeout) but the server actually
|
|
2225
|
+
* completed successfully, we detect the mismatch and correct it. This prevents
|
|
2226
|
+
* the race condition where the client overwrites a server-completed record.
|
|
2227
|
+
*/
|
|
2228
|
+
async detectAndReconcileAgentRuns(conversationId) {
|
|
2229
|
+
await this.reconnectInProgressRuns();
|
|
2230
|
+
await this.correctStaleErrorMessages();
|
|
2231
|
+
}
|
|
2232
|
+
/**
|
|
2233
|
+
* Reconnect to in-progress agent runs whose completion events were missed.
|
|
2222
2234
|
*/
|
|
2223
|
-
async
|
|
2235
|
+
async reconnectInProgressRuns() {
|
|
2224
2236
|
const inProgressMessages = this.messages.filter(m => m.Status === 'In-Progress' && m.Role === 'AI');
|
|
2225
2237
|
if (inProgressMessages.length === 0) {
|
|
2226
2238
|
return;
|
|
@@ -2245,6 +2257,24 @@ export class ConversationChatAreaComponent {
|
|
|
2245
2257
|
}
|
|
2246
2258
|
}
|
|
2247
2259
|
}
|
|
2260
|
+
/**
|
|
2261
|
+
* Detect conversation details marked as 'Error' by the client whose corresponding
|
|
2262
|
+
* agent run actually completed successfully on the server. This corrects the race
|
|
2263
|
+
* condition where the client overwrote a server-completed record with an error status.
|
|
2264
|
+
*/
|
|
2265
|
+
async correctStaleErrorMessages() {
|
|
2266
|
+
const errorMessages = this.messages.filter(m => m.Status === 'Error' && m.Role === 'AI');
|
|
2267
|
+
if (errorMessages.length === 0) {
|
|
2268
|
+
return;
|
|
2269
|
+
}
|
|
2270
|
+
for (const message of errorMessages) {
|
|
2271
|
+
const agentRun = this.agentRunsByDetailId.get(message.ID);
|
|
2272
|
+
if (agentRun && agentRun.Status === 'Completed') {
|
|
2273
|
+
LogStatusEx({ message: `🔧 Correcting stale error: message ${message.ID} shows Error but agent run ${agentRun.ID} completed successfully`, verboseOnly: true });
|
|
2274
|
+
await this.handleMessageCompletion(message, agentRun.ID);
|
|
2275
|
+
}
|
|
2276
|
+
}
|
|
2277
|
+
}
|
|
2248
2278
|
/**
|
|
2249
2279
|
* Handle pending artifact navigation from collection
|
|
2250
2280
|
* Opens the artifact and scrolls to the message containing it
|
|
@@ -2456,5 +2486,5 @@ export class ConversationChatAreaComponent {
|
|
|
2456
2486
|
type: ViewChild,
|
|
2457
2487
|
args: [ArtifactViewerPanelComponent]
|
|
2458
2488
|
}] }); })();
|
|
2459
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationChatAreaComponent, { className: "ConversationChatAreaComponent", filePath: "src/lib/components/conversation/conversation-chat-area.component.ts", lineNumber:
|
|
2489
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationChatAreaComponent, { className: "ConversationChatAreaComponent", filePath: "src/lib/components/conversation/conversation-chat-area.component.ts", lineNumber: 32 }); })();
|
|
2460
2490
|
//# sourceMappingURL=conversation-chat-area.component.js.map
|