@memberjunction/ng-conversations 2.117.0 → 2.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/lib/components/collection/collection-artifact-card.component.d.ts +7 -1
  2. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  3. package/dist/lib/components/collection/collection-artifact-card.component.js +14 -18
  4. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  5. package/dist/lib/components/collection/collections-full-view.component.d.ts +86 -1
  6. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  7. package/dist/lib/components/collection/collections-full-view.component.js +1042 -255
  8. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  9. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +9 -2
  10. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  11. package/dist/lib/components/conversation/conversation-chat-area.component.js +236 -162
  12. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  13. package/dist/lib/components/mention/mention-dropdown.component.js +2 -2
  14. package/dist/lib/components/mention/mention-editor.component.d.ts +21 -0
  15. package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
  16. package/dist/lib/components/mention/mention-editor.component.js +299 -2
  17. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  18. package/dist/lib/components/message/actionable-commands.component.d.ts +33 -0
  19. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -0
  20. package/dist/lib/components/message/actionable-commands.component.js +107 -0
  21. package/dist/lib/components/message/actionable-commands.component.js.map +1 -0
  22. package/dist/lib/components/message/agent-response-form.component.d.ts +72 -0
  23. package/dist/lib/components/message/agent-response-form.component.d.ts.map +1 -0
  24. package/dist/lib/components/message/agent-response-form.component.js +310 -0
  25. package/dist/lib/components/message/agent-response-form.component.js.map +1 -0
  26. package/dist/lib/components/message/form-question.component.d.ts +105 -0
  27. package/dist/lib/components/message/form-question.component.d.ts.map +1 -0
  28. package/dist/lib/components/message/form-question.component.js +621 -0
  29. package/dist/lib/components/message/form-question.component.js.map +1 -0
  30. package/dist/lib/components/message/message-input-box.component.d.ts +12 -0
  31. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  32. package/dist/lib/components/message/message-input-box.component.js +14 -1
  33. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  34. package/dist/lib/components/message/message-input.component.d.ts +3 -3
  35. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  36. package/dist/lib/components/message/message-input.component.js +85 -51
  37. package/dist/lib/components/message/message-input.component.js.map +1 -1
  38. package/dist/lib/components/message/message-item.component.d.ts +39 -6
  39. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  40. package/dist/lib/components/message/message-item.component.js +490 -196
  41. package/dist/lib/components/message/message-item.component.js.map +1 -1
  42. package/dist/lib/components/message/message-list.component.d.ts +2 -1
  43. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  44. package/dist/lib/components/message/message-list.component.js +5 -1
  45. package/dist/lib/components/message/message-list.component.js.map +1 -1
  46. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +23 -6
  47. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  48. package/dist/lib/components/workspace/conversation-workspace.component.js +128 -52
  49. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  50. package/dist/lib/conversations.module.d.ts +60 -56
  51. package/dist/lib/conversations.module.d.ts.map +1 -1
  52. package/dist/lib/conversations.module.js +17 -1
  53. package/dist/lib/conversations.module.js.map +1 -1
  54. package/dist/lib/models/collection-view.model.d.ts +30 -0
  55. package/dist/lib/models/collection-view.model.d.ts.map +1 -0
  56. package/dist/lib/models/collection-view.model.js +2 -0
  57. package/dist/lib/models/collection-view.model.js.map +1 -0
  58. package/dist/lib/models/conversation-state.model.d.ts +1 -0
  59. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  60. package/dist/lib/services/conversation-agent.service.d.ts +4 -1
  61. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  62. package/dist/lib/services/conversation-agent.service.js +22 -2
  63. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  64. package/dist/lib/services/data-cache.service.d.ts +12 -0
  65. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  66. package/dist/lib/services/data-cache.service.js +41 -0
  67. package/dist/lib/services/data-cache.service.js.map +1 -1
  68. package/dist/lib/services/mention-parser.service.d.ts +6 -1
  69. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  70. package/dist/lib/services/mention-parser.service.js +114 -34
  71. package/dist/lib/services/mention-parser.service.js.map +1 -1
  72. package/dist/lib/services/ui-command-handler.service.d.ts +45 -0
  73. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -0
  74. package/dist/lib/services/ui-command-handler.service.js +95 -0
  75. package/dist/lib/services/ui-command-handler.service.js.map +1 -0
  76. package/package.json +15 -14
