@memberjunction/ng-core-entity-forms 2.69.1 → 2.71.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/custom/AIAgents/add-action-dialog.component.d.ts +65 -0
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +578 -0
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.d.ts +1 -0
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +282 -0
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +58 -0
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +400 -0
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +119 -23
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1815 -924
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +159 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +315 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -0
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +67 -0
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +463 -0
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +82 -0
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +708 -0
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -0
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +379 -0
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +58 -0
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +373 -0
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +61 -0
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +459 -0
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +12 -2
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -228
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +72 -0
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -0
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +526 -0
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +90 -10
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +1159 -687
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +27 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +88 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -0
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +69 -0
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +442 -0
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +2 -2
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +40 -32
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +35 -3
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts +8 -2
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +58 -23
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/package.json +16 -16
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { Subject, BehaviorSubject, takeUntil } from 'rxjs';
|
|
4
|
+
import { RunView } from '@memberjunction/core';
|
|
5
|
+
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@progress/kendo-angular-dialog";
|
|
8
|
+
import * as i2 from "@angular/forms";
|
|
9
|
+
import * as i3 from "@progress/kendo-angular-inputs";
|
|
10
|
+
import * as i4 from "@progress/kendo-angular-dropdowns";
|
|
11
|
+
import * as i5 from "@progress/kendo-angular-buttons";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
const _c0 = () => ({ Name: "Default Type", ID: null });
|
|
14
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 6);
|
|
16
|
+
i0.ɵɵelement(2, "i", 7);
|
|
17
|
+
i0.ɵɵelementEnd();
|
|
18
|
+
i0.ɵɵelementStart(3, "p");
|
|
19
|
+
i0.ɵɵtext(4, "Loading sub-agent settings...");
|
|
20
|
+
i0.ɵɵelementEnd()();
|
|
21
|
+
} }
|
|
22
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
24
|
+
i0.ɵɵtext(1);
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} if (rf & 2) {
|
|
27
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
28
|
+
i0.ɵɵadvance();
|
|
29
|
+
i0.ɵɵtextInterpolate(ctx_r0.getFieldError("executionOrder"));
|
|
30
|
+
} }
|
|
31
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
33
|
+
i0.ɵɵtext(1);
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
37
|
+
i0.ɵɵadvance();
|
|
38
|
+
i0.ɵɵtextInterpolate(ctx_r0.executionOrderError);
|
|
39
|
+
} }
|
|
40
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_ng_template_18_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
i0.ɵɵelementStart(0, "div", 31)(1, "div", 32);
|
|
42
|
+
i0.ɵɵelement(2, "i");
|
|
43
|
+
i0.ɵɵelementStart(3, "span", 33);
|
|
44
|
+
i0.ɵɵtext(4);
|
|
45
|
+
i0.ɵɵelementEnd()();
|
|
46
|
+
i0.ɵɵelementStart(5, "div", 34);
|
|
47
|
+
i0.ɵɵtext(6);
|
|
48
|
+
i0.ɵɵelementEnd()();
|
|
49
|
+
} if (rf & 2) {
|
|
50
|
+
const dataItem_r2 = ctx.$implicit;
|
|
51
|
+
i0.ɵɵadvance(2);
|
|
52
|
+
i0.ɵɵclassMapInterpolate1("fa-solid ", dataItem_r2.icon, "");
|
|
53
|
+
i0.ɵɵadvance(2);
|
|
54
|
+
i0.ɵɵtextInterpolate(dataItem_r2.text);
|
|
55
|
+
i0.ɵɵadvance(2);
|
|
56
|
+
i0.ɵɵtextInterpolate(dataItem_r2.description);
|
|
57
|
+
} }
|
|
58
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
60
|
+
i0.ɵɵtext(1);
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
} if (rf & 2) {
|
|
63
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
64
|
+
i0.ɵɵadvance();
|
|
65
|
+
i0.ɵɵtextInterpolate(ctx_r0.getFieldError("executionMode"));
|
|
66
|
+
} }
|
|
67
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_38_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
69
|
+
i0.ɵɵtext(1);
|
|
70
|
+
i0.ɵɵelementEnd();
|
|
71
|
+
} if (rf & 2) {
|
|
72
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
73
|
+
i0.ɵɵadvance();
|
|
74
|
+
i0.ɵɵtextInterpolate(ctx_r0.getFieldError("status"));
|
|
75
|
+
} }
|
|
76
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
77
|
+
i0.ɵɵelementStart(0, "form", 2)(1, "div", 8)(2, "h3", 9);
|
|
78
|
+
i0.ɵɵelement(3, "i", 10);
|
|
79
|
+
i0.ɵɵtext(4, " Execution Configuration ");
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
i0.ɵɵelementStart(5, "div", 11)(6, "div", 12)(7, "label", 13);
|
|
82
|
+
i0.ɵɵtext(8, "Execution Order *");
|
|
83
|
+
i0.ɵɵelementEnd();
|
|
84
|
+
i0.ɵɵelement(9, "kendo-numerictextbox", 14);
|
|
85
|
+
i0.ɵɵtemplate(10, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_10_Template, 2, 1, "div", 15)(11, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_11_Template, 2, 1, "div", 15);
|
|
86
|
+
i0.ɵɵelementStart(12, "small", 16);
|
|
87
|
+
i0.ɵɵtext(13, "Order in which this sub-agent executes among siblings (0 = first). Must be unique among sibling agents.");
|
|
88
|
+
i0.ɵɵelementEnd()();
|
|
89
|
+
i0.ɵɵelementStart(14, "div", 12)(15, "label", 17);
|
|
90
|
+
i0.ɵɵtext(16, "Execution Mode *");
|
|
91
|
+
i0.ɵɵelementEnd();
|
|
92
|
+
i0.ɵɵelementStart(17, "kendo-dropdownlist", 18);
|
|
93
|
+
i0.ɵɵtemplate(18, SubAgentAdvancedSettingsDialogComponent_Conditional_3_ng_template_18_Template, 7, 5, "ng-template", 19);
|
|
94
|
+
i0.ɵɵelementEnd();
|
|
95
|
+
i0.ɵɵtemplate(19, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_19_Template, 2, 1, "div", 15);
|
|
96
|
+
i0.ɵɵelementStart(20, "small", 16);
|
|
97
|
+
i0.ɵɵtext(21);
|
|
98
|
+
i0.ɵɵelementEnd()()()();
|
|
99
|
+
i0.ɵɵelementStart(22, "div", 8)(23, "h3", 9);
|
|
100
|
+
i0.ɵɵelement(24, "i", 20);
|
|
101
|
+
i0.ɵɵtext(25, " Agent Configuration ");
|
|
102
|
+
i0.ɵɵelementEnd();
|
|
103
|
+
i0.ɵɵelementStart(26, "div", 11)(27, "div", 12)(28, "label", 21);
|
|
104
|
+
i0.ɵɵtext(29, "Agent Type");
|
|
105
|
+
i0.ɵɵelementEnd();
|
|
106
|
+
i0.ɵɵelement(30, "kendo-dropdownlist", 22);
|
|
107
|
+
i0.ɵɵpipe(31, "async");
|
|
108
|
+
i0.ɵɵelementStart(32, "small", 16);
|
|
109
|
+
i0.ɵɵtext(33, "Specialized agent type that defines behavior and capabilities");
|
|
110
|
+
i0.ɵɵelementEnd()();
|
|
111
|
+
i0.ɵɵelementStart(34, "div", 12)(35, "label", 23);
|
|
112
|
+
i0.ɵɵtext(36, "Status *");
|
|
113
|
+
i0.ɵɵelementEnd();
|
|
114
|
+
i0.ɵɵelement(37, "kendo-dropdownlist", 24);
|
|
115
|
+
i0.ɵɵtemplate(38, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Conditional_38_Template, 2, 1, "div", 15);
|
|
116
|
+
i0.ɵɵelementStart(39, "small", 16);
|
|
117
|
+
i0.ɵɵtext(40, "Current operational status of this sub-agent");
|
|
118
|
+
i0.ɵɵelementEnd()()()();
|
|
119
|
+
i0.ɵɵelementStart(41, "div", 8)(42, "h3", 9);
|
|
120
|
+
i0.ɵɵelement(43, "i", 25);
|
|
121
|
+
i0.ɵɵtext(44, " Capability Restrictions ");
|
|
122
|
+
i0.ɵɵelementEnd();
|
|
123
|
+
i0.ɵɵelementStart(45, "div", 11)(46, "div", 26)(47, "label", 27);
|
|
124
|
+
i0.ɵɵelement(48, "kendo-checkbox", 28);
|
|
125
|
+
i0.ɵɵtext(49, " Expose As Action ");
|
|
126
|
+
i0.ɵɵelementEnd();
|
|
127
|
+
i0.ɵɵelementStart(50, "small", 29);
|
|
128
|
+
i0.ɵɵelement(51, "i", 30);
|
|
129
|
+
i0.ɵɵtext(52, " Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents. ");
|
|
130
|
+
i0.ɵɵelementEnd()()()()();
|
|
131
|
+
} if (rf & 2) {
|
|
132
|
+
let tmp_10_0;
|
|
133
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
134
|
+
i0.ɵɵproperty("formGroup", ctx_r0.advancedForm);
|
|
135
|
+
i0.ɵɵadvance(9);
|
|
136
|
+
i0.ɵɵclassProp("error-border", ctx_r0.hasExecutionOrderError());
|
|
137
|
+
i0.ɵɵproperty("min", 0)("format", "0");
|
|
138
|
+
i0.ɵɵadvance();
|
|
139
|
+
i0.ɵɵconditional(ctx_r0.isFieldInvalid("executionOrder") ? 10 : -1);
|
|
140
|
+
i0.ɵɵadvance();
|
|
141
|
+
i0.ɵɵconditional(ctx_r0.hasExecutionOrderError() ? 11 : -1);
|
|
142
|
+
i0.ɵɵadvance(6);
|
|
143
|
+
i0.ɵɵproperty("data", ctx_r0.executionModeOptions)("valuePrimitive", true);
|
|
144
|
+
i0.ɵɵadvance(2);
|
|
145
|
+
i0.ɵɵconditional(ctx_r0.isFieldInvalid("executionMode") ? 19 : -1);
|
|
146
|
+
i0.ɵɵadvance(2);
|
|
147
|
+
i0.ɵɵtextInterpolate(ctx_r0.getExecutionModeDescription((tmp_10_0 = ctx_r0.advancedForm.get("executionMode")) == null ? null : tmp_10_0.value));
|
|
148
|
+
i0.ɵɵadvance(9);
|
|
149
|
+
i0.ɵɵproperty("data", i0.ɵɵpipeBind1(31, 18, ctx_r0.agentTypes$))("valuePrimitive", true)("defaultItem", i0.ɵɵpureFunction0(20, _c0));
|
|
150
|
+
i0.ɵɵadvance(7);
|
|
151
|
+
i0.ɵɵproperty("data", ctx_r0.statusOptions)("valuePrimitive", true);
|
|
152
|
+
i0.ɵɵadvance();
|
|
153
|
+
i0.ɵɵconditional(ctx_r0.isFieldInvalid("status") ? 38 : -1);
|
|
154
|
+
i0.ɵɵadvance(10);
|
|
155
|
+
i0.ɵɵproperty("disabled", true);
|
|
156
|
+
} }
|
|
157
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
+
i0.ɵɵelement(0, "i", 35);
|
|
159
|
+
i0.ɵɵtext(1, " Saving... ");
|
|
160
|
+
} }
|
|
161
|
+
function SubAgentAdvancedSettingsDialogComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
+
i0.ɵɵelement(0, "i", 36);
|
|
163
|
+
i0.ɵɵtext(1, " Save Settings ");
|
|
164
|
+
} }
|
|
165
|
+
/**
|
|
166
|
+
* Advanced Settings dialog for Sub-Agents.
|
|
167
|
+
* Manages execution order, execution mode, and other advanced sub-agent configurations.
|
|
168
|
+
*/
|
|
169
|
+
export class SubAgentAdvancedSettingsDialogComponent {
|
|
170
|
+
constructor(dialogRef, fb, cdr) {
|
|
171
|
+
this.dialogRef = dialogRef;
|
|
172
|
+
this.fb = fb;
|
|
173
|
+
this.cdr = cdr;
|
|
174
|
+
this.allSubAgents = []; // For execution order validation
|
|
175
|
+
// Reactive state management
|
|
176
|
+
this.destroy$ = new Subject();
|
|
177
|
+
this.result = new Subject();
|
|
178
|
+
this.isLoading$ = new BehaviorSubject(false);
|
|
179
|
+
this.isSaving$ = new BehaviorSubject(false);
|
|
180
|
+
// Dropdown data
|
|
181
|
+
this.agentTypes$ = new BehaviorSubject([]);
|
|
182
|
+
// Available options
|
|
183
|
+
this.executionModeOptions = [
|
|
184
|
+
{
|
|
185
|
+
text: 'Sequential',
|
|
186
|
+
value: 'Sequential',
|
|
187
|
+
description: 'Child agents execute one after another in order',
|
|
188
|
+
icon: 'fa-list-ol'
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
text: 'Parallel',
|
|
192
|
+
value: 'Parallel',
|
|
193
|
+
description: 'Child agents execute simultaneously for faster processing',
|
|
194
|
+
icon: 'fa-layer-group'
|
|
195
|
+
}
|
|
196
|
+
];
|
|
197
|
+
this.statusOptions = [
|
|
198
|
+
{ text: 'Active', value: 'Active' },
|
|
199
|
+
{ text: 'Disabled', value: 'Disabled' },
|
|
200
|
+
{ text: 'Pending', value: 'Pending' }
|
|
201
|
+
];
|
|
202
|
+
// Execution order validation
|
|
203
|
+
this.executionOrderError = null;
|
|
204
|
+
}
|
|
205
|
+
ngOnInit() {
|
|
206
|
+
this.initializeForm();
|
|
207
|
+
this.loadDropdownData();
|
|
208
|
+
}
|
|
209
|
+
ngOnDestroy() {
|
|
210
|
+
this.destroy$.next();
|
|
211
|
+
this.destroy$.complete();
|
|
212
|
+
}
|
|
213
|
+
initializeForm() {
|
|
214
|
+
this.advancedForm = this.fb.group({
|
|
215
|
+
executionOrder: [this.subAgent.ExecutionOrder || 0, [Validators.required, Validators.min(0)]],
|
|
216
|
+
executionMode: [this.subAgent.ExecutionMode || 'Sequential', [Validators.required]],
|
|
217
|
+
status: [this.subAgent.Status || 'Active', [Validators.required]],
|
|
218
|
+
typeID: [this.subAgent.TypeID],
|
|
219
|
+
exposeAsAction: [this.subAgent.ExposeAsAction || false]
|
|
220
|
+
});
|
|
221
|
+
this.setupValidationLogic();
|
|
222
|
+
}
|
|
223
|
+
setupValidationLogic() {
|
|
224
|
+
// Execution order validation
|
|
225
|
+
const executionOrderControl = this.advancedForm.get('executionOrder');
|
|
226
|
+
executionOrderControl?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(order => {
|
|
227
|
+
this.validateExecutionOrder(order);
|
|
228
|
+
});
|
|
229
|
+
// ExposeAsAction validation (sub-agents cannot be exposed as actions)
|
|
230
|
+
const exposeAsActionControl = this.advancedForm.get('exposeAsAction');
|
|
231
|
+
exposeAsActionControl?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(expose => {
|
|
232
|
+
if (expose && this.subAgent.ParentID) {
|
|
233
|
+
// Sub-agents cannot be exposed as actions
|
|
234
|
+
exposeAsActionControl.setValue(false);
|
|
235
|
+
MJNotificationService.Instance.CreateSimpleNotification('Sub-agents cannot be exposed as actions. Only root agents can be exposed.', 'warning', 4000);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
validateExecutionOrder(order) {
|
|
240
|
+
if (order == null) {
|
|
241
|
+
this.executionOrderError = null;
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Check for conflicts with other sub-agents under the same parent (excluding current one)
|
|
245
|
+
const conflictingAgent = this.allSubAgents.find(agent => agent.ID !== this.subAgent.ID &&
|
|
246
|
+
agent.ParentID === this.subAgent.ParentID &&
|
|
247
|
+
agent.ExecutionOrder === order);
|
|
248
|
+
if (conflictingAgent) {
|
|
249
|
+
this.executionOrderError = `Execution order ${order} is already used by "${conflictingAgent.Name}". Please choose a different order.`;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
this.executionOrderError = null;
|
|
253
|
+
}
|
|
254
|
+
this.cdr.detectChanges();
|
|
255
|
+
}
|
|
256
|
+
async loadDropdownData() {
|
|
257
|
+
this.isLoading$.next(true);
|
|
258
|
+
try {
|
|
259
|
+
const rv = new RunView();
|
|
260
|
+
// Load AI Agent Types
|
|
261
|
+
const agentTypesResult = await rv.RunView({
|
|
262
|
+
EntityName: 'MJ: AI Agent Types',
|
|
263
|
+
ExtraFilter: 'IsActive = 1',
|
|
264
|
+
OrderBy: 'Name',
|
|
265
|
+
ResultType: 'entity_object',
|
|
266
|
+
MaxRows: 1000
|
|
267
|
+
});
|
|
268
|
+
if (agentTypesResult.Success) {
|
|
269
|
+
this.agentTypes$.next(agentTypesResult.Results || []);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
console.error('Error loading dropdown data:', error);
|
|
274
|
+
MJNotificationService.Instance.CreateSimpleNotification('Error loading form data. Please try again.', 'error', 3000);
|
|
275
|
+
}
|
|
276
|
+
finally {
|
|
277
|
+
this.isLoading$.next(false);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
// === Validation Helpers ===
|
|
281
|
+
isFieldInvalid(fieldName) {
|
|
282
|
+
const field = this.advancedForm.get(fieldName);
|
|
283
|
+
return !!(field && field.invalid && (field.dirty || field.touched));
|
|
284
|
+
}
|
|
285
|
+
getFieldError(fieldName) {
|
|
286
|
+
const field = this.advancedForm.get(fieldName);
|
|
287
|
+
if (field?.errors) {
|
|
288
|
+
if (field.errors['required'])
|
|
289
|
+
return `${fieldName} is required`;
|
|
290
|
+
if (field.errors['min'])
|
|
291
|
+
return `${fieldName} must be greater than or equal to ${field.errors['min'].min}`;
|
|
292
|
+
}
|
|
293
|
+
return '';
|
|
294
|
+
}
|
|
295
|
+
hasExecutionOrderError() {
|
|
296
|
+
return !!this.executionOrderError;
|
|
297
|
+
}
|
|
298
|
+
// === Execution Mode Helpers ===
|
|
299
|
+
getExecutionModeIcon(mode) {
|
|
300
|
+
const option = this.executionModeOptions.find(opt => opt.value === mode);
|
|
301
|
+
return option?.icon || 'fa-robot';
|
|
302
|
+
}
|
|
303
|
+
getExecutionModeDescription(mode) {
|
|
304
|
+
const option = this.executionModeOptions.find(opt => opt.value === mode);
|
|
305
|
+
return option?.description || '';
|
|
306
|
+
}
|
|
307
|
+
// === Dialog Actions ===
|
|
308
|
+
cancel() {
|
|
309
|
+
this.result.next(null);
|
|
310
|
+
this.dialogRef.close();
|
|
311
|
+
}
|
|
312
|
+
async save() {
|
|
313
|
+
if (this.advancedForm.invalid || this.hasExecutionOrderError()) {
|
|
314
|
+
this.advancedForm.markAllAsTouched();
|
|
315
|
+
MJNotificationService.Instance.CreateSimpleNotification('Please fix validation errors before saving', 'error', 3000);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
this.isSaving$.next(true);
|
|
319
|
+
try {
|
|
320
|
+
const formData = {
|
|
321
|
+
executionOrder: this.advancedForm.get('executionOrder')?.value,
|
|
322
|
+
executionMode: this.advancedForm.get('executionMode')?.value,
|
|
323
|
+
status: this.advancedForm.get('status')?.value,
|
|
324
|
+
typeID: this.advancedForm.get('typeID')?.value || null,
|
|
325
|
+
exposeAsAction: false // Sub-agents cannot be exposed as actions
|
|
326
|
+
};
|
|
327
|
+
this.result.next(formData);
|
|
328
|
+
this.dialogRef.close();
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
console.error('Error saving advanced settings:', error);
|
|
332
|
+
MJNotificationService.Instance.CreateSimpleNotification('Error saving settings. Please try again.', 'error', 3000);
|
|
333
|
+
}
|
|
334
|
+
finally {
|
|
335
|
+
this.isSaving$.next(false);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
static { this.ɵfac = function SubAgentAdvancedSettingsDialogComponent_Factory(t) { return new (t || SubAgentAdvancedSettingsDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogRef), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
339
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubAgentAdvancedSettingsDialogComponent, selectors: [["mj-sub-agent-advanced-settings-dialog"]], decls: 14, vars: 14, consts: [[1, "sub-agent-advanced-settings-dialog"], [1, "loading-state"], [1, "advanced-form", 3, "formGroup"], [1, "dialog-footer"], ["kendoButton", "", "look", "flat", 3, "click", "disabled"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "loading-spinner"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], [1, "form-section"], [1, "section-title"], [1, "fa-solid", "fa-play"], [1, "form-grid"], [1, "form-field"], ["for", "executionOrder"], ["formControlName", "executionOrder", 1, "form-control", 3, "min", "format"], [1, "field-error"], [1, "field-hint"], ["for", "executionMode"], ["formControlName", "executionMode", "textField", "text", "valueField", "value", 1, "form-control", 3, "data", "valuePrimitive"], ["kendoDropDownListItemTemplate", ""], [1, "fa-solid", "fa-robot"], ["for", "typeID"], ["formControlName", "typeID", "textField", "Name", "valueField", "ID", 1, "form-control", 3, "data", "valuePrimitive", "defaultItem"], ["for", "status"], ["formControlName", "status", "textField", "text", "valueField", "value", 1, "form-control", 3, "data", "valuePrimitive"], [1, "fa-solid", "fa-shield-alt"], [1, "form-field", "full-width"], [1, "checkbox-label", "disabled"], ["formControlName", "exposeAsAction", 3, "disabled"], [1, "field-hint", "disabled-hint"], [1, "fa-solid", "fa-info-circle"], [1, "execution-mode-option"], [1, "option-header"], [1, "option-title"], [1, "option-description"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-save"]], template: function SubAgentAdvancedSettingsDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
340
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
341
|
+
i0.ɵɵtemplate(1, SubAgentAdvancedSettingsDialogComponent_Conditional_1_Template, 5, 0, "div", 1);
|
|
342
|
+
i0.ɵɵpipe(2, "async");
|
|
343
|
+
i0.ɵɵtemplate(3, SubAgentAdvancedSettingsDialogComponent_Conditional_3_Template, 53, 21, "form", 2);
|
|
344
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "button", 4);
|
|
345
|
+
i0.ɵɵpipe(6, "async");
|
|
346
|
+
i0.ɵɵlistener("click", function SubAgentAdvancedSettingsDialogComponent_Template_button_click_5_listener() { return ctx.cancel(); });
|
|
347
|
+
i0.ɵɵtext(7, " Cancel ");
|
|
348
|
+
i0.ɵɵelementEnd();
|
|
349
|
+
i0.ɵɵelementStart(8, "button", 5);
|
|
350
|
+
i0.ɵɵpipe(9, "async");
|
|
351
|
+
i0.ɵɵpipe(10, "async");
|
|
352
|
+
i0.ɵɵlistener("click", function SubAgentAdvancedSettingsDialogComponent_Template_button_click_8_listener() { return ctx.save(); });
|
|
353
|
+
i0.ɵɵtemplate(11, SubAgentAdvancedSettingsDialogComponent_Conditional_11_Template, 2, 0);
|
|
354
|
+
i0.ɵɵpipe(12, "async");
|
|
355
|
+
i0.ɵɵtemplate(13, SubAgentAdvancedSettingsDialogComponent_Conditional_13_Template, 2, 0);
|
|
356
|
+
i0.ɵɵelementEnd()()();
|
|
357
|
+
} if (rf & 2) {
|
|
358
|
+
i0.ɵɵadvance();
|
|
359
|
+
i0.ɵɵconditional(i0.ɵɵpipeBind1(2, 4, ctx.isLoading$) ? 1 : 3);
|
|
360
|
+
i0.ɵɵadvance(4);
|
|
361
|
+
i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(6, 6, ctx.isSaving$) || false);
|
|
362
|
+
i0.ɵɵadvance(3);
|
|
363
|
+
i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(9, 8, ctx.isSaving$) || false || (i0.ɵɵpipeBind1(10, 10, ctx.isLoading$) || false) || ctx.hasExecutionOrderError());
|
|
364
|
+
i0.ɵɵadvance(3);
|
|
365
|
+
i0.ɵɵconditional(i0.ɵɵpipeBind1(12, 12, ctx.isSaving$) ? 11 : 13);
|
|
366
|
+
} }, dependencies: [i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.NumericTextBoxComponent, i3.CheckBoxComponent, i4.ItemTemplateDirective, i4.DropDownListComponent, i5.ButtonComponent, i6.AsyncPipe], styles: [".sub-agent-advanced-settings-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.advanced-form[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n\n\nlabel[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #495057;\n font-size: 0.9rem;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n color: #495057;\n cursor: pointer;\n}\n\n.checkbox-label.disabled[_ngcontent-%COMP%] {\n color: #6c757d;\n cursor: not-allowed;\n}\n\n.form-control[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.disabled-hint[_ngcontent-%COMP%] {\n color: #999;\n font-style: italic;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.disabled-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #17a2b8;\n}\n\n.field-error[_ngcontent-%COMP%] {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n\n\n.form-control.ng-invalid.ng-touched[_ngcontent-%COMP%], \n.error-border[_ngcontent-%COMP%] {\n border-color: #dc3545 !important;\n}\n\n.form-control.ng-valid.ng-touched[_ngcontent-%COMP%] {\n border-color: #28a745;\n}\n\n\n\n.execution-mode-option[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.option-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.25rem;\n}\n\n.option-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n width: 16px;\n}\n\n.option-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #333;\n font-size: 0.9rem;\n}\n\n.option-description[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: #666;\n line-height: 1.3;\n margin-left: 1.5rem;\n}\n\n\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[themeColor=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n\n\n\n.form-section[_ngcontent-%COMP%]:first-child .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e3f2fd, #f8f9fa);\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(2) .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f3e5f5, #f8f9fa);\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(3) .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fff3e0, #f8f9fa);\n}\n\n\n\n@media (max-width: 768px) {\n .form-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1;\n }\n \n .advanced-form[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n \n .section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .dialog-footer[_ngcontent-%COMP%] {\n padding: 1rem;\n flex-direction: column;\n }\n \n .dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n.error-border[_ngcontent-%COMP%] {\n border: 2px solid #dc3545 !important;\n background-color: #fff5f5;\n}"] }); }
|
|
367
|
+
}
|
|
368
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SubAgentAdvancedSettingsDialogComponent, [{
|
|
369
|
+
type: Component,
|
|
370
|
+
args: [{ selector: 'mj-sub-agent-advanced-settings-dialog', template: "<!-- Sub-Agent Advanced Settings Dialog -->\n<div class=\"sub-agent-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading sub-agent settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <kendo-numerictextbox \n formControlName=\"executionOrder\"\n [min]=\"0\"\n [format]=\"'0'\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this sub-agent executes among siblings (0 = first). Must be unique among sibling agents.</small>\n </div>\n \n <!-- Execution Mode -->\n <div class=\"form-field\">\n <label for=\"executionMode\">Execution Mode *</label>\n <kendo-dropdownlist \n formControlName=\"executionMode\"\n [data]=\"executionModeOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"execution-mode-option\">\n <div class=\"option-header\">\n <i class=\"fa-solid {{ dataItem.icon }}\"></i>\n <span class=\"option-title\">{{ dataItem.text }}</span>\n </div>\n <div class=\"option-description\">{{ dataItem.description }}</div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (isFieldInvalid('executionMode')) {\n <div class=\"field-error\">{{ getFieldError('executionMode') }}</div>\n }\n <small class=\"field-hint\">{{ getExecutionModeDescription(advancedForm.get('executionMode')?.value) }}</small>\n </div>\n </div>\n </div>\n\n <!-- Agent Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Agent Type -->\n <div class=\"form-field\">\n <label for=\"typeID\">Agent Type</label>\n <kendo-dropdownlist \n formControlName=\"typeID\"\n [data]=\"agentTypes$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Default Type', ID: null }\"\n class=\"form-control\">\n </kendo-dropdownlist>\n <small class=\"field-hint\">Specialized agent type that defines behavior and capabilities</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <kendo-dropdownlist \n formControlName=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n </kendo-dropdownlist>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current operational status of this sub-agent</small>\n </div>\n </div>\n </div>\n\n <!-- Capability Restrictions Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-shield-alt\"></i>\n Capability Restrictions\n </h3>\n \n <div class=\"form-grid\">\n <!-- Expose As Action (Disabled for Sub-Agents) -->\n <div class=\"form-field full-width\">\n <label class=\"checkbox-label disabled\">\n <kendo-checkbox \n formControlName=\"exposeAsAction\"\n [disabled]=\"true\">\n </kendo-checkbox>\n Expose As Action\n </label>\n <small class=\"field-hint disabled-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Sub-agents cannot be exposed as actions. Only root agents (without parents) can be exposed as actions for use by other agents.\n </small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>", styles: [".sub-agent-advanced-settings-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* === Loading State === */\n.loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n}\n\n.loading-spinner {\n margin-bottom: 1rem;\n}\n\n.loading-spinner i {\n color: #2196f3;\n}\n\n.loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* === Form Layout === */\n.advanced-form {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title i {\n color: #2196f3;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width {\n grid-column: 1 / -1;\n}\n\n/* === Form Controls === */\nlabel {\n font-weight: 600;\n color: #495057;\n font-size: 0.9rem;\n}\n\n.checkbox-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 600;\n color: #495057;\n cursor: pointer;\n}\n\n.checkbox-label.disabled {\n color: #6c757d;\n cursor: not-allowed;\n}\n\n.form-control {\n width: 100%;\n}\n\n.field-hint {\n color: #6c757d;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.disabled-hint {\n color: #999;\n font-style: italic;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.disabled-hint i {\n color: #17a2b8;\n}\n\n.field-error {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* === Validation States === */\n.form-control.ng-invalid.ng-touched,\n.error-border {\n border-color: #dc3545 !important;\n}\n\n.form-control.ng-valid.ng-touched {\n border-color: #28a745;\n}\n\n/* === Execution Mode Option Template === */\n.execution-mode-option {\n padding: 0.5rem 0;\n}\n\n.option-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.25rem;\n}\n\n.option-header i {\n color: #2196f3;\n width: 16px;\n}\n\n.option-title {\n font-weight: 500;\n color: #333;\n font-size: 0.9rem;\n}\n\n.option-description {\n font-size: 0.8rem;\n color: #666;\n line-height: 1.3;\n margin-left: 1.5rem;\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.dialog-footer button {\n min-width: 120px;\n}\n\n.dialog-footer button[themeColor=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Section-Specific Styling === */\n\n/* Execution Configuration */\n.form-section:first-child .section-title {\n background: linear-gradient(135deg, #e3f2fd, #f8f9fa);\n}\n\n/* Agent Configuration */\n.form-section:nth-child(2) .section-title {\n background: linear-gradient(135deg, #f3e5f5, #f8f9fa);\n}\n\n/* Capability Restrictions */\n.form-section:nth-child(3) .section-title {\n background: linear-gradient(135deg, #fff3e0, #f8f9fa);\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .form-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .form-field.full-width {\n grid-column: 1;\n }\n \n .advanced-form {\n padding: 1rem;\n }\n \n .section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .dialog-footer {\n padding: 1rem;\n flex-direction: column;\n }\n \n .dialog-footer button {\n width: 100%;\n }\n}\n\n/* === Error Highlighting === */\n.error-border {\n border: 2px solid #dc3545 !important;\n background-color: #fff5f5;\n}"] }]
|
|
371
|
+
}], () => [{ type: i1.DialogRef }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], null); })();
|
|
372
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubAgentAdvancedSettingsDialogComponent, { className: "SubAgentAdvancedSettingsDialogComponent", filePath: "src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.ts", lineNumber: 26 }); })();
|
|
373
|
+
//# sourceMappingURL=sub-agent-advanced-settings-dialog.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-agent-advanced-settings-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.ts","../../../../src/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwC,MAAM,eAAe,CAAC;AAChF,OAAO,EAA0B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;;;;;;;;;;ICAnE,AADF,8BAA2B,aACI;IAC3B,uBAAiD;IACnD,iBAAM;IACN,yBAAG;IAAA,6CAA6B;IAClC,AADkC,iBAAI,EAChC;;;IAyBI,+BAAyB;IAAA,YAAqC;IAAA,iBAAM;;;IAA3C,cAAqC;IAArC,4DAAqC;;;IAG9D,+BAAyB;IAAA,YAAyB;IAAA,iBAAM;;;IAA/B,cAAyB;IAAzB,gDAAyB;;;IAiB9C,AADF,+BAAmC,cACN;IACzB,oBAA4C;IAC5C,gCAA2B;IAAA,YAAmB;IAChD,AADgD,iBAAO,EACjD;IACN,+BAAgC;IAAA,YAA0B;IAC5D,AAD4D,iBAAM,EAC5D;;;IAJC,eAAoC;IAApC,4DAAoC;IACZ,eAAmB;IAAnB,sCAAmB;IAEhB,eAA0B;IAA1B,6CAA0B;;;IAK9D,+BAAyB;IAAA,YAAoC;IAAA,iBAAM;;;IAA1C,cAAoC;IAApC,2DAAoC;;;IA0C7D,+BAAyB;IAAA,YAA6B;IAAA,iBAAM;;;IAAnC,cAA6B;IAA7B,oDAA6B;;;IAxF5D,AADF,AAHF,+BAAuD,aAG3B,YACE;IACxB,wBAAgC;IAChC,yCACF;IAAA,iBAAK;IAKD,AADF,AAFF,+BAAuB,cAEG,gBACM;IAAA,iCAAiB;IAAA,iBAAQ;IACrD,2CAMuB;IAIvB,AAHA,iHAAwC,oGAGR;IAGhC,kCAA0B;IAAA,wHAAuG;IACnI,AADmI,iBAAQ,EACrI;IAIJ,AADF,gCAAwB,iBACK;IAAA,iCAAgB;IAAA,iBAAQ;IACnD,+CAMuB;IACrB,yHAAwD;IAS1D,iBAAqB;IACrB,iHAAuC;IAGvC,kCAA0B;IAAA,aAA2E;IAG3G,AADE,AADE,AADuG,iBAAQ,EACzG,EACF,EACF;IAIJ,AADF,+BAA0B,aACE;IACxB,yBAAiC;IACjC,sCACF;IAAA,iBAAK;IAKD,AADF,AAFF,gCAAuB,eAEG,iBACF;IAAA,2BAAU;IAAA,iBAAQ;IACtC,0CAQqB;;IACrB,kCAA0B;IAAA,8EAA6D;IACzF,AADyF,iBAAQ,EAC3F;IAIJ,AADF,gCAAwB,iBACF;IAAA,yBAAQ;IAAA,iBAAQ;IACpC,0CAOqB;IACrB,iHAAgC;IAGhC,kCAA0B;IAAA,6DAA4C;IAG5E,AADE,AADE,AADwE,iBAAQ,EAC1E,EACF,EACF;IAIJ,AADF,+BAA0B,aACE;IACxB,yBAAsC;IACtC,0CACF;IAAA,iBAAK;IAKD,AADF,AAFF,gCAAuB,eAEc,iBACM;IACrC,sCAGiB;IACjB,mCACF;IAAA,iBAAQ;IACR,kCAAwC;IACtC,yBAAuC;IACvC,iJACF;IAIR,AADE,AADE,AADE,AADE,iBAAQ,EACJ,EACF,EACF,EACD;;;;IA3HD,+CAA0B;IAiBtB,eAA+C;IAA/C,+DAA+C;IAD/C,AADA,uBAAS,eACK;IAIhB,cAEC;IAFD,mEAEC;IACD,cAEC;IAFD,2DAEC;IASC,eAA6B;IAG7B,AAHA,kDAA6B,wBAGN;IAYzB,eAEC;IAFD,kEAEC;IACyB,eAA2E;IAA3E,+IAA2E;IAkBnG,eAA4B;IAI5B,AADA,AAHA,iEAA4B,wBAGL,4CAC2B;IAWlD,eAAsB;IAGtB,AAHA,2CAAsB,wBAGC;IAGzB,cAEC;IAFD,2DAEC;IAmBG,gBAAiB;IAAjB,+BAAiB;;;IA4BzB,wBAA2C;IAC3C,2BACF;;;IACE,wBAAgC;IAChC,+BACF;;AD/IN;;;GAGG;AAMH,MAAM,OAAO,uCAAuC;IA2ClD,YACU,SAAoB,EACpB,EAAe,EACf,GAAsB;QAFtB,cAAS,GAAT,SAAS,CAAW;QACpB,OAAE,GAAF,EAAE,CAAa;QACf,QAAG,GAAH,GAAG,CAAmB;QA1ChC,iBAAY,GAAoB,EAAE,CAAC,CAAC,iCAAiC;QAErE,4BAA4B;QACpB,aAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,WAAM,GAAG,IAAI,OAAO,EAA2C,CAAC;QAIvE,eAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QACjD,cAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAEhD,gBAAgB;QAChB,gBAAW,GAAG,IAAI,eAAe,CAAsB,EAAE,CAAC,CAAC;QAE3D,oBAAoB;QACpB,yBAAoB,GAAG;YACrB;gBACE,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,iDAAiD;gBAC9D,IAAI,EAAE,YAAY;aACnB;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,2DAA2D;gBACxE,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC;QAEF,kBAAa,GAAG;YACd,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACnC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACvC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SACtC,CAAC;QAEF,6BAA6B;QAC7B,wBAAmB,GAAkB,IAAI,CAAC;IAMvC,CAAC;IAEJ,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAChC,cAAc,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,YAAY,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnF,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,cAAc,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,KAAK,CAAC;SACxD,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,6BAA6B;QAC7B,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtE,qBAAqB,EAAE,YAAY,CAAC,IAAI,CACtC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,sEAAsE;QACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtE,qBAAqB,EAAE,YAAY,CAAC,IAAI,CACtC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACrC,0CAA0C;gBAC1C,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtC,qBAAqB,CAAC,QAAQ,CAAC,wBAAwB,CACrD,2EAA2E,EAC3E,SAAS,EACT,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,KAAa;QAC1C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,OAAO;QACT,CAAC;QAED,0FAA0F;QAC1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACtD,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC7B,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACzC,KAAK,CAAC,cAAc,KAAK,KAAK,CAC/B,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,KAAK,wBAAwB,gBAAgB,CAAC,IAAI,qCAAqC,CAAC;QACxI,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YAEzB,sBAAsB;YACtB,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,OAAO,CAAoB;gBAC3D,UAAU,EAAE,oBAAoB;gBAChC,WAAW,EAAE,cAAc;gBAC3B,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,eAAe;gBAC3B,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,qBAAqB,CAAC,QAAQ,CAAC,wBAAwB,CACrD,4CAA4C,EAC5C,OAAO,EACP,IAAI,CACL,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,6BAA6B;IAE7B,cAAc,CAAC,SAAiB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;gBAAE,OAAO,GAAG,SAAS,cAAc,CAAC;YAChE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,GAAG,SAAS,qCAAqC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7G,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sBAAsB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,iCAAiC;IAEjC,oBAAoB,CAAC,IAAY;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACzE,OAAO,MAAM,EAAE,IAAI,IAAI,UAAU,CAAC;IACpC,CAAC;IAED,2BAA2B,CAAC,IAAY;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACzE,OAAO,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,yBAAyB;IAEzB,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;YACrC,qBAAqB,CAAC,QAAQ,CAAC,wBAAwB,CACrD,4CAA4C,EAC5C,OAAO,EACP,IAAI,CACL,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqC;gBACjD,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK;gBAC9D,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK;gBAC5D,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK;gBAC9C,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI;gBACtD,cAAc,EAAE,KAAK,CAAC,0CAA0C;aACjE,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,qBAAqB,CAAC,QAAQ,CAAC,wBAAwB,CACrD,0CAA0C,EAC1C,OAAO,EACP,IAAI,CACL,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;wGAhOU,uCAAuC;oEAAvC,uCAAuC;YCxBpD,8BAAgD;YAG9C,gGAA0B;;YAOxB,mGAAO;YAmIP,AADF,8BAA2B,gBAIyB;;YAD1C,oHAAS,YAAQ,IAAC;YAExB,wBACF;YAAA,iBAAS;YAET,iCAGmH;;;YAD3G,oHAAS,UAAM,IAAC;YAEtB,wFAAyB;;YAGvB,wFAAO;YAMf,AADE,AADE,iBAAS,EACL,EACF;;YA9JJ,cAsIC;YAtID,8DAsIC;YAOS,eAAyC;YAAzC,uEAAyC;YAOzC,eAA0G;YAA1G,4JAA0G;YAChH,eAMC;YAND,iEAMC;;;iFDtIM,uCAAuC;cALnD,SAAS;2BACE,uCAAuC;;kFAItC,uCAAuC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { DialogRef } from '@progress/kendo-angular-dialog';
|
|
4
|
+
import { Subject, BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { AIAgentEntity, AIAgentTypeEntity } from '@memberjunction/core-entities';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export interface SubAgentSelectorResult {
|
|
8
|
+
selectedAgents: AIAgentEntity[];
|
|
9
|
+
createNew: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface SubAgentSelectorConfig {
|
|
12
|
+
title: string;
|
|
13
|
+
multiSelect: boolean;
|
|
14
|
+
selectedAgentIds: string[];
|
|
15
|
+
showCreateNew: boolean;
|
|
16
|
+
parentAgentId: string;
|
|
17
|
+
}
|
|
18
|
+
export interface AgentDisplayItem extends AIAgentEntity {
|
|
19
|
+
selected: boolean;
|
|
20
|
+
typeName?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Sub-Agent Selector Dialog for selecting agents to convert to sub-agents.
|
|
24
|
+
* Only shows agents with NULL ParentID (root agents) that can become sub-agents.
|
|
25
|
+
*/
|
|
26
|
+
export declare class SubAgentSelectorDialogComponent implements OnInit, OnDestroy {
|
|
27
|
+
private dialogRef;
|
|
28
|
+
private cdr;
|
|
29
|
+
config: SubAgentSelectorConfig;
|
|
30
|
+
private destroy$;
|
|
31
|
+
result: Subject<SubAgentSelectorResult | null>;
|
|
32
|
+
allAgents$: BehaviorSubject<AgentDisplayItem[]>;
|
|
33
|
+
agentTypes$: BehaviorSubject<AIAgentTypeEntity[]>;
|
|
34
|
+
filteredAgents$: BehaviorSubject<AgentDisplayItem[]>;
|
|
35
|
+
selectedAgents$: BehaviorSubject<Set<string>>;
|
|
36
|
+
isLoading$: BehaviorSubject<boolean>;
|
|
37
|
+
searchControl: FormControl<string | null>;
|
|
38
|
+
selectedTypeId$: BehaviorSubject<string>;
|
|
39
|
+
get selectedCount(): number;
|
|
40
|
+
get totalAgentCount(): number;
|
|
41
|
+
get filteredCount(): number;
|
|
42
|
+
constructor(dialogRef: DialogRef, cdr: ChangeDetectorRef);
|
|
43
|
+
ngOnInit(): void;
|
|
44
|
+
ngOnDestroy(): void;
|
|
45
|
+
private initializeData;
|
|
46
|
+
private loadAgentsAndTypes;
|
|
47
|
+
private setupFiltering;
|
|
48
|
+
private filterAgents;
|
|
49
|
+
private preselectExistingAgents;
|
|
50
|
+
selectType(typeId: string): void;
|
|
51
|
+
toggleAgentSelection(agent: AgentDisplayItem): void;
|
|
52
|
+
clearSearch(): void;
|
|
53
|
+
getAgentIcon(agent: AgentDisplayItem): string;
|
|
54
|
+
getAgentStatusColor(agent: AgentDisplayItem): string;
|
|
55
|
+
cancel(): void;
|
|
56
|
+
createNew(): void;
|
|
57
|
+
addSelectedAgents(): Promise<void>;
|
|
58
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SubAgentSelectorDialogComponent, never>;
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SubAgentSelectorDialogComponent, "mj-sub-agent-selector-dialog", never, {}, {}, never, never, false, never>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=sub-agent-selector-dialog.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-agent-selector-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/sub-agent-selector-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2E,MAAM,MAAM,CAAC;AAEzH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;AAEjF,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAKa,+BAAgC,YAAW,MAAM,EAAE,SAAS;IAkCrE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAhCb,MAAM,EAAG,sBAAsB,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,yCAAgD;IAG7D,UAAU,sCAA+C;IACzD,WAAW,uCAAgD;IAC3D,eAAe,sCAA+C;IAC9D,eAAe,+BAA+C;IAC9D,UAAU,2BAAuC;IAGjD,aAAa,6BAAuB;IACpC,eAAe,0BAAsC;IAGrD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;gBAGS,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAYd,kBAAkB;IAqChC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,uBAAuB;IAgB/B,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB;IAqC5C,WAAW;IAIX,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAO7C,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAWpD,MAAM;IAKN,SAAS;IAQH,iBAAiB;yCAnOZ,+BAA+B;2CAA/B,+BAA+B;CAoP3C"}
|