@memberjunction/ng-conversations 2.117.0 → 2.119.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/collection/collection-artifact-card.component.d.ts +7 -1
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.js +14 -18
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +86 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +1042 -255
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +9 -2
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +242 -163
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js +11 -11
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.js +2 -2
- package/dist/lib/components/mention/mention-editor.component.d.ts +21 -0
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +299 -2
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.d.ts +33 -0
- package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -0
- package/dist/lib/components/message/actionable-commands.component.js +107 -0
- package/dist/lib/components/message/actionable-commands.component.js.map +1 -0
- package/dist/lib/components/message/agent-response-form.component.d.ts +72 -0
- package/dist/lib/components/message/agent-response-form.component.d.ts.map +1 -0
- package/dist/lib/components/message/agent-response-form.component.js +310 -0
- package/dist/lib/components/message/agent-response-form.component.js.map +1 -0
- package/dist/lib/components/message/form-question.component.d.ts +105 -0
- package/dist/lib/components/message/form-question.component.d.ts.map +1 -0
- package/dist/lib/components/message/form-question.component.js +621 -0
- package/dist/lib/components/message/form-question.component.js.map +1 -0
- package/dist/lib/components/message/message-input-box.component.d.ts +12 -0
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +14 -1
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +3 -3
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +87 -102
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +39 -6
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +492 -197
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +2 -1
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +5 -1
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +10 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +108 -32
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +23 -6
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +128 -52
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +60 -56
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +17 -1
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/collection-view.model.d.ts +30 -0
- package/dist/lib/models/collection-view.model.d.ts.map +1 -0
- package/dist/lib/models/collection-view.model.js +2 -0
- package/dist/lib/models/collection-view.model.js.map +1 -0
- package/dist/lib/models/conversation-state.model.d.ts +1 -0
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/services/active-tasks.service.d.ts +1 -0
- package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
- package/dist/lib/services/active-tasks.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +4 -1
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +22 -2
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-streaming.service.d.ts +1 -0
- package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-streaming.service.js +11 -26
- package/dist/lib/services/conversation-streaming.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts +12 -0
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +41 -0
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.d.ts +6 -1
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
- package/dist/lib/services/mention-parser.service.js +114 -34
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.d.ts +45 -0
- package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -0
- package/dist/lib/services/ui-command-handler.service.js +95 -0
- package/dist/lib/services/ui-command-handler.service.js.map +1 -0
- package/package.json +15 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-question.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/form-question.component.ts","../../../../src/lib/components/message/form-question.component.html"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ export declare class MessageInputBoxComponent {
|
|
|
36
36
|
onValueChange(newValue: string): void;
|
|
37
37
|
/**
|
|
38
38
|
* Handle Enter key from MentionEditorComponent
|
|
39
|
+
* Extracts plain text with JSON-encoded mentions for message submission
|
|
39
40
|
*/
|
|
40
41
|
onEnterPressed(_text: string): void;
|
|
41
42
|
/**
|
|
@@ -44,6 +45,7 @@ export declare class MessageInputBoxComponent {
|
|
|
44
45
|
onMentionSelected(suggestion: MentionSuggestion): void;
|
|
45
46
|
/**
|
|
46
47
|
* Send the message
|
|
48
|
+
* Extracts plain text with JSON-encoded mentions for proper persistence
|
|
47
49
|
*/
|
|
48
50
|
onSendClick(): void;
|
|
49
51
|
/**
|
|
@@ -55,6 +57,16 @@ export declare class MessageInputBoxComponent {
|
|
|
55
57
|
* Public method to focus the input programmatically
|
|
56
58
|
*/
|
|
57
59
|
focus(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Get mention chip data including configuration presets
|
|
62
|
+
*/
|
|
63
|
+
getMentionChipsData(): Array<{
|
|
64
|
+
id: string;
|
|
65
|
+
type: string;
|
|
66
|
+
name: string;
|
|
67
|
+
presetId?: string;
|
|
68
|
+
presetName?: string;
|
|
69
|
+
}>;
|
|
58
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputBoxComponent, never>;
|
|
59
71
|
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>;
|
|
60
72
|
}
|
|
@@ -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
|
|
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;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAMtD;;;OAGG;IACH,WAAW,IAAI,IAAI;IAgBnB;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA6BzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,mBAAmB,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;yCA7GrG,wBAAwB;2CAAxB,wBAAwB;CAgHpC"}
|
|
@@ -41,6 +41,7 @@ export class MessageInputBoxComponent {
|
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Handle Enter key from MentionEditorComponent
|
|
44
|
+
* Extracts plain text with JSON-encoded mentions for message submission
|
|
44
45
|
*/
|
|
45
46
|
onEnterPressed(_text) {
|
|
46
47
|
this.onSendClick();
|
|
@@ -55,12 +56,18 @@ export class MessageInputBoxComponent {
|
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
* Send the message
|
|
59
|
+
* Extracts plain text with JSON-encoded mentions for proper persistence
|
|
58
60
|
*/
|
|
59
61
|
onSendClick() {
|
|
60
62
|
if (this.canSend) {
|
|
61
|
-
|
|
63
|
+
// Get plain text with JSON-encoded mentions (preserves configuration info)
|
|
64
|
+
const textToSend = this.mentionEditor?.getPlainTextWithJsonMentions() || this.value.trim();
|
|
62
65
|
this.textSubmitted.emit(textToSend);
|
|
63
66
|
this.value = ''; // Clear input after sending
|
|
67
|
+
// Clear the editor content
|
|
68
|
+
if (this.mentionEditor) {
|
|
69
|
+
this.mentionEditor.clear();
|
|
70
|
+
}
|
|
64
71
|
this.valueChange.emit(this.value);
|
|
65
72
|
}
|
|
66
73
|
}
|
|
@@ -101,6 +108,12 @@ export class MessageInputBoxComponent {
|
|
|
101
108
|
editor.focus();
|
|
102
109
|
}
|
|
103
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Get mention chip data including configuration presets
|
|
113
|
+
*/
|
|
114
|
+
getMentionChipsData() {
|
|
115
|
+
return this.mentionEditor?.getMentionChipsData() || [];
|
|
116
|
+
}
|
|
104
117
|
static ɵfac = function MessageInputBoxComponent_Factory(t) { return new (t || MessageInputBoxComponent)(); };
|
|
105
118
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MessageInputBoxComponent, selectors: [["mj-message-input-box"]], viewQuery: function MessageInputBoxComponent_Query(rf, ctx) { if (rf & 1) {
|
|
106
119
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;;;;;AAKlF;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,wBAAwB;IACP,aAAa,CAA0B;IAE1D,WAAW,GAAW,kDAAkD,CAAC;IACzE,QAAQ,GAAY,KAAK,CAAC;IAC1B,KAAK,GAAW,EAAE,CAAC;IACnB,kBAAkB,GAAY,KAAK,CAAC;IACpC,cAAc,GAAY,IAAI,CAAC;IAC/B,WAAW,CAAY;IACvB,IAAI,GAAW,CAAC,CAAC;IAEhB,aAAa,GAAG,IAAI,YAAY,EAAU,CAAC;IAC3C,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;IAEnD,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED
|
|
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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"}
|
|
@@ -8,7 +8,7 @@ import { ConversationStateService } from '../../services/conversation-state.serv
|
|
|
8
8
|
import { DataCacheService } from '../../services/data-cache.service';
|
|
9
9
|
import { ActiveTasksService } from '../../services/active-tasks.service';
|
|
10
10
|
import { ConversationStreamingService } from '../../services/conversation-streaming.service';
|
|
11
|
-
import {
|
|
11
|
+
import { ExecuteAgentResult } from '@memberjunction/ai-core-plus';
|
|
12
12
|
import { MentionAutocompleteService } from '../../services/mention-autocomplete.service';
|
|
13
13
|
import { MentionParserService } from '../../services/mention-parser.service';
|
|
14
14
|
import { LazyArtifactInfo } from '../../models/lazy-artifact-info';
|
|
@@ -55,7 +55,7 @@ export declare class MessageInputComponent implements OnInit, OnDestroy, OnChang
|
|
|
55
55
|
}>;
|
|
56
56
|
messageComplete: EventEmitter<{
|
|
57
57
|
conversationDetailId: string;
|
|
58
|
-
|
|
58
|
+
agentId?: string | undefined;
|
|
59
59
|
}>;
|
|
60
60
|
artifactCreated: EventEmitter<{
|
|
61
61
|
artifactId: string;
|
|
@@ -200,7 +200,7 @@ export declare class MessageInputComponent implements OnInit, OnDestroy, OnChang
|
|
|
200
200
|
* Creates tasks and orchestrates their execution
|
|
201
201
|
*/
|
|
202
202
|
private handleTaskGraphExecution;
|
|
203
|
-
protected updateConversationDetail(convoDetail: ConversationDetailEntity, message: string, status: 'In-Progress' | 'Complete' | 'Error',
|
|
203
|
+
protected updateConversationDetail(convoDetail: ConversationDetailEntity, message: string, status: 'In-Progress' | 'Complete' | 'Error', result?: ExecuteAgentResult): Promise<void>;
|
|
204
204
|
/**
|
|
205
205
|
* Load previous payload for an agent from its most recent OUTPUT artifact.
|
|
206
206
|
* Checks both user-visible and system artifacts to support agents like Agent Manager.
|
|
@@ -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,EAAa,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9I,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAkC,qBAAqB,EAAE,wBAAwB,
|
|
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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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
2
|
import { Metadata } from '@memberjunction/core';
|
|
3
|
+
import { EnvironmentEntityExtended } from '@memberjunction/core-entities';
|
|
3
4
|
import { GraphQLDataProvider, GraphQLAIClient } from '@memberjunction/graphql-dataprovider';
|
|
4
5
|
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
5
6
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
@@ -113,7 +114,6 @@ export class MessageInputComponent {
|
|
|
113
114
|
this.focusInput();
|
|
114
115
|
// If there's an initial message to send (from empty state), send it automatically
|
|
115
116
|
if (this.initialMessage) {
|
|
116
|
-
console.log('📨 MessageInputComponent received initialMessage:', this.initialMessage);
|
|
117
117
|
setTimeout(() => {
|
|
118
118
|
this.sendMessageWithText(this.initialMessage);
|
|
119
119
|
}, 100);
|
|
@@ -146,7 +146,6 @@ export class MessageInputComponent {
|
|
|
146
146
|
if (!this.inProgressMessageIds || this.inProgressMessageIds.length === 0) {
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
|
-
console.log(`🔌 Reconnecting to ${this.inProgressMessageIds.length} in-progress messages for streaming updates`);
|
|
150
149
|
// Unregister any previously registered callbacks for this component
|
|
151
150
|
this.unregisterAllCallbacks();
|
|
152
151
|
// Register new callbacks for each in-progress message
|
|
@@ -158,7 +157,6 @@ export class MessageInputComponent {
|
|
|
158
157
|
// Register with streaming service
|
|
159
158
|
this.streamingService.registerMessageCallback(messageId, callback);
|
|
160
159
|
}
|
|
161
|
-
console.log(`✅ Registered ${this.registeredCallbacks.size} message callbacks with streaming service`);
|
|
162
160
|
}
|
|
163
161
|
/**
|
|
164
162
|
* Create a progress callback for a specific message ID.
|
|
@@ -187,13 +185,15 @@ export class MessageInputComponent {
|
|
|
187
185
|
// Build formatted progress message
|
|
188
186
|
const taskName = progress.taskName || 'Task';
|
|
189
187
|
const progressMessage = progress.message;
|
|
190
|
-
|
|
188
|
+
// Prefer hierarchical step (e.g., "2.1.3") over flat stepCount
|
|
189
|
+
// Note: hierarchicalStep is nested inside metadata.progress from GraphQL
|
|
190
|
+
const stepDisplay = progress.metadata?.progress?.hierarchicalStep || progress.stepCount;
|
|
191
191
|
let updatedMessage;
|
|
192
|
-
if (
|
|
193
|
-
updatedMessage =
|
|
192
|
+
if (stepDisplay != null) {
|
|
193
|
+
updatedMessage = `🔄 **${taskName}** • Step ${stepDisplay}\n\n${progressMessage}`;
|
|
194
194
|
}
|
|
195
195
|
else {
|
|
196
|
-
updatedMessage =
|
|
196
|
+
updatedMessage = `🔄 **${taskName}**\n\n${progressMessage}`;
|
|
197
197
|
}
|
|
198
198
|
message.Message = updatedMessage;
|
|
199
199
|
// Use safe save to prevent race conditions with completion
|
|
@@ -232,7 +232,6 @@ export class MessageInputComponent {
|
|
|
232
232
|
* Handle text submitted from the input box
|
|
233
233
|
*/
|
|
234
234
|
async onTextSubmitted(text) {
|
|
235
|
-
console.log('[MessageInput] onTextSubmitted called with text:', text);
|
|
236
235
|
// Use the text parameter directly since the box component already cleared its value
|
|
237
236
|
if (!text || !text.trim()) {
|
|
238
237
|
console.log('[MessageInput] Empty text, aborting');
|
|
@@ -241,7 +240,6 @@ export class MessageInputComponent {
|
|
|
241
240
|
this.isSending = true;
|
|
242
241
|
try {
|
|
243
242
|
const messageDetail = await this.createMessageDetailFromText(text.trim());
|
|
244
|
-
console.log('[MessageInput] Created message detail:', messageDetail.Message);
|
|
245
243
|
const saved = await messageDetail.Save();
|
|
246
244
|
if (saved) {
|
|
247
245
|
await this.handleSuccessfulSend(messageDetail);
|
|
@@ -386,26 +384,29 @@ export class MessageInputComponent {
|
|
|
386
384
|
* Handles routing when user directly mentions an agent with @
|
|
387
385
|
*/
|
|
388
386
|
async handleDirectMention(messageDetail, agentMention, isFirstMessage) {
|
|
389
|
-
|
|
387
|
+
// The agentMention already has configurationId from JSON parsing
|
|
388
|
+
// If it wasn't in JSON (legacy format), try to get from chip data
|
|
389
|
+
if (!agentMention.configurationId) {
|
|
390
|
+
const chipData = this.inputBox?.getMentionChipsData() || [];
|
|
391
|
+
const agentChip = chipData.find(chip => chip.id === agentMention.id && chip.type === 'agent');
|
|
392
|
+
if (agentChip?.presetId) {
|
|
393
|
+
agentMention.configurationId = agentChip.presetId;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
if (agentMention.configurationId) {
|
|
397
|
+
//console.log(`🎯 Agent mention has configuration ID: ${agentMention.configurationId}`);
|
|
398
|
+
}
|
|
390
399
|
await this.executeRouteWithNaming(() => this.invokeAgentDirectly(messageDetail, agentMention, this.conversationId), messageDetail.Message, isFirstMessage);
|
|
391
400
|
}
|
|
392
401
|
/**
|
|
393
402
|
* Handles routing when there's a previous agent - checks intent first
|
|
394
403
|
*/
|
|
395
404
|
async handleAgentContinuity(messageDetail, lastAgentId, mentionResult, isFirstMessage) {
|
|
396
|
-
console.log('🔍 Previous agent found, checking continuity intent...');
|
|
397
405
|
const intentResult = await this.checkContinuityIntent(lastAgentId, messageDetail.Message);
|
|
398
406
|
if (intentResult.decision === 'YES') {
|
|
399
|
-
console.log('✅ Intent check: YES - continuing with previous agent', {
|
|
400
|
-
reasoning: intentResult.reasoning,
|
|
401
|
-
targetArtifactVersionId: intentResult.targetArtifactVersionId
|
|
402
|
-
});
|
|
403
407
|
await this.executeRouteWithNaming(() => this.continueWithAgent(messageDetail, lastAgentId, this.conversationId, intentResult.targetArtifactVersionId), messageDetail.Message, isFirstMessage);
|
|
404
408
|
}
|
|
405
409
|
else {
|
|
406
|
-
console.log(`🤖 Intent check: ${intentResult.decision} - routing through Sage for evaluation`, {
|
|
407
|
-
reasoning: intentResult.reasoning
|
|
408
|
-
});
|
|
409
410
|
await this.executeRouteWithNaming(() => this.processMessageThroughAgent(messageDetail, mentionResult), messageDetail.Message, isFirstMessage);
|
|
410
411
|
}
|
|
411
412
|
}
|
|
@@ -413,7 +414,6 @@ export class MessageInputComponent {
|
|
|
413
414
|
* Handles routing when there's no previous agent context
|
|
414
415
|
*/
|
|
415
416
|
async handleNoAgentContext(messageDetail, mentionResult, isFirstMessage) {
|
|
416
|
-
console.log('🤖 No agent context, using Sage');
|
|
417
417
|
await this.executeRouteWithNaming(() => this.processMessageThroughAgent(messageDetail, mentionResult), messageDetail.Message, isFirstMessage);
|
|
418
418
|
}
|
|
419
419
|
/**
|
|
@@ -504,7 +504,6 @@ export class MessageInputComponent {
|
|
|
504
504
|
async safeSaveConversationDetail(detail, context) {
|
|
505
505
|
// Never modify completed or errored messages
|
|
506
506
|
if (detail.Status === 'Complete' || detail.Status === 'Error') {
|
|
507
|
-
console.log(`[${context}] 🛡️ Blocked save - message is ${detail.Status}`);
|
|
508
507
|
return false;
|
|
509
508
|
}
|
|
510
509
|
await detail.Save();
|
|
@@ -579,10 +578,6 @@ export class MessageInputComponent {
|
|
|
579
578
|
catch (error) {
|
|
580
579
|
console.warn('Failed to save progress update to ConversationDetail:', error);
|
|
581
580
|
}
|
|
582
|
-
console.log(`[${agentName}] Progress: ${progress.step} - ${progress.message} (${progress.percentage}%)`, {
|
|
583
|
-
agentRunId: progressAgentRunId,
|
|
584
|
-
conversationDetailId: conversationDetail.ID
|
|
585
|
-
});
|
|
586
581
|
};
|
|
587
582
|
}
|
|
588
583
|
/**
|
|
@@ -635,17 +630,8 @@ export class MessageInputComponent {
|
|
|
635
630
|
this.cleanupCompletionTimestamp(conversationManagerMessage.ID);
|
|
636
631
|
return;
|
|
637
632
|
}
|
|
638
|
-
console.log('🤖 Sage Response:', {
|
|
639
|
-
finalStep: result.agentRun.FinalStep,
|
|
640
|
-
hasPayload: !!result.payload,
|
|
641
|
-
hasMessage: !!result.agentRun.Message,
|
|
642
|
-
payloadKeys: result.payload ? Object.keys(result.payload) : [],
|
|
643
|
-
payload: result.payload, // Full payload for debugging,
|
|
644
|
-
suggestedResponses: result.suggestedResponses
|
|
645
|
-
});
|
|
646
633
|
// Stage 2: Check for task graph (multi-step orchestration)
|
|
647
634
|
if (result.payload?.taskGraph) {
|
|
648
|
-
console.log('📋 Task graph detected, starting task orchestration');
|
|
649
635
|
await this.handleTaskGraphExecution(userMessage, result, this.conversationId, conversationManagerMessage);
|
|
650
636
|
// Remove CM from active tasks
|
|
651
637
|
if (taskId) {
|
|
@@ -661,13 +647,12 @@ export class MessageInputComponent {
|
|
|
661
647
|
// Task removed in markMessageComplete() - this.activeTasks.remove(taskId);
|
|
662
648
|
}
|
|
663
649
|
}
|
|
664
|
-
// Stage 4: Direct chat response from
|
|
650
|
+
// Stage 4: Direct chat response from Agent
|
|
665
651
|
else if (result.agentRun.FinalStep === 'Chat' && result.agentRun.Message) {
|
|
666
|
-
// Mark message as completing BEFORE setting final content (prevents race condition)
|
|
667
|
-
this.markMessageComplete(conversationManagerMessage);
|
|
668
652
|
// Normal chat response
|
|
669
653
|
// use update helper to ensure that if there is a race condition with more streaming updates we don't allow that to override this final message
|
|
670
|
-
|
|
654
|
+
// Note: updateConversationDetail will call markMessageComplete() for us
|
|
655
|
+
await this.updateConversationDetail(conversationManagerMessage, result.agentRun.Message, 'Complete', result);
|
|
671
656
|
// Handle artifacts if any (but NOT task graphs - those are intermediate work products)
|
|
672
657
|
// Server already created artifacts - just emit event to trigger UI reload
|
|
673
658
|
if (result.payload && Object.keys(result.payload).length > 0) {
|
|
@@ -678,7 +663,6 @@ export class MessageInputComponent {
|
|
|
678
663
|
conversationDetailId: conversationManagerMessage.ID,
|
|
679
664
|
name: ''
|
|
680
665
|
});
|
|
681
|
-
console.log('🎨 Server created artifact, UI will reload to show it');
|
|
682
666
|
this.messageSent.emit(conversationManagerMessage);
|
|
683
667
|
}
|
|
684
668
|
await this.updateConversationDetail(userMessage, userMessage.Message, 'Complete');
|
|
@@ -693,24 +677,22 @@ export class MessageInputComponent {
|
|
|
693
677
|
else {
|
|
694
678
|
// Check if there's a message to display even without payload/taskGraph
|
|
695
679
|
if (result.agentRun.Message) {
|
|
696
|
-
console.log('💬 Sage provided a message without payload');
|
|
697
680
|
// Mark message as completing BEFORE setting final content
|
|
698
681
|
this.markMessageComplete(conversationManagerMessage);
|
|
699
682
|
conversationManagerMessage.HiddenToUser = false;
|
|
700
683
|
// use update helper to ensure that if there is a race condition with more streaming updates we don't allow that to override this final message
|
|
701
|
-
await this.updateConversationDetail(conversationManagerMessage, result.agentRun.Message, 'Complete', result
|
|
684
|
+
await this.updateConversationDetail(conversationManagerMessage, result.agentRun.Message, 'Complete', result);
|
|
702
685
|
this.messageSent.emit(conversationManagerMessage);
|
|
703
686
|
// Clean up completion timestamp after delay
|
|
704
687
|
this.cleanupCompletionTimestamp(conversationManagerMessage.ID);
|
|
705
688
|
}
|
|
706
689
|
else {
|
|
707
|
-
console.log('🔇 Sage chose to observe silently');
|
|
708
690
|
// Mark message as completing
|
|
709
691
|
this.markMessageComplete(conversationManagerMessage);
|
|
710
692
|
// Hide the Sage message
|
|
711
693
|
conversationManagerMessage.HiddenToUser = true;
|
|
712
694
|
// use update helper to ensure that if there is a race condition with more streaming updates we don't allow that to override this final message
|
|
713
|
-
await this.updateConversationDetail(conversationManagerMessage, conversationManagerMessage.Message, 'Complete');
|
|
695
|
+
await this.updateConversationDetail(conversationManagerMessage, conversationManagerMessage.Message, 'Complete', result);
|
|
714
696
|
this.messageSent.emit(conversationManagerMessage);
|
|
715
697
|
await this.handleSilentObservation(userMessage, this.conversationId);
|
|
716
698
|
// Clean up completion timestamp after delay
|
|
@@ -749,10 +731,6 @@ export class MessageInputComponent {
|
|
|
749
731
|
const workflowName = taskGraph.workflowName || 'Workflow';
|
|
750
732
|
const reasoning = taskGraph.reasoning || 'Executing multi-step workflow';
|
|
751
733
|
const taskCount = taskGraph.tasks?.length || 0;
|
|
752
|
-
console.log(`📋 Task graph execution requested: ${workflowName}`, {
|
|
753
|
-
reasoning,
|
|
754
|
-
taskCount
|
|
755
|
-
});
|
|
756
734
|
// Deduplicate tasks by tempId (LLM sometimes returns duplicates)
|
|
757
735
|
const seenTempIds = new Set();
|
|
758
736
|
const uniqueTasks = taskGraph.tasks.filter((task) => {
|
|
@@ -764,7 +742,6 @@ export class MessageInputComponent {
|
|
|
764
742
|
return true;
|
|
765
743
|
});
|
|
766
744
|
const uniqueTaskCount = uniqueTasks.length;
|
|
767
|
-
console.log(`Filtered to ${uniqueTaskCount} unique tasks (${taskCount - uniqueTaskCount} duplicates removed)`);
|
|
768
745
|
const isSingleTask = uniqueTaskCount === 1;
|
|
769
746
|
// If single task, use direct agent execution (existing pattern with great PubSub support)
|
|
770
747
|
if (isSingleTask) {
|
|
@@ -798,9 +775,9 @@ export class MessageInputComponent {
|
|
|
798
775
|
this.registeredCallbacks.set(taskExecutionMessage.ID, callback);
|
|
799
776
|
this.streamingService.registerMessageCallback(taskExecutionMessage.ID, callback);
|
|
800
777
|
try {
|
|
801
|
-
// Get environment ID
|
|
802
|
-
const environmentId =
|
|
803
|
-
// Get session ID for PubSub
|
|
778
|
+
// Get default environment ID (MJ standard environment used across all installations)
|
|
779
|
+
const environmentId = EnvironmentEntityExtended.DefaultEnvironmentID;
|
|
780
|
+
// Get session ID for PubSub subscriptions
|
|
804
781
|
const sessionId = GraphQLDataProvider.Instance.sessionId || '';
|
|
805
782
|
// Step 3: Call ExecuteTaskGraph mutation (links to taskExecutionMessage)
|
|
806
783
|
const mutation = `
|
|
@@ -831,16 +808,9 @@ export class MessageInputComponent {
|
|
|
831
808
|
createNotifications: true
|
|
832
809
|
};
|
|
833
810
|
const result = await GraphQLDataProvider.Instance.ExecuteGQL(mutation, variables);
|
|
834
|
-
console.log('📊 ExecuteTaskGraph result:', {
|
|
835
|
-
hasExecuteTaskGraph: !!result?.ExecuteTaskGraph,
|
|
836
|
-
success: result?.ExecuteTaskGraph?.success,
|
|
837
|
-
resultsCount: result?.ExecuteTaskGraph?.results?.length,
|
|
838
|
-
result: result
|
|
839
|
-
});
|
|
840
811
|
// Step 4: Update task execution message with results
|
|
841
812
|
// ExecuteGQL returns data directly (not wrapped in {data, errors})
|
|
842
813
|
if (result?.ExecuteTaskGraph?.success) {
|
|
843
|
-
console.log('✅ Task graph execution completed successfully');
|
|
844
814
|
await this.updateConversationDetail(taskExecutionMessage, `✅ **${workflowName}** completed successfully`, 'Complete');
|
|
845
815
|
}
|
|
846
816
|
else {
|
|
@@ -894,7 +864,7 @@ export class MessageInputComponent {
|
|
|
894
864
|
await this.updateConversationDetail(userMessage, userMessage.Message, 'Complete');
|
|
895
865
|
}
|
|
896
866
|
}
|
|
897
|
-
async updateConversationDetail(convoDetail, message, status,
|
|
867
|
+
async updateConversationDetail(convoDetail, message, status, result) {
|
|
898
868
|
// Mark as completing FIRST if status is Complete or Error
|
|
899
869
|
// This ensures task cleanup happens even if we return early due to guard clause
|
|
900
870
|
if (status === 'Complete' || status === 'Error') {
|
|
@@ -908,11 +878,18 @@ export class MessageInputComponent {
|
|
|
908
878
|
const maxAttempts = 2;
|
|
909
879
|
let attempts = 0, done = false;
|
|
910
880
|
while (attempts < maxAttempts && !done) {
|
|
881
|
+
// Set response form and command fields before saving
|
|
882
|
+
if (result?.responseForm) {
|
|
883
|
+
convoDetail.ResponseForm = JSON.stringify(result.responseForm);
|
|
884
|
+
}
|
|
885
|
+
if (result?.actionableCommands) {
|
|
886
|
+
convoDetail.ActionableCommands = JSON.stringify(result.actionableCommands);
|
|
887
|
+
}
|
|
888
|
+
if (result?.automaticCommands) {
|
|
889
|
+
convoDetail.AutomaticCommands = JSON.stringify(result.automaticCommands);
|
|
890
|
+
}
|
|
911
891
|
convoDetail.Message = message;
|
|
912
892
|
convoDetail.Status = status;
|
|
913
|
-
if (suggestedResponses !== undefined) {
|
|
914
|
-
convoDetail.SuggestedResponses = JSON.stringify(suggestedResponses);
|
|
915
|
-
}
|
|
916
893
|
await convoDetail.Save();
|
|
917
894
|
if (convoDetail.Message === message && convoDetail.Status === status) {
|
|
918
895
|
done = true;
|
|
@@ -1015,7 +992,7 @@ export class MessageInputComponent {
|
|
|
1015
992
|
// DO NOT remove here - allows UI to show task during entire execution
|
|
1016
993
|
if (agentResult && agentResult.success) {
|
|
1017
994
|
// Update message with result
|
|
1018
|
-
await this.updateConversationDetail(agentResponseMessage, agentResult.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', agentResult
|
|
995
|
+
await this.updateConversationDetail(agentResponseMessage, agentResult.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', agentResult);
|
|
1019
996
|
// Server created artifacts - emit event to trigger UI reload
|
|
1020
997
|
if (agentResult.payload && Object.keys(agentResult.payload).length > 0) {
|
|
1021
998
|
this.artifactCreated.emit({
|
|
@@ -1094,7 +1071,7 @@ export class MessageInputComponent {
|
|
|
1094
1071
|
if (subResult.agentRun.AgentID) {
|
|
1095
1072
|
agentResponseMessage.AgentID = subResult.agentRun.AgentID;
|
|
1096
1073
|
}
|
|
1097
|
-
await this.updateConversationDetail(agentResponseMessage, subResult.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', subResult
|
|
1074
|
+
await this.updateConversationDetail(agentResponseMessage, subResult.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', subResult);
|
|
1098
1075
|
// Server created artifacts - emit event to trigger UI reload
|
|
1099
1076
|
if (subResult.payload && Object.keys(subResult.payload).length > 0) {
|
|
1100
1077
|
this.artifactCreated.emit({
|
|
@@ -1125,7 +1102,7 @@ export class MessageInputComponent {
|
|
|
1125
1102
|
if (retryResult.agentRun.AgentID) {
|
|
1126
1103
|
agentResponseMessage.AgentID = retryResult.agentRun.AgentID;
|
|
1127
1104
|
}
|
|
1128
|
-
await this.updateConversationDetail(agentResponseMessage, retryResult.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete');
|
|
1105
|
+
await this.updateConversationDetail(agentResponseMessage, retryResult.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', retryResult);
|
|
1129
1106
|
// Server created artifacts - emit event to trigger UI reload
|
|
1130
1107
|
if (retryResult.payload && Object.keys(retryResult.payload).length > 0) {
|
|
1131
1108
|
this.artifactCreated.emit({
|
|
@@ -1320,7 +1297,8 @@ export class MessageInputComponent {
|
|
|
1320
1297
|
: { payload: null, artifactInfo: null };
|
|
1321
1298
|
// Invoke the agent directly
|
|
1322
1299
|
const result = await this.agentService.invokeSubAgent(agentName, conversationId, userMessage, this.conversationHistory, `User mentioned agent directly with @${agentName}`, agentResponseMessage.ID, previousPayload, // Pass previous payload for continuity
|
|
1323
|
-
this.createProgressCallback(agentResponseMessage, agentName), artifactInfo?.artifactId, artifactInfo?.versionId
|
|
1300
|
+
this.createProgressCallback(agentResponseMessage, agentName), artifactInfo?.artifactId, artifactInfo?.versionId, agentMention.configurationId // Pass configuration preset ID
|
|
1301
|
+
);
|
|
1324
1302
|
// Remove from active tasks
|
|
1325
1303
|
// Task removed in markMessageComplete() - this.activeTasks.remove(taskId);
|
|
1326
1304
|
if (result && result.success) {
|
|
@@ -1340,7 +1318,7 @@ export class MessageInputComponent {
|
|
|
1340
1318
|
}
|
|
1341
1319
|
// Stage 3: Normal chat response
|
|
1342
1320
|
else {
|
|
1343
|
-
await this.updateConversationDetail(agentResponseMessage, result.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', result
|
|
1321
|
+
await this.updateConversationDetail(agentResponseMessage, result.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', result);
|
|
1344
1322
|
// Server created artifacts - emit event to trigger UI reload
|
|
1345
1323
|
if (result.payload && Object.keys(result.payload).length > 0) {
|
|
1346
1324
|
this.artifactCreated.emit({
|
|
@@ -1391,9 +1369,9 @@ export class MessageInputComponent {
|
|
|
1391
1369
|
const agentName = agent.Name || 'Agent';
|
|
1392
1370
|
let previousPayload = null;
|
|
1393
1371
|
let previousArtifactInfo = null;
|
|
1372
|
+
let previousConfigurationId = undefined;
|
|
1394
1373
|
// Use targetArtifactVersionId if specified (from intent check)
|
|
1395
1374
|
if (targetArtifactVersionId) {
|
|
1396
|
-
console.log('🎯 Using target artifact version from intent check:', targetArtifactVersionId);
|
|
1397
1375
|
// Find the artifact in pre-loaded data (check both user-visible and system artifacts)
|
|
1398
1376
|
for (const [detailId, artifacts] of (this.artifactsByDetailId?.entries() || [])) {
|
|
1399
1377
|
const targetArtifact = artifacts.find(a => a.artifactVersionId === targetArtifactVersionId);
|
|
@@ -1442,39 +1420,48 @@ export class MessageInputComponent {
|
|
|
1442
1420
|
}
|
|
1443
1421
|
}
|
|
1444
1422
|
}
|
|
1423
|
+
// Find the last AI message from this agent (needed for both payload and configuration)
|
|
1424
|
+
const lastAIMessage = this.conversationHistory
|
|
1425
|
+
.slice()
|
|
1426
|
+
.reverse()
|
|
1427
|
+
.find(msg => msg.Role === 'AI' && msg.AgentID === agentId);
|
|
1428
|
+
// Extract configuration from previous agent run (for configuration continuity)
|
|
1429
|
+
if (lastAIMessage && this.agentRunsByDetailId) {
|
|
1430
|
+
const previousAgentRun = this.agentRunsByDetailId.get(lastAIMessage.ID);
|
|
1431
|
+
if (previousAgentRun?.ConfigurationID) {
|
|
1432
|
+
previousConfigurationId = previousAgentRun.ConfigurationID;
|
|
1433
|
+
console.log(`🎯 Using configuration from previous agent run: ${previousConfigurationId}`);
|
|
1434
|
+
}
|
|
1435
|
+
else {
|
|
1436
|
+
console.log('📝 No configuration found on previous agent run, will use agent default');
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1445
1439
|
// Fall back to most recent artifact if no target specified or target not found
|
|
1446
|
-
if (!previousPayload) {
|
|
1440
|
+
if (!previousPayload && lastAIMessage) {
|
|
1447
1441
|
console.log('📦 Using most recent artifact from last agent message');
|
|
1448
|
-
//
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
.
|
|
1452
|
-
|
|
1453
|
-
if (
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
previousArtifactInfo = {
|
|
1467
|
-
artifactId: artifact.artifactId,
|
|
1468
|
-
versionId: artifact.artifactVersionId,
|
|
1469
|
-
versionNumber: artifact.versionNumber
|
|
1470
|
-
};
|
|
1471
|
-
console.log('📦 Loaded most recent artifact as payload', previousArtifactInfo);
|
|
1472
|
-
}
|
|
1473
|
-
}
|
|
1474
|
-
catch (error) {
|
|
1475
|
-
console.warn('⚠️ Could not parse artifact content:', error);
|
|
1442
|
+
// Get artifacts from pre-loaded data (check both user-visible and system artifacts)
|
|
1443
|
+
let artifacts = this.artifactsByDetailId?.get(lastAIMessage.ID);
|
|
1444
|
+
if (!artifacts || artifacts.length === 0) {
|
|
1445
|
+
artifacts = this.systemArtifactsByDetailId?.get(lastAIMessage.ID);
|
|
1446
|
+
}
|
|
1447
|
+
if (artifacts && artifacts.length > 0) {
|
|
1448
|
+
try {
|
|
1449
|
+
// Use the first artifact (should only be one OUTPUT per message)
|
|
1450
|
+
const artifact = artifacts[0];
|
|
1451
|
+
const version = await artifact.getVersion();
|
|
1452
|
+
if (version.Content) {
|
|
1453
|
+
previousPayload = JSON.parse(version.Content);
|
|
1454
|
+
previousArtifactInfo = {
|
|
1455
|
+
artifactId: artifact.artifactId,
|
|
1456
|
+
versionId: artifact.artifactVersionId,
|
|
1457
|
+
versionNumber: artifact.versionNumber
|
|
1458
|
+
};
|
|
1459
|
+
console.log('📦 Loaded most recent artifact as payload', previousArtifactInfo);
|
|
1476
1460
|
}
|
|
1477
1461
|
}
|
|
1462
|
+
catch (error) {
|
|
1463
|
+
console.warn('⚠️ Could not parse artifact content:', error);
|
|
1464
|
+
}
|
|
1478
1465
|
}
|
|
1479
1466
|
}
|
|
1480
1467
|
// Add agent to active tasks
|
|
@@ -1507,12 +1494,13 @@ export class MessageInputComponent {
|
|
|
1507
1494
|
this.messageSent.emit(agentResponseMessage);
|
|
1508
1495
|
// Invoke the agent directly (continuation) with previous payload if available
|
|
1509
1496
|
const result = await this.agentService.invokeSubAgent(agentName, conversationId, userMessage, this.conversationHistory, 'Continuing previous conversation with user', agentResponseMessage.ID, previousPayload, // Pass previous OUTPUT artifact payload for continuity
|
|
1510
|
-
this.createProgressCallback(agentResponseMessage, agentName), previousArtifactInfo?.artifactId, previousArtifactInfo?.versionId
|
|
1497
|
+
this.createProgressCallback(agentResponseMessage, agentName), previousArtifactInfo?.artifactId, previousArtifactInfo?.versionId, previousConfigurationId // Pass configuration from previous agent run for continuity
|
|
1498
|
+
);
|
|
1511
1499
|
// Remove from active tasks
|
|
1512
1500
|
// Task removed in markMessageComplete() - this.activeTasks.remove(taskId);
|
|
1513
1501
|
if (result && result.success) {
|
|
1514
1502
|
// Update the response message with agent result
|
|
1515
|
-
await this.updateConversationDetail(agentResponseMessage, result.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', result
|
|
1503
|
+
await this.updateConversationDetail(agentResponseMessage, result.agentRun?.Message || `✅ **${agentName}** completed`, 'Complete', result);
|
|
1516
1504
|
// Server created artifacts (handles versioning) - emit event to trigger UI reload
|
|
1517
1505
|
if (result.payload && Object.keys(result.payload).length > 0) {
|
|
1518
1506
|
this.artifactCreated.emit({
|
|
@@ -1550,7 +1538,6 @@ export class MessageInputComponent {
|
|
|
1550
1538
|
*/
|
|
1551
1539
|
async nameConversation(message) {
|
|
1552
1540
|
try {
|
|
1553
|
-
console.log('🏷️ Naming conversation based on first message...');
|
|
1554
1541
|
// Load the Name Conversation prompt to get its ID
|
|
1555
1542
|
await AIEngineBase.Instance.Config(false);
|
|
1556
1543
|
const p = AIEngineBase.Instance.Prompts.find(pr => pr.Name === 'Name Conversation');
|
|
@@ -1577,10 +1564,8 @@ export class MessageInputComponent {
|
|
|
1577
1564
|
if (parsed) {
|
|
1578
1565
|
const { name, description } = parsed;
|
|
1579
1566
|
if (name) {
|
|
1580
|
-
console.log('✅ Generated conversation name:', { name, description });
|
|
1581
1567
|
// Update the conversation name and description in database AND state immediately
|
|
1582
1568
|
await this.conversationState.saveConversation(this.conversationId, { Name: name, Description: description || '' }, this.currentUser);
|
|
1583
|
-
console.log('💾 Conversation name updated in database and UI');
|
|
1584
1569
|
// Emit event for animation in conversation list
|
|
1585
1570
|
this.conversationRenamed.emit({
|
|
1586
1571
|
conversationId: this.conversationId,
|
|
@@ -1632,7 +1617,7 @@ export class MessageInputComponent {
|
|
|
1632
1617
|
// Emit completion event to parent so it can refresh agent run data
|
|
1633
1618
|
this.messageComplete.emit({
|
|
1634
1619
|
conversationDetailId: conversationDetail.ID,
|
|
1635
|
-
|
|
1620
|
+
agentId: conversationDetail.AgentID || undefined
|
|
1636
1621
|
});
|
|
1637
1622
|
}
|
|
1638
1623
|
/**
|