@@ -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 MENTION_REGEX;
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;;GAEG;AACH,qBAGa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;;IAItD;;;;;;OAMG;IACH,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,qBAAqB,EAAE,EACxC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAC1B,kBAAkB;IA4CrB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAwBjB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;OAGG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,qBAAqB,EAAE,EACxC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAC1B,MAAM,EAAE;IAmBX;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAK3C;;;OAGG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM;yCAzJE,oBAAoB;6CAApB,oBAAoB;CA0KhC"}
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 @mentions - supports names with spaces if quoted: @"Agent Name" or @AgentName
8
- MENTION_REGEX = /@"([^"]+)"|@(\S+)/g;
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
- const matches = Array.from(text.matchAll(this.MENTION_REGEX));
20
- for (const match of matches) {
21
- // Extract the mention name (either quoted or unquoted)
22
- const mentionName = match[1] || match[2];
23
- if (!mentionName)
24
- continue;
25
- // Try to match against agents first
26
- const agent = this.findAgent(mentionName, availableAgents);
27
- if (agent) {
28
- mentions.push({
29
- type: 'agent',
30
- id: agent.ID,
31
- name: agent.Name || 'Unknown'
32
- });
33
- continue;
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
- // Try to match against users
36
- if (availableUsers) {
37
- const user = this.findUser(mentionName, availableUsers);
38
- if (user) {
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: 'user',
41
- id: user.ID,
42
- name: user.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
- const matches = Array.from(text.matchAll(this.MENTION_REGEX));
105
- for (const match of matches) {
106
- const mentionName = match[1] || match[2];
107
- if (!mentionName)
108
- continue;
109
- const isAgent = this.findAgent(mentionName, availableAgents) !== null;
110
- const isUser = availableUsers ? this.findUser(mentionName, availableUsers) !== null : false;
111
- if (!isAgent && !isUser) {
112
- invalidMentions.push(mentionName);
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
- const matches = Array.from(text.matchAll(this.MENTION_REGEX));
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":"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"}
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"}
@@ -0,0 +1,95 @@
1
+ import { Injectable, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./data-cache.service";
4
+ /**
5
+ * Service for handling UI commands from agents
6
+ * Emits events for commands to be handled by the host application
7
+ * This allows the generic conversations package to remain app-agnostic
8
+ */
9
+ export class UICommandHandlerService {
10
+ dataCacheService;
11
+ /**
12
+ * Event emitted when an actionable command should be executed
13
+ * Host application should subscribe to this and handle the command appropriately
14
+ */
15
+ actionableCommandRequested = new EventEmitter();
16
+ /**
17
+ * Event emitted when an automatic command should be executed
18
+ * Host application should subscribe to this and handle the command appropriately
19
+ */
20
+ automaticCommandRequested = new EventEmitter();
21
+ constructor(dataCacheService) {
22
+ this.dataCacheService = dataCacheService;
23
+ }
24
+ /**
25
+ * Execute an actionable command (triggered by user clicking a button)
26
+ * Emits the command for the host application to handle
27
+ */
28
+ async executeActionableCommand(command) {
29
+ console.log('📤 Emitting actionable command for host app:', command);
30
+ this.actionableCommandRequested.emit(command);
31
+ }
32
+ /**
33
+ * Execute an automatic command (runs immediately without user interaction)
34
+ * Special handling: refresh:data commands execute locally, others emit to host
35
+ */
36
+ async executeAutomaticCommand(command) {
37
+ console.log('Executing automatic command:', command);
38
+ if (command.type === 'refresh:data') {
39
+ // Handle data refresh locally as it's a generic operation
40
+ await this.handleRefreshData(command);
41
+ }
42
+ else {
43
+ // Emit other automatic commands (like notifications) for host to handle
44
+ console.log('📤 Emitting automatic command for host app:', command);
45
+ this.automaticCommandRequested.emit(command);
46
+ }
47
+ }
48
+ /**
49
+ * Execute all automatic commands from an agent result
50
+ */
51
+ async executeAutomaticCommands(commands) {
52
+ if (!commands || commands.length === 0) {
53
+ return;
54
+ }
55
+ for (const command of commands) {
56
+ try {
57
+ await this.executeAutomaticCommand(command);
58
+ }
59
+ catch (error) {
60
+ console.error('Error executing automatic command:', command, error);
61
+ }
62
+ }
63
+ }
64
+ /**
65
+ * Handle refreshing data (entity data or caches)
66
+ * This is handled locally as it's a generic operation that doesn't require host app knowledge
67
+ */
68
+ async handleRefreshData(command) {
69
+ const { scope, entityNames, cacheName } = command;
70
+ if (scope === 'entity' && entityNames && entityNames.length > 0) {
71
+ // Refresh specific entity data
72
+ for (const entityName of entityNames) {
73
+ await this.dataCacheService.refreshEntity(entityName);
74
+ }
75
+ console.log('Refreshed entity data:', entityNames);
76
+ }
77
+ else if (scope === 'cache' && cacheName) {
78
+ // Refresh a specific cache
79
+ await this.dataCacheService.refreshCache(cacheName);
80
+ console.log('Refreshed cache:', cacheName);
81
+ }
82
+ else {
83
+ console.warn('Invalid refresh:data command parameters:', command);
84
+ }
85
+ }
86
+ static ɵfac = function UICommandHandlerService_Factory(t) { return new (t || UICommandHandlerService)(i0.ɵɵinject(i1.DataCacheService)); };
87
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: UICommandHandlerService, factory: UICommandHandlerService.ɵfac, providedIn: 'root' });
88
+ }
89
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UICommandHandlerService, [{
90
+ type: Injectable,
91
+ args: [{
92
+ providedIn: 'root'
93
+ }]
94
+ }], () => [{ type: i1.DataCacheService }], null); })();
95
+ //# sourceMappingURL=ui-command-handler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-command-handler.service.js","sourceRoot":"","sources":["../../../src/lib/services/ui-command-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;AAIzD;;;;GAIG;AAIH,MAAM,OAAO,uBAAuB;IAcxB;IAbV;;;OAGG;IACI,0BAA0B,GAAG,IAAI,YAAY,EAAqB,CAAC;IAE1E;;;OAGG;IACI,yBAAyB,GAAG,IAAI,YAAY,EAAoB,CAAC;IAExE,YACU,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IACzC,CAAC;IAEJ;;;OAGG;IACI,KAAK,CAAC,wBAAwB,CAAC,OAA0B;QAC9D,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,uBAAuB,CAAC,OAAyB;QAC5D,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACpC,0DAA0D;YAC1D,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;YACpE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,wBAAwB,CAAC,QAA4B;QAChE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACzD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAElD,IAAI,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,+BAA+B;YAC/B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC;YAC1C,2BAA2B;YAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;iFAhFU,uBAAuB;gEAAvB,uBAAuB,WAAvB,uBAAuB,mBAFtB,MAAM;;iFAEP,uBAAuB;cAHnC,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-conversations",
3
- "version": "2.117.0",
3
+ "version": "2.118.0",
4
4
  "description": "MemberJunction: Conversation, Collection, and Artifact management components for any Angular application",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -26,19 +26,20 @@
26
26
  "@angular/router": "18.0.2"
27
27
  },
28
28
  "dependencies": {
29
- "@memberjunction/core": "2.117.0",
30
- "@memberjunction/global": "2.117.0",
31
- "@memberjunction/core-entities": "2.117.0",
32
- "@memberjunction/graphql-dataprovider": "2.117.0",
33
- "@memberjunction/ai-engine-base": "2.117.0",
34
- "@memberjunction/ai": "2.117.0",
35
- "@memberjunction/ai-core-plus": "2.117.0",
36
- "@memberjunction/ng-base-types": "2.117.0",
37
- "@memberjunction/ng-container-directives": "2.117.0",
38
- "@memberjunction/ng-notifications": "2.117.0",
39
- "@memberjunction/ng-code-editor": "2.117.0",
40
- "@memberjunction/ng-tasks": "2.117.0",
41
- "@memberjunction/ng-artifacts": "2.117.0",
29
+ "@memberjunction/core": "2.118.0",
30
+ "@memberjunction/global": "2.118.0",
31
+ "@memberjunction/core-entities": "2.118.0",
32
+ "@memberjunction/graphql-dataprovider": "2.118.0",
33
+ "@memberjunction/ai-engine-base": "2.118.0",
34
+ "@memberjunction/ai": "2.118.0",
35
+ "@memberjunction/ai-core-plus": "2.118.0",
36
+ "@memberjunction/ng-base-types": "2.118.0",
37
+ "@memberjunction/ng-container-directives": "2.118.0",
38
+ "@memberjunction/ng-notifications": "2.118.0",
39
+ "@memberjunction/ng-code-editor": "2.118.0",
40
+ "@memberjunction/ng-tasks": "2.118.0",
41
+ "@memberjunction/ng-artifacts": "2.118.0",
42
+ "@memberjunction/ng-testing": "2.118.0",
42
43
  "@progress/kendo-angular-dialog": "16.2.0",
43
44
  "@progress/kendo-angular-buttons": "16.2.0",
44
45
  "@progress/kendo-angular-inputs": "16.2.0",