@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
|
@@ -28,7 +28,6 @@ export class ConversationStreamingService {
|
|
|
28
28
|
constructor(activeTasks, dataCache) {
|
|
29
29
|
this.activeTasks = activeTasks;
|
|
30
30
|
this.dataCache = dataCache;
|
|
31
|
-
console.log('[ConversationStreamingService] Service created');
|
|
32
31
|
}
|
|
33
32
|
/**
|
|
34
33
|
* Initialize the global PubSub subscription.
|
|
@@ -36,10 +35,8 @@ export class ConversationStreamingService {
|
|
|
36
35
|
*/
|
|
37
36
|
initialize() {
|
|
38
37
|
if (this.initialized) {
|
|
39
|
-
console.log('[ConversationStreamingService] Already initialized, skipping');
|
|
40
38
|
return;
|
|
41
39
|
}
|
|
42
|
-
console.log('[ConversationStreamingService] Initializing global PubSub subscription...');
|
|
43
40
|
try {
|
|
44
41
|
const dataProvider = GraphQLDataProvider.Instance;
|
|
45
42
|
const sessionId = dataProvider.sessionId || dataProvider._sessionId;
|
|
@@ -53,14 +50,12 @@ export class ConversationStreamingService {
|
|
|
53
50
|
this.scheduleReconnection();
|
|
54
51
|
},
|
|
55
52
|
complete: () => {
|
|
56
|
-
console.log('[ConversationStreamingService] PubSub connection closed');
|
|
57
53
|
this.connectionStatus$.next('disconnected');
|
|
58
54
|
this.scheduleReconnection();
|
|
59
55
|
}
|
|
60
56
|
});
|
|
61
57
|
this.initialized = true;
|
|
62
58
|
this.connectionStatus$.next('connected');
|
|
63
|
-
console.log('[ConversationStreamingService] Successfully initialized');
|
|
64
59
|
}
|
|
65
60
|
catch (error) {
|
|
66
61
|
console.error('[ConversationStreamingService] Failed to initialize:', error);
|
|
@@ -91,7 +86,6 @@ export class ConversationStreamingService {
|
|
|
91
86
|
const existing = this.callbackRegistry.get(conversationDetailId) || [];
|
|
92
87
|
existing.push(callback);
|
|
93
88
|
this.callbackRegistry.set(conversationDetailId, existing);
|
|
94
|
-
console.log(`[ConversationStreamingService] Registered callback for message ${conversationDetailId} (total callbacks: ${existing.length})`);
|
|
95
89
|
}
|
|
96
90
|
/**
|
|
97
91
|
* Unregister a callback for a specific conversation detail.
|
|
@@ -107,11 +101,9 @@ export class ConversationStreamingService {
|
|
|
107
101
|
const filtered = existing.filter(cb => cb !== callback);
|
|
108
102
|
if (filtered.length > 0) {
|
|
109
103
|
this.callbackRegistry.set(conversationDetailId, filtered);
|
|
110
|
-
console.log(`[ConversationStreamingService] Unregistered specific callback for message ${conversationDetailId} (remaining: ${filtered.length})`);
|
|
111
104
|
}
|
|
112
105
|
else {
|
|
113
106
|
this.callbackRegistry.delete(conversationDetailId);
|
|
114
|
-
console.log(`[ConversationStreamingService] Unregistered last callback for message ${conversationDetailId}`);
|
|
115
107
|
}
|
|
116
108
|
}
|
|
117
109
|
else {
|
|
@@ -119,7 +111,7 @@ export class ConversationStreamingService {
|
|
|
119
111
|
const hadCallbacks = this.callbackRegistry.has(conversationDetailId);
|
|
120
112
|
this.callbackRegistry.delete(conversationDetailId);
|
|
121
113
|
if (hadCallbacks) {
|
|
122
|
-
console.log(`[ConversationStreamingService] Unregistered all callbacks for message ${conversationDetailId}`);
|
|
114
|
+
// console.log(`[ConversationStreamingService] Unregistered all callbacks for message ${conversationDetailId}`);
|
|
123
115
|
}
|
|
124
116
|
}
|
|
125
117
|
}
|
|
@@ -175,12 +167,12 @@ export class ConversationStreamingService {
|
|
|
175
167
|
try {
|
|
176
168
|
// Extract progress information from status object
|
|
177
169
|
const { taskName, message, percentComplete, metadata, conversationDetailId } = statusObj.data || {};
|
|
178
|
-
console.log(`[ConversationStreamingService] 📥 Received progress update:`, {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
});
|
|
170
|
+
// console.log(`[ConversationStreamingService] 📥 Received progress update:`, {
|
|
171
|
+
// taskName,
|
|
172
|
+
// hasMessage: !!message,
|
|
173
|
+
// conversationDetailId,
|
|
174
|
+
// registeredCallbacks: Array.from(this.callbackRegistry.keys())
|
|
175
|
+
// });
|
|
184
176
|
if (!message) {
|
|
185
177
|
console.warn('[ConversationStreamingService] ⚠️ No message content in progress update');
|
|
186
178
|
return; // No message content to update
|
|
@@ -215,7 +207,7 @@ export class ConversationStreamingService {
|
|
|
215
207
|
// Continue with other callbacks even if one fails
|
|
216
208
|
}
|
|
217
209
|
}
|
|
218
|
-
console.log(`[ConversationStreamingService] ✅ Routed progress update to message ${conversationDetailId} (${callbacks.length} callback(s))`);
|
|
210
|
+
// console.log(`[ConversationStreamingService] ✅ Routed progress update to message ${conversationDetailId} (${callbacks.length} callback(s))`);
|
|
219
211
|
}
|
|
220
212
|
catch (error) {
|
|
221
213
|
console.error('[ConversationStreamingService] Error routing task progress:', error);
|
|
@@ -232,12 +224,7 @@ export class ConversationStreamingService {
|
|
|
232
224
|
const conversationDetailId = agentRun?.ConversationDetailID;
|
|
233
225
|
const message = progress?.message;
|
|
234
226
|
const percentComplete = progress?.percentage;
|
|
235
|
-
|
|
236
|
-
agentName: agentRun?.Agent,
|
|
237
|
-
hasMessage: !!message,
|
|
238
|
-
conversationDetailId,
|
|
239
|
-
registeredCallbacks: Array.from(this.callbackRegistry.keys())
|
|
240
|
-
});
|
|
227
|
+
const stepCount = progress?.stepCount;
|
|
241
228
|
if (!message) {
|
|
242
229
|
console.warn('[ConversationStreamingService] ⚠️ No message content in agent progress update');
|
|
243
230
|
return;
|
|
@@ -258,7 +245,8 @@ export class ConversationStreamingService {
|
|
|
258
245
|
percentComplete,
|
|
259
246
|
taskName: agentRun?.Agent || 'Agent',
|
|
260
247
|
conversationDetailId,
|
|
261
|
-
metadata: { agentRun, progress }
|
|
248
|
+
metadata: { agentRun, progress },
|
|
249
|
+
stepCount
|
|
262
250
|
};
|
|
263
251
|
// Invoke all registered callbacks for this specific message
|
|
264
252
|
for (const callback of callbacks) {
|
|
@@ -270,7 +258,6 @@ export class ConversationStreamingService {
|
|
|
270
258
|
// Continue with other callbacks even if one fails
|
|
271
259
|
}
|
|
272
260
|
}
|
|
273
|
-
console.log(`[ConversationStreamingService] ✅ Routed agent progress to message ${conversationDetailId} (${callbacks.length} callback(s))`);
|
|
274
261
|
}
|
|
275
262
|
catch (error) {
|
|
276
263
|
console.error('[ConversationStreamingService] Error routing agent progress:', error);
|
|
@@ -283,7 +270,6 @@ export class ConversationStreamingService {
|
|
|
283
270
|
if (this.reconnectionTimeout) {
|
|
284
271
|
clearTimeout(this.reconnectionTimeout);
|
|
285
272
|
}
|
|
286
|
-
console.log('[ConversationStreamingService] Scheduling reconnection in 5 seconds...');
|
|
287
273
|
this.connectionStatus$.next('reconnecting');
|
|
288
274
|
this.reconnectionTimeout = setTimeout(() => {
|
|
289
275
|
console.log('[ConversationStreamingService] Attempting to reconnect...');
|
|
@@ -295,7 +281,6 @@ export class ConversationStreamingService {
|
|
|
295
281
|
* Cleanup when service is destroyed
|
|
296
282
|
*/
|
|
297
283
|
ngOnDestroy() {
|
|
298
|
-
console.log('[ConversationStreamingService] Service destroying, cleaning up...');
|
|
299
284
|
if (this.reconnectionTimeout) {
|
|
300
285
|
clearTimeout(this.reconnectionTimeout);
|
|
301
286
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-streaming.service.js","sourceRoot":"","sources":["../../../src/lib/services/conversation-streaming.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,eAAe,EAAgC,MAAM,MAAM,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"conversation-streaming.service.js","sourceRoot":"","sources":["../../../src/lib/services/conversation-streaming.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,18 @@ export declare class DataCacheService {
|
|
|
72
72
|
* @param id The conversation detail ID to remove
|
|
73
73
|
*/
|
|
74
74
|
removeConversationDetail(id: string): void;
|
|
75
|
+
/**
|
|
76
|
+
* Refresh entity data by clearing cached entities of a specific type
|
|
77
|
+
* This forces a reload from the database on next access
|
|
78
|
+
* @param entityName The entity name to refresh (e.g., 'Conversations', 'Conversation Details')
|
|
79
|
+
*/
|
|
80
|
+
refreshEntity(entityName: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Refresh a specific cache by name
|
|
83
|
+
* This method can be extended to handle different cache types
|
|
84
|
+
* @param cacheName The cache name ('Core', 'AI', 'Actions')
|
|
85
|
+
*/
|
|
86
|
+
refreshCache(cacheName: 'Core' | 'AI' | 'Actions'): Promise<void>;
|
|
75
87
|
/**
|
|
76
88
|
* Clear all cached entities
|
|
77
89
|
* Call when switching environments, users, or when needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-cache.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/data-cache.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAY,QAAQ,EAAc,MAAM,sBAAsB,CAAC;;AAEtE;;;;;;;;;GASG;AACH,qBAGa,gBAAgB;IAE3B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,mBAAmB,CAAkC;;IAQ7D;;;;;OAKG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAqB5F;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY5E;;;OAGG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIpC;;;OAGG;IACH,sBAAsB,IAAI,kBAAkB,EAAE;IAQ9C;;;;;OAKG;IACG,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAqBxG;;;;;OAKG;IACG,wBAAwB,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAexF;;;;;;OAMG;IACG,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAyCjH;;;;OAIG;IACH,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAIhF;;;OAGG;IACH,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ1C;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAK/C;;;OAGG;IACH,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"data-cache.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/data-cache.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAY,QAAQ,EAAc,MAAM,sBAAsB,CAAC;;AAEtE;;;;;;;;;GASG;AACH,qBAGa,gBAAgB;IAE3B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,mBAAmB,CAAkC;;IAQ7D;;;;;OAKG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAqB5F;;;;;OAKG;IACG,kBAAkB,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAY5E;;;OAGG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIpC;;;OAGG;IACH,sBAAsB,IAAI,kBAAkB,EAAE;IAQ9C;;;;;OAKG;IACG,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAqBxG;;;;;OAKG;IACG,wBAAwB,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAexF;;;;;;OAMG;IACG,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAyCjH;;;;OAIG;IACH,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAIhF;;;OAGG;IACH,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ1C;;;;OAIG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatD;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvE;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAK/C;;;OAGG;IACH,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE;yCAlQvD,gBAAgB;6CAAhB,gBAAgB;CAwQ5B"}
|
|
@@ -170,6 +170,47 @@ export class DataCacheService {
|
|
|
170
170
|
// =============================================================================
|
|
171
171
|
// Cache Management
|
|
172
172
|
// =============================================================================
|
|
173
|
+
/**
|
|
174
|
+
* Refresh entity data by clearing cached entities of a specific type
|
|
175
|
+
* This forces a reload from the database on next access
|
|
176
|
+
* @param entityName The entity name to refresh (e.g., 'Conversations', 'Conversation Details')
|
|
177
|
+
*/
|
|
178
|
+
async refreshEntity(entityName) {
|
|
179
|
+
switch (entityName) {
|
|
180
|
+
case 'Conversations':
|
|
181
|
+
this.conversations = [];
|
|
182
|
+
break;
|
|
183
|
+
case 'Conversation Details':
|
|
184
|
+
this.conversationDetails = [];
|
|
185
|
+
break;
|
|
186
|
+
default:
|
|
187
|
+
console.warn('Unknown entity name for refresh:', entityName);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Refresh a specific cache by name
|
|
192
|
+
* This method can be extended to handle different cache types
|
|
193
|
+
* @param cacheName The cache name ('Core', 'AI', 'Actions')
|
|
194
|
+
*/
|
|
195
|
+
async refreshCache(cacheName) {
|
|
196
|
+
switch (cacheName) {
|
|
197
|
+
case 'Core':
|
|
198
|
+
// Clear core entity caches
|
|
199
|
+
this.clear();
|
|
200
|
+
break;
|
|
201
|
+
case 'AI':
|
|
202
|
+
// AI-specific cache refresh would go here
|
|
203
|
+
// For now, just log it
|
|
204
|
+
console.log('AI cache refresh requested (not yet implemented)');
|
|
205
|
+
break;
|
|
206
|
+
case 'Actions':
|
|
207
|
+
// Actions-specific cache refresh would go here
|
|
208
|
+
console.log('Actions cache refresh requested (not yet implemented)');
|
|
209
|
+
break;
|
|
210
|
+
default:
|
|
211
|
+
console.warn('Unknown cache name for refresh:', cacheName);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
173
214
|
/**
|
|
174
215
|
* Clear all cached entities
|
|
175
216
|
* Call when switching environments, users, or when needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-cache.service.js","sourceRoot":"","sources":["../../../src/lib/services/data-cache.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;;AAEtE;;;;;;;;;GASG;AAIH,MAAM,OAAO,gBAAgB;IAC3B,uCAAuC;IAC/B,aAAa,GAAyB,EAAE,CAAC;IACzC,mBAAmB,GAA+B,EAAE,CAAC;IAE7D,gBAAe,CAAC;IAEhB,gFAAgF;IAChF,6BAA6B;IAC7B,gFAAgF;IAEhF;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,WAAqB;QACrD,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,8BAA8B;QAC9B,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,eAAe,CAAqB,eAAe,EAAE,WAAW,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,MAAM,EAAE,CAAC;YACX,eAAe;YACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAqB;QAC5C,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,eAAe,CAAqB,eAAe,EAAE,WAAW,CAAC,CAAC;QAEhG,qEAAqE;QACrE,wEAAwE;QACxE,yFAAyF;QACzF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,EAAU;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,gFAAgF;IAChF,mCAAmC;IACnC,gFAAgF;IAEhF;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,EAAU,EAAE,WAAqB;QAC3D,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,8BAA8B;QAC9B,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAA2B,sBAAsB,EAAE,WAAW,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACX,eAAe;YACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,wBAAwB,CAAC,WAAqB;QAClD,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAA2B,sBAAsB,EAAE,WAAW,CAAC,CAAC;QAEvG,qEAAqE;QACrE,kEAAkE;QAClE,+FAA+F;QAE/F,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA,CAAC,uJAAuJ;QAE7K,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,cAAsB,EAAE,WAAqB;QACzE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,qFAAqF,cAAc,EAAE,CAAC,CAAC;QAEhI,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,oEAAoE,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAC7B;YACE,UAAU,EAAE,sBAAsB;YAClC,WAAW,EAAE,mBAAmB,cAAc,GAAG;YACjD,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,eAAe;SAC5B,EACD,WAAW,CACZ,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,kCAAkC,OAAO,CAAC,MAAM,gCAAgC,cAAc,EAAE,CAAC,CAAC;YAE3H,qDAAqD;YACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oBACvB,+DAA+D;oBAC/D,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,UAAU;oBACV,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,oEAAoE,cAAc,EAAE,CAAC,CAAC;QAC/G,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACH,4BAA4B,CAAC,cAAsB;QACjD,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,EAAU;QACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,gFAAgF;IAChF,mBAAmB;IACnB,gFAAgF;IAEhF;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,cAAsB;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;QAC7E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;IACvG,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;YACxC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM;SACrD,CAAC;IACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"data-cache.service.js","sourceRoot":"","sources":["../../../src/lib/services/data-cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,15 @@ import { UserInfo } from '@memberjunction/core';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
6
|
* Service for parsing @mentions from message text
|
|
7
|
+
* Supports both JSON format and legacy text format
|
|
7
8
|
*/
|
|
8
9
|
export declare class MentionParserService {
|
|
9
|
-
private readonly
|
|
10
|
+
private readonly JSON_MENTION_REGEX;
|
|
11
|
+
private readonly LEGACY_MENTION_REGEX;
|
|
10
12
|
constructor();
|
|
11
13
|
/**
|
|
12
14
|
* Parse mentions from message text
|
|
15
|
+
* Supports both JSON format (@{type:"agent",id:"uuid",...}) and legacy text format (@AgentName)
|
|
13
16
|
* @param text The message text to parse
|
|
14
17
|
* @param availableAgents List of available agents for matching
|
|
15
18
|
* @param availableUsers List of available users for matching (optional)
|
|
@@ -29,10 +32,12 @@ export declare class MentionParserService {
|
|
|
29
32
|
/**
|
|
30
33
|
* Validate mentions - check if all mentions are valid
|
|
31
34
|
* Returns array of invalid mention names
|
|
35
|
+
* Supports both JSON and legacy mention formats
|
|
32
36
|
*/
|
|
33
37
|
validateMentions(text: string, availableAgents: AIAgentEntityExtended[], availableUsers?: UserInfo[]): string[];
|
|
34
38
|
/**
|
|
35
39
|
* Extract all mention names from text (raw strings)
|
|
40
|
+
* Supports both JSON and legacy mention formats
|
|
36
41
|
*/
|
|
37
42
|
extractMentionNames(text: string): string[];
|
|
38
43
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention-parser.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/mention-parser.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAEhD
|
|
1
|
+
{"version":3,"file":"mention-parser.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/mention-parser.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAEhD;;;GAGG;AACH,qBAGa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IAEpD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAwB;;IAI7D;;;;;;;OAOG;IACH,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,qBAAqB,EAAE,EACxC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAC1B,kBAAkB;IA8ErB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAwBjB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;;OAIG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,qBAAqB,EAAE,EACxC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAC1B,MAAM,EAAE;IAgDX;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAoB3C;;;OAGG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM;yCA5OE,oBAAoB;6CAApB,oBAAoB;CA6PhC"}
|
|
@@ -2,13 +2,17 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
4
|
* Service for parsing @mentions from message text
|
|
5
|
+
* Supports both JSON format and legacy text format
|
|
5
6
|
*/
|
|
6
7
|
export class MentionParserService {
|
|
7
|
-
// Regex to match
|
|
8
|
-
|
|
8
|
+
// Regex to match JSON mentions: @{type:"agent",id:"uuid",name:"Name",configId:"uuid",config:"High"}
|
|
9
|
+
JSON_MENTION_REGEX = /@\{[^}]+\}/g;
|
|
10
|
+
// Regex to match legacy @mentions - supports names with spaces if quoted: @"Agent Name" or @AgentName
|
|
11
|
+
LEGACY_MENTION_REGEX = /@"([^"]+)"|@(\S+)/g;
|
|
9
12
|
constructor() { }
|
|
10
13
|
/**
|
|
11
14
|
* Parse mentions from message text
|
|
15
|
+
* Supports both JSON format (@{type:"agent",id:"uuid",...}) and legacy text format (@AgentName)
|
|
12
16
|
* @param text The message text to parse
|
|
13
17
|
* @param availableAgents List of available agents for matching
|
|
14
18
|
* @param availableUsers List of available users for matching (optional)
|
|
@@ -16,31 +20,60 @@ export class MentionParserService {
|
|
|
16
20
|
*/
|
|
17
21
|
parseMentions(text, availableAgents, availableUsers) {
|
|
18
22
|
const mentions = [];
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
// First, try to parse JSON mentions (new format)
|
|
24
|
+
const jsonMatches = Array.from(text.matchAll(this.JSON_MENTION_REGEX));
|
|
25
|
+
for (const match of jsonMatches) {
|
|
26
|
+
try {
|
|
27
|
+
// Extract JSON string (remove @ prefix)
|
|
28
|
+
const jsonStr = match[0].substring(1); // Remove '@'
|
|
29
|
+
const mentionData = JSON.parse(jsonStr);
|
|
30
|
+
// Validate required fields
|
|
31
|
+
if (mentionData.type && mentionData.id && mentionData.name) {
|
|
32
|
+
const mention = {
|
|
33
|
+
type: mentionData.type,
|
|
34
|
+
id: mentionData.id,
|
|
35
|
+
name: mentionData.name
|
|
36
|
+
};
|
|
37
|
+
// Add configuration if present (for agents)
|
|
38
|
+
if (mentionData.configId) {
|
|
39
|
+
mention.configurationId = mentionData.configId;
|
|
40
|
+
}
|
|
41
|
+
mentions.push(mention);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.warn('Failed to parse JSON mention:', match[0], error);
|
|
46
|
+
// Continue to next match
|
|
34
47
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
48
|
+
}
|
|
49
|
+
// If no JSON mentions found, fall back to legacy text format
|
|
50
|
+
if (mentions.length === 0) {
|
|
51
|
+
const legacyMatches = Array.from(text.matchAll(this.LEGACY_MENTION_REGEX));
|
|
52
|
+
for (const match of legacyMatches) {
|
|
53
|
+
// Extract the mention name (either quoted or unquoted)
|
|
54
|
+
const mentionName = match[1] || match[2];
|
|
55
|
+
if (!mentionName)
|
|
56
|
+
continue;
|
|
57
|
+
// Try to match against agents first
|
|
58
|
+
const agent = this.findAgent(mentionName, availableAgents);
|
|
59
|
+
if (agent) {
|
|
39
60
|
mentions.push({
|
|
40
|
-
type: '
|
|
41
|
-
id:
|
|
42
|
-
name:
|
|
61
|
+
type: 'agent',
|
|
62
|
+
id: agent.ID,
|
|
63
|
+
name: agent.Name || 'Unknown'
|
|
43
64
|
});
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
// Try to match against users
|
|
68
|
+
if (availableUsers) {
|
|
69
|
+
const user = this.findUser(mentionName, availableUsers);
|
|
70
|
+
if (user) {
|
|
71
|
+
mentions.push({
|
|
72
|
+
type: 'user',
|
|
73
|
+
id: user.ID,
|
|
74
|
+
name: user.Name
|
|
75
|
+
});
|
|
76
|
+
}
|
|
44
77
|
}
|
|
45
78
|
}
|
|
46
79
|
}
|
|
@@ -98,27 +131,74 @@ export class MentionParserService {
|
|
|
98
131
|
/**
|
|
99
132
|
* Validate mentions - check if all mentions are valid
|
|
100
133
|
* Returns array of invalid mention names
|
|
134
|
+
* Supports both JSON and legacy mention formats
|
|
101
135
|
*/
|
|
102
136
|
validateMentions(text, availableAgents, availableUsers) {
|
|
103
137
|
const invalidMentions = [];
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
138
|
+
// Check JSON mentions first
|
|
139
|
+
const jsonMatches = Array.from(text.matchAll(this.JSON_MENTION_REGEX));
|
|
140
|
+
if (jsonMatches.length > 0) {
|
|
141
|
+
for (const match of jsonMatches) {
|
|
142
|
+
try {
|
|
143
|
+
const jsonStr = match[0].substring(1);
|
|
144
|
+
const mentionData = JSON.parse(jsonStr);
|
|
145
|
+
const mentionName = mentionData.name;
|
|
146
|
+
if (mentionData.type === 'agent') {
|
|
147
|
+
const isAgent = this.findAgent(mentionName, availableAgents) !== null;
|
|
148
|
+
if (!isAgent) {
|
|
149
|
+
invalidMentions.push(mentionName);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else if (mentionData.type === 'user') {
|
|
153
|
+
const isUser = availableUsers ? this.findUser(mentionName, availableUsers) !== null : false;
|
|
154
|
+
if (!isUser) {
|
|
155
|
+
invalidMentions.push(mentionName);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
// Invalid JSON mention
|
|
161
|
+
invalidMentions.push(match[0]);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// Fall back to legacy format
|
|
167
|
+
const matches = Array.from(text.matchAll(this.LEGACY_MENTION_REGEX));
|
|
168
|
+
for (const match of matches) {
|
|
169
|
+
const mentionName = match[1] || match[2];
|
|
170
|
+
if (!mentionName)
|
|
171
|
+
continue;
|
|
172
|
+
const isAgent = this.findAgent(mentionName, availableAgents) !== null;
|
|
173
|
+
const isUser = availableUsers ? this.findUser(mentionName, availableUsers) !== null : false;
|
|
174
|
+
if (!isAgent && !isUser) {
|
|
175
|
+
invalidMentions.push(mentionName);
|
|
176
|
+
}
|
|
113
177
|
}
|
|
114
178
|
}
|
|
115
179
|
return invalidMentions;
|
|
116
180
|
}
|
|
117
181
|
/**
|
|
118
182
|
* Extract all mention names from text (raw strings)
|
|
183
|
+
* Supports both JSON and legacy mention formats
|
|
119
184
|
*/
|
|
120
185
|
extractMentionNames(text) {
|
|
121
|
-
|
|
186
|
+
// Check JSON mentions first
|
|
187
|
+
const jsonMatches = Array.from(text.matchAll(this.JSON_MENTION_REGEX));
|
|
188
|
+
if (jsonMatches.length > 0) {
|
|
189
|
+
return jsonMatches.map(match => {
|
|
190
|
+
try {
|
|
191
|
+
const jsonStr = match[0].substring(1);
|
|
192
|
+
const mentionData = JSON.parse(jsonStr);
|
|
193
|
+
return mentionData.name;
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
return '';
|
|
197
|
+
}
|
|
198
|
+
}).filter(Boolean);
|
|
199
|
+
}
|
|
200
|
+
// Fall back to legacy format
|
|
201
|
+
const matches = Array.from(text.matchAll(this.LEGACY_MENTION_REGEX));
|
|
122
202
|
return matches.map(match => match[1] || match[2]).filter(Boolean);
|
|
123
203
|
}
|
|
124
204
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention-parser.service.js","sourceRoot":"","sources":["../../../src/lib/services/mention-parser.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAK3C
|
|
1
|
+
{"version":3,"file":"mention-parser.service.js","sourceRoot":"","sources":["../../../src/lib/services/mention-parser.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { ActionableCommand, AutomaticCommand } from '@memberjunction/ai-core-plus';
|
|
3
|
+
import { DataCacheService } from './data-cache.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Service for handling UI commands from agents
|
|
7
|
+
* Emits events for commands to be handled by the host application
|
|
8
|
+
* This allows the generic conversations package to remain app-agnostic
|
|
9
|
+
*/
|
|
10
|
+
export declare class UICommandHandlerService {
|
|
11
|
+
private dataCacheService;
|
|
12
|
+
/**
|
|
13
|
+
* Event emitted when an actionable command should be executed
|
|
14
|
+
* Host application should subscribe to this and handle the command appropriately
|
|
15
|
+
*/
|
|
16
|
+
actionableCommandRequested: EventEmitter<ActionableCommand>;
|
|
17
|
+
/**
|
|
18
|
+
* Event emitted when an automatic command should be executed
|
|
19
|
+
* Host application should subscribe to this and handle the command appropriately
|
|
20
|
+
*/
|
|
21
|
+
automaticCommandRequested: EventEmitter<AutomaticCommand>;
|
|
22
|
+
constructor(dataCacheService: DataCacheService);
|
|
23
|
+
/**
|
|
24
|
+
* Execute an actionable command (triggered by user clicking a button)
|
|
25
|
+
* Emits the command for the host application to handle
|
|
26
|
+
*/
|
|
27
|
+
executeActionableCommand(command: ActionableCommand): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Execute an automatic command (runs immediately without user interaction)
|
|
30
|
+
* Special handling: refresh:data commands execute locally, others emit to host
|
|
31
|
+
*/
|
|
32
|
+
executeAutomaticCommand(command: AutomaticCommand): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Execute all automatic commands from an agent result
|
|
35
|
+
*/
|
|
36
|
+
executeAutomaticCommands(commands: AutomaticCommand[]): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Handle refreshing data (entity data or caches)
|
|
39
|
+
* This is handled locally as it's a generic operation that doesn't require host app knowledge
|
|
40
|
+
*/
|
|
41
|
+
private handleRefreshData;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UICommandHandlerService, never>;
|
|
43
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UICommandHandlerService>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ui-command-handler.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-command-handler.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/ui-command-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAsB,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;;AAExD;;;;GAIG;AACH,qBAGa,uBAAuB;IAchC,OAAO,CAAC,gBAAgB;IAb1B;;;OAGG;IACI,0BAA0B,kCAAyC;IAE1E;;;OAGG;IACI,yBAAyB,iCAAwC;gBAG9D,gBAAgB,EAAE,gBAAgB;IAG5C;;;OAGG;IACU,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhF;;;OAGG;IACU,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9E;;OAEG;IACU,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF;;;OAGG;YACW,iBAAiB;yCAhEpB,uBAAuB;6CAAvB,uBAAuB;CAiFnC"}
|