@memberjunction/ng-core-entity-forms 2.68.0 → 2.69.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/ai-agent-form.component.d.ts +5 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +744 -579
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +15 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +94 -4
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js +22 -4
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +22 -4
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
- package/package.json +16 -16
|
@@ -24,9 +24,9 @@ import * as i9 from "@progress/kendo-angular-layout";
|
|
|
24
24
|
import * as i10 from "@progress/kendo-angular-inputs";
|
|
25
25
|
import * as i11 from "@progress/kendo-angular-dropdowns";
|
|
26
26
|
import * as i12 from "@progress/kendo-angular-buttons";
|
|
27
|
-
import * as i13 from "@memberjunction/ng-
|
|
28
|
-
import * as i14 from "@memberjunction/ng-
|
|
29
|
-
|
|
27
|
+
import * as i13 from "@memberjunction/ng-base-forms";
|
|
28
|
+
import * as i14 from "@memberjunction/ng-form-toolbar";
|
|
29
|
+
import * as i15 from "@memberjunction/ng-code-editor";
|
|
30
30
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
31
31
|
function AIAgentFormComponentExtended_form_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
32
32
|
i0.ɵɵelement(0, "img", 10);
|
|
@@ -42,7 +42,7 @@ function AIAgentFormComponentExtended_form_2_Conditional_8_Template(rf, ctx) { i
|
|
|
42
42
|
} }
|
|
43
43
|
function AIAgentFormComponentExtended_form_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
44
44
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
45
|
-
i0.ɵɵelementStart(0, "kendo-textbox",
|
|
45
|
+
i0.ɵɵelementStart(0, "kendo-textbox", 27);
|
|
46
46
|
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_2_Conditional_10_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Name, $event) || (ctx_r1.record.Name = $event); return i0.ɵɵresetView($event); });
|
|
47
47
|
i0.ɵɵelementEnd();
|
|
48
48
|
} if (rf & 2) {
|
|
@@ -59,8 +59,8 @@ function AIAgentFormComponentExtended_form_2_Conditional_11_Template(rf, ctx) {
|
|
|
59
59
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name || "Untitled AI Agent");
|
|
60
60
|
} }
|
|
61
61
|
function AIAgentFormComponentExtended_form_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
-
i0.ɵɵelementStart(0, "span",
|
|
63
|
-
i0.ɵɵelement(1, "i",
|
|
62
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
63
|
+
i0.ɵɵelement(1, "i", 29);
|
|
64
64
|
i0.ɵɵtext(2);
|
|
65
65
|
i0.ɵɵelementEnd();
|
|
66
66
|
} if (rf & 2) {
|
|
@@ -83,7 +83,7 @@ function AIAgentFormComponentExtended_form_2_Conditional_14_Template(rf, ctx) {
|
|
|
83
83
|
} }
|
|
84
84
|
function AIAgentFormComponentExtended_form_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
85
85
|
i0.ɵɵelementStart(0, "span", 18);
|
|
86
|
-
i0.ɵɵelement(1, "i",
|
|
86
|
+
i0.ɵɵelement(1, "i", 30);
|
|
87
87
|
i0.ɵɵtext(2);
|
|
88
88
|
i0.ɵɵelementEnd();
|
|
89
89
|
} if (rf & 2) {
|
|
@@ -93,9 +93,9 @@ function AIAgentFormComponentExtended_form_2_Conditional_15_Template(rf, ctx) {
|
|
|
93
93
|
} }
|
|
94
94
|
function AIAgentFormComponentExtended_form_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
95
95
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
96
|
-
i0.ɵɵelementStart(0, "button",
|
|
96
|
+
i0.ɵɵelementStart(0, "button", 31);
|
|
97
97
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestHarness()); });
|
|
98
|
-
i0.ɵɵelement(1, "i",
|
|
98
|
+
i0.ɵɵelement(1, "i", 32);
|
|
99
99
|
i0.ɵɵtext(2, " Run ");
|
|
100
100
|
i0.ɵɵelementEnd();
|
|
101
101
|
} if (rf & 2) {
|
|
@@ -103,678 +103,932 @@ function AIAgentFormComponentExtended_form_2_Conditional_17_Template(rf, ctx) {
|
|
|
103
103
|
i0.ɵɵproperty("disabled", ctx_r1.record.Status !== "Active");
|
|
104
104
|
} }
|
|
105
105
|
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
-
i0.ɵɵelement(0, "i",
|
|
106
|
+
i0.ɵɵelement(0, "i", 33);
|
|
107
107
|
i0.ɵɵtext(1);
|
|
108
108
|
} if (rf & 2) {
|
|
109
109
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
110
110
|
i0.ɵɵadvance();
|
|
111
|
-
i0.ɵɵtextInterpolate1("
|
|
112
|
-
} }
|
|
113
|
-
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
114
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
115
|
-
i0.ɵɵelementStart(0, "button", 41);
|
|
116
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.configureActions()); });
|
|
117
|
-
i0.ɵɵelement(1, "i", 42);
|
|
118
|
-
i0.ɵɵtext(2, " Add Action ");
|
|
119
|
-
i0.ɵɵelementEnd();
|
|
120
|
-
} }
|
|
121
|
-
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
-
const _r6 = i0.ɵɵgetCurrentView();
|
|
123
|
-
i0.ɵɵelementStart(0, "button", 44);
|
|
124
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_4_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
|
|
125
|
-
i0.ɵɵelement(1, "i", 42);
|
|
126
|
-
i0.ɵɵtext(2, " Configure First Action ");
|
|
127
|
-
i0.ɵɵelementEnd();
|
|
111
|
+
i0.ɵɵtextInterpolate1(" Execution History", ctx_r1.executionHistoryCount > 0 ? " (" + ctx_r1.executionHistoryCount + ")" : "", " ");
|
|
128
112
|
} }
|
|
129
113
|
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
130
|
-
i0.ɵɵelementStart(0, "div",
|
|
131
|
-
i0.ɵɵelement(1, "i",
|
|
114
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
115
|
+
i0.ɵɵelement(1, "i", 33);
|
|
132
116
|
i0.ɵɵelementStart(2, "h4");
|
|
133
|
-
i0.ɵɵtext(3, "No
|
|
117
|
+
i0.ɵɵtext(3, "No Execution History");
|
|
134
118
|
i0.ɵɵelementEnd();
|
|
135
119
|
i0.ɵɵelementStart(4, "p");
|
|
136
|
-
i0.ɵɵtext(5, "
|
|
137
|
-
i0.ɵɵelementEnd();
|
|
138
|
-
|
|
120
|
+
i0.ɵɵtext(5, "This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.");
|
|
121
|
+
i0.ɵɵelementEnd()();
|
|
122
|
+
} }
|
|
123
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
124
|
+
i0.ɵɵelementStart(0, "span", 49);
|
|
125
|
+
i0.ɵɵelement(1, "i", 55);
|
|
126
|
+
i0.ɵɵtext(2);
|
|
139
127
|
i0.ɵɵelementEnd();
|
|
140
128
|
} if (rf & 2) {
|
|
141
|
-
const
|
|
142
|
-
i0.ɵɵ
|
|
143
|
-
i0.ɵɵ
|
|
129
|
+
const execution_r6 = i0.ɵɵnextContext().$implicit;
|
|
130
|
+
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
131
|
+
i0.ɵɵadvance(2);
|
|
132
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatExecutionTimeFromDates(execution_r6.StartedAt, execution_r6.CompletedAt), " ");
|
|
144
133
|
} }
|
|
145
|
-
function
|
|
146
|
-
i0.ɵɵelementStart(0, "div",
|
|
134
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
135
|
+
i0.ɵɵelementStart(0, "div", 53);
|
|
147
136
|
i0.ɵɵtext(1);
|
|
148
137
|
i0.ɵɵelementEnd();
|
|
149
138
|
} if (rf & 2) {
|
|
150
|
-
const
|
|
139
|
+
const execution_r6 = i0.ɵɵnextContext().$implicit;
|
|
140
|
+
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
151
141
|
i0.ɵɵadvance();
|
|
152
|
-
i0.ɵɵtextInterpolate(
|
|
142
|
+
i0.ɵɵtextInterpolate(ctx_r1.getExecutionResultPreview(execution_r6, true));
|
|
153
143
|
} }
|
|
154
|
-
function
|
|
155
|
-
i0.ɵɵelementStart(0, "
|
|
156
|
-
i0.ɵɵtext(
|
|
144
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
145
|
+
i0.ɵɵelementStart(0, "div", 56)(1, "h5");
|
|
146
|
+
i0.ɵɵtext(2, "Result");
|
|
147
|
+
i0.ɵɵelementEnd();
|
|
148
|
+
i0.ɵɵelement(3, "mj-code-editor", 62);
|
|
157
149
|
i0.ɵɵelementEnd();
|
|
158
150
|
} if (rf & 2) {
|
|
159
|
-
const
|
|
160
|
-
i0.ɵɵ
|
|
161
|
-
i0.ɵɵ
|
|
151
|
+
const execution_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
152
|
+
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
153
|
+
i0.ɵɵadvance(3);
|
|
154
|
+
i0.ɵɵproperty("value", ctx_r1.getExecutionResultPreview(execution_r6, false))("readonly", true)("lineWrapping", true);
|
|
162
155
|
} }
|
|
163
|
-
function
|
|
164
|
-
|
|
165
|
-
i0.ɵɵ
|
|
166
|
-
i0.ɵɵ
|
|
167
|
-
i0.ɵɵelement(1, "i", 60);
|
|
156
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
157
|
+
i0.ɵɵelementStart(0, "div", 57)(1, "h5");
|
|
158
|
+
i0.ɵɵelement(2, "i", 63);
|
|
159
|
+
i0.ɵɵtext(3, " Error");
|
|
168
160
|
i0.ɵɵelementEnd();
|
|
161
|
+
i0.ɵɵelementStart(4, "div", 64);
|
|
162
|
+
i0.ɵɵtext(5);
|
|
163
|
+
i0.ɵɵelementEnd()();
|
|
164
|
+
} if (rf & 2) {
|
|
165
|
+
const execution_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
166
|
+
i0.ɵɵadvance(5);
|
|
167
|
+
i0.ɵɵtextInterpolate(execution_r6.ErrorMessage);
|
|
169
168
|
} }
|
|
170
|
-
function
|
|
171
|
-
|
|
172
|
-
i0.ɵɵ
|
|
173
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template_div_click_0_listener() { const action_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("Actions", action_r8.ID)); });
|
|
174
|
-
i0.ɵɵelementStart(1, "div", 48);
|
|
175
|
-
i0.ɵɵelement(2, "i");
|
|
169
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
170
|
+
i0.ɵɵelementStart(0, "div", 59)(1, "span", 60);
|
|
171
|
+
i0.ɵɵtext(2, "Completed:");
|
|
176
172
|
i0.ɵɵelementEnd();
|
|
177
|
-
i0.ɵɵelementStart(3, "
|
|
178
|
-
i0.ɵɵtext(
|
|
173
|
+
i0.ɵɵelementStart(3, "span", 61);
|
|
174
|
+
i0.ɵɵtext(4);
|
|
175
|
+
i0.ɵɵpipe(5, "date");
|
|
176
|
+
i0.ɵɵelementEnd()();
|
|
177
|
+
} if (rf & 2) {
|
|
178
|
+
const execution_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
179
|
+
i0.ɵɵadvance(4);
|
|
180
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, execution_r6.CompletedAt, "medium"));
|
|
181
|
+
} }
|
|
182
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
183
|
+
i0.ɵɵelementStart(0, "div", 59)(1, "span", 60);
|
|
184
|
+
i0.ɵɵtext(2, "Conversation:");
|
|
179
185
|
i0.ɵɵelementEnd();
|
|
180
|
-
i0.ɵɵ
|
|
181
|
-
i0.ɵɵ
|
|
182
|
-
i0.ɵɵ
|
|
183
|
-
|
|
184
|
-
i0.ɵɵ
|
|
186
|
+
i0.ɵɵelementStart(3, "span", 61);
|
|
187
|
+
i0.ɵɵtext(4);
|
|
188
|
+
i0.ɵɵelementEnd()();
|
|
189
|
+
} if (rf & 2) {
|
|
190
|
+
const execution_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
191
|
+
i0.ɵɵadvance(4);
|
|
192
|
+
i0.ɵɵtextInterpolate(execution_r6.ConversationID);
|
|
193
|
+
} }
|
|
194
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
195
|
+
i0.ɵɵelementStart(0, "div", 54);
|
|
196
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_1_Template, 4, 3, "div", 56)(2, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_2_Template, 6, 1, "div", 57);
|
|
197
|
+
i0.ɵɵelementStart(3, "div", 58)(4, "div", 59)(5, "span", 60);
|
|
198
|
+
i0.ɵɵtext(6, "Started:");
|
|
199
|
+
i0.ɵɵelementEnd();
|
|
200
|
+
i0.ɵɵelementStart(7, "span", 61);
|
|
201
|
+
i0.ɵɵtext(8);
|
|
202
|
+
i0.ɵɵpipe(9, "date");
|
|
203
|
+
i0.ɵɵelementEnd()();
|
|
204
|
+
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_10_Template, 6, 4, "div", 59)(11, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_11_Template, 5, 1, "div", 59);
|
|
205
|
+
i0.ɵɵelementEnd()();
|
|
206
|
+
} if (rf & 2) {
|
|
207
|
+
const execution_r6 = i0.ɵɵnextContext().$implicit;
|
|
208
|
+
i0.ɵɵadvance();
|
|
209
|
+
i0.ɵɵconditional(execution_r6.Result ? 1 : -1);
|
|
210
|
+
i0.ɵɵadvance();
|
|
211
|
+
i0.ɵɵconditional(execution_r6.ErrorMessage ? 2 : -1);
|
|
212
|
+
i0.ɵɵadvance(6);
|
|
213
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 5, execution_r6.StartedAt, "medium"));
|
|
214
|
+
i0.ɵɵadvance(2);
|
|
215
|
+
i0.ɵɵconditional(execution_r6.CompletedAt ? 10 : -1);
|
|
216
|
+
i0.ɵɵadvance();
|
|
217
|
+
i0.ɵɵconditional(execution_r6.ConversationID ? 11 : -1);
|
|
218
|
+
} }
|
|
219
|
+
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
220
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
221
|
+
i0.ɵɵelementStart(0, "div", 41)(1, "div")(2, "div", 42);
|
|
222
|
+
i0.ɵɵelement(3, "i");
|
|
223
|
+
i0.ɵɵelementEnd();
|
|
224
|
+
i0.ɵɵelementStart(4, "div", 43)(5, "div", 44);
|
|
225
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template_div_click_5_listener() { const execution_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.toggleExecutionExpanded(execution_r6.ID)); });
|
|
226
|
+
i0.ɵɵelementStart(6, "div")(7, "div", 45);
|
|
227
|
+
i0.ɵɵelement(8, "i", 46);
|
|
228
|
+
i0.ɵɵtext(9);
|
|
229
|
+
i0.ɵɵelementStart(10, "span", 47);
|
|
185
230
|
i0.ɵɵtext(11);
|
|
231
|
+
i0.ɵɵpipe(12, "date");
|
|
232
|
+
i0.ɵɵelementEnd()();
|
|
233
|
+
i0.ɵɵelementStart(13, "div", 48)(14, "span", 28);
|
|
234
|
+
i0.ɵɵtext(15);
|
|
235
|
+
i0.ɵɵelementEnd();
|
|
236
|
+
i0.ɵɵtemplate(16, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_16_Template, 3, 1, "span", 49);
|
|
237
|
+
i0.ɵɵelementStart(17, "div", 50)(18, "button", 51);
|
|
238
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template_button_click_18_listener($event) { const execution_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.openExecutionRecord(execution_r6.ID); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
239
|
+
i0.ɵɵelement(19, "i", 52);
|
|
186
240
|
i0.ɵɵelementEnd()()();
|
|
187
|
-
i0.ɵɵ
|
|
188
|
-
i0.ɵɵtemplate(13, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_13_Template, 2, 0, "button", 57);
|
|
189
|
-
i0.ɵɵelement(14, "i", 58);
|
|
241
|
+
i0.ɵɵtemplate(20, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_20_Template, 2, 1, "div", 53);
|
|
190
242
|
i0.ɵɵelementEnd()();
|
|
243
|
+
i0.ɵɵtemplate(21, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_21_Template, 12, 8, "div", 54);
|
|
244
|
+
i0.ɵɵelementEnd()()();
|
|
191
245
|
} if (rf & 2) {
|
|
192
|
-
const
|
|
246
|
+
const execution_r6 = ctx.$implicit;
|
|
193
247
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
248
|
+
i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r6.ID]);
|
|
194
249
|
i0.ɵɵadvance(2);
|
|
195
|
-
i0.ɵɵ
|
|
196
|
-
i0.ɵɵadvance(3);
|
|
197
|
-
i0.ɵɵtextInterpolate(action_r8.Name || "Untitled Action");
|
|
250
|
+
i0.ɵɵstyleProp("background-color", ctx_r1.getExecutionStatusColor(execution_r6.Status));
|
|
198
251
|
i0.ɵɵadvance();
|
|
199
|
-
i0.ɵɵ
|
|
252
|
+
i0.ɵɵclassMap(ctx_r1.getExecutionStatusIcon(execution_r6.Status));
|
|
253
|
+
i0.ɵɵadvance(5);
|
|
254
|
+
i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r6.ID]);
|
|
255
|
+
i0.ɵɵadvance();
|
|
256
|
+
i0.ɵɵtextInterpolate1(" Execution #", execution_r6.ID.substring(0, 8), " ");
|
|
200
257
|
i0.ɵɵadvance(2);
|
|
201
|
-
i0.ɵɵ
|
|
258
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(12, 16, execution_r6.__mj_CreatedAt, "MMM d, h:mm a"));
|
|
259
|
+
i0.ɵɵadvance(3);
|
|
260
|
+
i0.ɵɵstyleProp("background-color", ctx_r1.getExecutionStatusColor(execution_r6.Status));
|
|
202
261
|
i0.ɵɵadvance();
|
|
203
|
-
i0.ɵɵ
|
|
262
|
+
i0.ɵɵtextInterpolate1(" ", execution_r6.Status || "Unknown", " ");
|
|
204
263
|
i0.ɵɵadvance();
|
|
205
|
-
i0.ɵɵ
|
|
264
|
+
i0.ɵɵconditional(execution_r6.CompletedAt ? 16 : -1);
|
|
265
|
+
i0.ɵɵadvance(4);
|
|
266
|
+
i0.ɵɵconditional(execution_r6.Result && !ctx_r1.expandedExecutions[execution_r6.ID] ? 20 : -1);
|
|
206
267
|
i0.ɵɵadvance();
|
|
207
|
-
i0.ɵɵ
|
|
208
|
-
i0.ɵɵadvance(2);
|
|
209
|
-
i0.ɵɵconditional(ctx_r1.EditMode ? 13 : -1);
|
|
268
|
+
i0.ɵɵconditional(ctx_r1.expandedExecutions[execution_r6.ID] ? 21 : -1);
|
|
210
269
|
} }
|
|
211
270
|
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
212
|
-
const
|
|
213
|
-
i0.ɵɵelementStart(0, "div",
|
|
214
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(
|
|
271
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
272
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
273
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Runs", "")); });
|
|
215
274
|
i0.ɵɵelementStart(1, "span");
|
|
216
275
|
i0.ɵɵtext(2);
|
|
217
276
|
i0.ɵɵelementEnd()();
|
|
218
277
|
} if (rf & 2) {
|
|
219
278
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
220
279
|
i0.ɵɵadvance(2);
|
|
221
|
-
i0.ɵɵtextInterpolate1("View all ", ctx_r1.
|
|
280
|
+
i0.ɵɵtextInterpolate1("View all ", ctx_r1.executionHistoryCount, " executions...");
|
|
222
281
|
} }
|
|
223
282
|
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
224
|
-
i0.ɵɵelementStart(0, "div",
|
|
225
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template,
|
|
226
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div",
|
|
283
|
+
i0.ɵɵelementStart(0, "div", 38);
|
|
284
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template, 22, 19, "div", 39, _forTrack0);
|
|
285
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 40);
|
|
227
286
|
i0.ɵɵelementEnd();
|
|
228
287
|
} if (rf & 2) {
|
|
229
288
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
230
289
|
i0.ɵɵadvance();
|
|
231
|
-
i0.ɵɵrepeater(ctx_r1.
|
|
290
|
+
i0.ɵɵrepeater(ctx_r1.recentExecutions);
|
|
232
291
|
i0.ɵɵadvance(2);
|
|
233
|
-
i0.ɵɵconditional(ctx_r1.
|
|
292
|
+
i0.ɵɵconditional(ctx_r1.executionHistoryCount > ctx_r1.recentExecutions.length ? 3 : -1);
|
|
234
293
|
} }
|
|
235
294
|
function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
-
i0.ɵɵelementStart(0, "div",
|
|
237
|
-
i0.ɵɵ
|
|
295
|
+
i0.ɵɵelementStart(0, "div", 34)(1, "div", 35)(2, "div", 36);
|
|
296
|
+
i0.ɵɵtext(3, " Review execution history, requests, and performance metrics for this agent. ");
|
|
238
297
|
i0.ɵɵelementEnd()();
|
|
239
|
-
i0.ɵɵtemplate(4, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_4_Template,
|
|
298
|
+
i0.ɵɵtemplate(4, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_4_Template, 6, 0, "div", 37)(5, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Template, 4, 1, "div", 38);
|
|
240
299
|
i0.ɵɵelementEnd();
|
|
241
300
|
} if (rf & 2) {
|
|
242
301
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
243
|
-
i0.ɵɵadvance(
|
|
244
|
-
i0.ɵɵconditional(ctx_r1.
|
|
245
|
-
i0.ɵɵadvance();
|
|
246
|
-
i0.ɵɵconditional(ctx_r1.actionCount === 0 ? 4 : 5);
|
|
302
|
+
i0.ɵɵadvance(4);
|
|
303
|
+
i0.ɵɵconditional(ctx_r1.executionHistoryCount === 0 ? 4 : 5);
|
|
247
304
|
} }
|
|
248
305
|
function AIAgentFormComponentExtended_form_2_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
249
306
|
i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
|
|
250
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_1_Template, 2, 1, "ng-template",
|
|
307
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_1_Template, 2, 1, "ng-template", 25)(2, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Template, 6, 1, "ng-template", 26);
|
|
251
308
|
i0.ɵɵelementEnd();
|
|
252
309
|
} if (rf & 2) {
|
|
253
|
-
|
|
254
|
-
i0.ɵɵproperty("expanded", ctx_r1.actionCount > 0);
|
|
310
|
+
i0.ɵɵproperty("expanded", true);
|
|
255
311
|
} }
|
|
256
312
|
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
257
|
-
i0.ɵɵelement(0, "i",
|
|
313
|
+
i0.ɵɵelement(0, "i", 66);
|
|
258
314
|
i0.ɵɵtext(1);
|
|
259
315
|
} if (rf & 2) {
|
|
260
316
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
261
317
|
i0.ɵɵadvance();
|
|
262
|
-
i0.ɵɵtextInterpolate1("
|
|
318
|
+
i0.ɵɵtextInterpolate1(" Prompts", ctx_r1.promptCount > 0 ? " (" + ctx_r1.promptCount + ")" : "", " ");
|
|
263
319
|
} }
|
|
264
|
-
function
|
|
265
|
-
const
|
|
266
|
-
i0.ɵɵelementStart(0, "
|
|
267
|
-
i0.ɵɵ
|
|
268
|
-
i0.ɵɵelement(1, "i", 42);
|
|
269
|
-
i0.ɵɵtext(2, " Add Sub-Agent ");
|
|
320
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
321
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
322
|
+
i0.ɵɵelementStart(0, "kendo-dropdownlist", 77);
|
|
323
|
+
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.record.ModelSelectionMode, $event) || (ctx_r1.record.ModelSelectionMode = $event); return i0.ɵɵresetView($event); });
|
|
270
324
|
i0.ɵɵelementEnd();
|
|
325
|
+
} if (rf & 2) {
|
|
326
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
327
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.ModelSelectionMode);
|
|
328
|
+
i0.ɵɵproperty("data", ctx_r1.modelSelectionModes)("valuePrimitive", true);
|
|
271
329
|
} }
|
|
272
|
-
function
|
|
273
|
-
|
|
274
|
-
i0.ɵɵ
|
|
275
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_6_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.createSubAgent()); });
|
|
276
|
-
i0.ɵɵelement(1, "i", 42);
|
|
277
|
-
i0.ɵɵtext(2, " Create First Sub-Agent ");
|
|
330
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
331
|
+
i0.ɵɵelementStart(0, "span", 73);
|
|
332
|
+
i0.ɵɵtext(1);
|
|
278
333
|
i0.ɵɵelementEnd();
|
|
334
|
+
} if (rf & 2) {
|
|
335
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
336
|
+
i0.ɵɵadvance();
|
|
337
|
+
i0.ɵɵtextInterpolate(ctx_r1.record.ModelSelectionMode || "Agent Type");
|
|
279
338
|
} }
|
|
280
|
-
function
|
|
281
|
-
i0.ɵɵ
|
|
282
|
-
i0.ɵɵ
|
|
339
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
340
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
341
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
342
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
|
|
343
|
+
i0.ɵɵelement(1, "i", 79);
|
|
344
|
+
i0.ɵɵtext(2, " Add Prompt ");
|
|
345
|
+
i0.ɵɵelementEnd();
|
|
346
|
+
} }
|
|
347
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
348
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
349
|
+
i0.ɵɵelementStart(0, "button", 81);
|
|
350
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_11_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
|
|
351
|
+
i0.ɵɵelement(1, "i", 79);
|
|
352
|
+
i0.ɵɵtext(2, " Create First Prompt ");
|
|
353
|
+
i0.ɵɵelementEnd();
|
|
354
|
+
} }
|
|
355
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
356
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
357
|
+
i0.ɵɵelement(1, "i", 66);
|
|
283
358
|
i0.ɵɵelementStart(2, "h4");
|
|
284
|
-
i0.ɵɵtext(3, "No
|
|
359
|
+
i0.ɵɵtext(3, "No Prompts Configured");
|
|
285
360
|
i0.ɵɵelementEnd();
|
|
286
361
|
i0.ɵɵelementStart(4, "p");
|
|
287
|
-
i0.ɵɵtext(5, "
|
|
362
|
+
i0.ɵɵtext(5, "Add prompts to define how this agent processes requests and generates responses.");
|
|
288
363
|
i0.ɵɵelementEnd();
|
|
289
|
-
i0.ɵɵtemplate(6,
|
|
364
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_11_Conditional_6_Template, 3, 0, "button", 80);
|
|
290
365
|
i0.ɵɵelementEnd();
|
|
291
366
|
} if (rf & 2) {
|
|
292
367
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
293
368
|
i0.ɵɵadvance(6);
|
|
294
369
|
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
295
370
|
} }
|
|
296
|
-
function
|
|
297
|
-
i0.ɵɵ
|
|
298
|
-
} if (rf & 2) {
|
|
299
|
-
const subAgent_r14 = i0.ɵɵnextContext().$implicit;
|
|
300
|
-
i0.ɵɵproperty("src", subAgent_r14.LogoURL, i0.ɵɵsanitizeUrl)("alt", subAgent_r14.Name + " logo");
|
|
301
|
-
} }
|
|
302
|
-
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
303
|
-
i0.ɵɵelement(0, "i");
|
|
304
|
-
} if (rf & 2) {
|
|
305
|
-
const subAgent_r14 = i0.ɵɵnextContext().$implicit;
|
|
306
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
307
|
-
i0.ɵɵclassMap(ctx_r1.getSubAgentIcon(subAgent_r14));
|
|
308
|
-
} }
|
|
309
|
-
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
310
|
-
i0.ɵɵelementStart(0, "div", 51);
|
|
371
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
372
|
+
i0.ɵɵelementStart(0, "div", 88);
|
|
311
373
|
i0.ɵɵtext(1);
|
|
312
374
|
i0.ɵɵelementEnd();
|
|
313
375
|
} if (rf & 2) {
|
|
314
|
-
const
|
|
376
|
+
const prompt_r12 = i0.ɵɵnextContext().$implicit;
|
|
315
377
|
i0.ɵɵadvance();
|
|
316
|
-
i0.ɵɵ
|
|
378
|
+
i0.ɵɵtextInterpolate2("", prompt_r12.TemplateText.substring(0, 120), "", prompt_r12.TemplateText.length > 120 ? "..." : "", "");
|
|
317
379
|
} }
|
|
318
|
-
function
|
|
319
|
-
i0.ɵɵelementStart(0, "span",
|
|
380
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
381
|
+
i0.ɵɵelementStart(0, "span", 90);
|
|
320
382
|
i0.ɵɵtext(1);
|
|
321
383
|
i0.ɵɵelementEnd();
|
|
322
384
|
} if (rf & 2) {
|
|
323
|
-
const
|
|
324
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
325
|
-
i0.ɵɵstyleProp("background-color", ctx_r1.getStatusBadgeColor());
|
|
385
|
+
const prompt_r12 = i0.ɵɵnextContext().$implicit;
|
|
326
386
|
i0.ɵɵadvance();
|
|
327
|
-
i0.ɵɵ
|
|
387
|
+
i0.ɵɵtextInterpolate(prompt_r12.PromptRole);
|
|
328
388
|
} }
|
|
329
|
-
function
|
|
330
|
-
i0.ɵɵ
|
|
331
|
-
i0.ɵɵ
|
|
389
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
390
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
391
|
+
i0.ɵɵelementStart(0, "button", 94);
|
|
392
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_10_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const prompt_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removePrompt(prompt_r12, $event)); });
|
|
393
|
+
i0.ɵɵelement(1, "i", 95);
|
|
332
394
|
i0.ɵɵelementEnd();
|
|
333
|
-
} if (rf & 2) {
|
|
334
|
-
const subAgent_r14 = i0.ɵɵnextContext().$implicit;
|
|
335
|
-
i0.ɵɵadvance();
|
|
336
|
-
i0.ɵɵtextInterpolate(subAgent_r14.ExecutionMode);
|
|
337
395
|
} }
|
|
338
|
-
function
|
|
339
|
-
const
|
|
340
|
-
i0.ɵɵelementStart(0, "div",
|
|
341
|
-
i0.ɵɵlistener("click", function
|
|
342
|
-
i0.ɵɵelementStart(1, "div",
|
|
343
|
-
i0.ɵɵ
|
|
396
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
397
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
398
|
+
i0.ɵɵelementStart(0, "div", 83);
|
|
399
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Template_div_click_0_listener() { const prompt_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Prompts", prompt_r12.ID)); });
|
|
400
|
+
i0.ɵɵelementStart(1, "div", 84);
|
|
401
|
+
i0.ɵɵelement(2, "i", 85);
|
|
344
402
|
i0.ɵɵelementEnd();
|
|
345
|
-
i0.ɵɵelementStart(
|
|
346
|
-
i0.ɵɵtext(
|
|
403
|
+
i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
|
|
404
|
+
i0.ɵɵtext(5);
|
|
347
405
|
i0.ɵɵelementEnd();
|
|
348
|
-
i0.ɵɵtemplate(
|
|
349
|
-
i0.ɵɵelementStart(
|
|
350
|
-
i0.ɵɵtemplate(
|
|
406
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_6_Template, 2, 2, "div", 88);
|
|
407
|
+
i0.ɵɵelementStart(7, "div", 89);
|
|
408
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_8_Template, 2, 1, "span", 90);
|
|
351
409
|
i0.ɵɵelementEnd()();
|
|
352
|
-
i0.ɵɵelementStart(
|
|
353
|
-
i0.ɵɵ
|
|
410
|
+
i0.ɵɵelementStart(9, "div", 91);
|
|
411
|
+
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Conditional_10_Template, 2, 0, "button", 92);
|
|
412
|
+
i0.ɵɵelement(11, "i", 93);
|
|
354
413
|
i0.ɵɵelementEnd()();
|
|
355
414
|
} if (rf & 2) {
|
|
356
|
-
const
|
|
415
|
+
const prompt_r12 = ctx.$implicit;
|
|
357
416
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
358
|
-
i0.ɵɵadvance(
|
|
359
|
-
i0.ɵɵ
|
|
360
|
-
i0.ɵɵadvance(4);
|
|
361
|
-
i0.ɵɵtextInterpolate(subAgent_r14.Name || "Untitled Sub-Agent");
|
|
417
|
+
i0.ɵɵadvance(5);
|
|
418
|
+
i0.ɵɵtextInterpolate(prompt_r12.Name);
|
|
362
419
|
i0.ɵɵadvance();
|
|
363
|
-
i0.ɵɵconditional(
|
|
420
|
+
i0.ɵɵconditional(prompt_r12.TemplateText ? 6 : -1);
|
|
364
421
|
i0.ɵɵadvance(2);
|
|
365
|
-
i0.ɵɵconditional(
|
|
366
|
-
i0.ɵɵadvance();
|
|
367
|
-
i0.ɵɵconditional(
|
|
422
|
+
i0.ɵɵconditional(prompt_r12.PromptRole ? 8 : -1);
|
|
423
|
+
i0.ɵɵadvance(2);
|
|
424
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 10 : -1);
|
|
368
425
|
} }
|
|
369
|
-
function
|
|
370
|
-
const
|
|
371
|
-
i0.ɵɵelementStart(0, "div",
|
|
372
|
-
i0.ɵɵlistener("click", function
|
|
426
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
427
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
428
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
429
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Prompts", "")); });
|
|
373
430
|
i0.ɵɵelementStart(1, "span");
|
|
374
431
|
i0.ɵɵtext(2);
|
|
375
432
|
i0.ɵɵelementEnd()();
|
|
376
433
|
} if (rf & 2) {
|
|
377
434
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
378
435
|
i0.ɵɵadvance(2);
|
|
379
|
-
i0.ɵɵtextInterpolate1("View all ", ctx_r1.
|
|
436
|
+
i0.ɵɵtextInterpolate1("View all ", ctx_r1.promptCount, " prompts...");
|
|
380
437
|
} }
|
|
381
|
-
function
|
|
382
|
-
i0.ɵɵelementStart(0, "div",
|
|
383
|
-
i0.ɵɵrepeaterCreate(1,
|
|
384
|
-
i0.ɵɵtemplate(3,
|
|
438
|
+
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
439
|
+
i0.ɵɵelementStart(0, "div", 76);
|
|
440
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_For_2_Template, 12, 4, "div", 82, _forTrack0);
|
|
441
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_Conditional_3_Template, 3, 1, "div", 40);
|
|
385
442
|
i0.ɵɵelementEnd();
|
|
386
443
|
} if (rf & 2) {
|
|
387
444
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
388
445
|
i0.ɵɵadvance();
|
|
389
|
-
i0.ɵɵrepeater(ctx_r1.
|
|
446
|
+
i0.ɵɵrepeater(ctx_r1.agentPrompts);
|
|
390
447
|
i0.ɵɵadvance(2);
|
|
391
|
-
i0.ɵɵconditional(ctx_r1.
|
|
448
|
+
i0.ɵɵconditional(ctx_r1.promptCount > ctx_r1.agentPrompts.length ? 3 : -1);
|
|
392
449
|
} }
|
|
393
450
|
function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
394
|
-
i0.ɵɵelementStart(0, "div",
|
|
395
|
-
i0.ɵɵ
|
|
451
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 68)(3, "div", 69)(4, "label", 70);
|
|
452
|
+
i0.ɵɵelement(5, "i", 71);
|
|
453
|
+
i0.ɵɵtext(6, " Model Selection: ");
|
|
396
454
|
i0.ɵɵelementEnd();
|
|
397
|
-
i0.ɵɵ
|
|
398
|
-
i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_5_Template, 3, 0, "button", 38);
|
|
455
|
+
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Template, 1, 3, "kendo-dropdownlist", 72)(8, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_8_Template, 2, 1, "span", 73);
|
|
399
456
|
i0.ɵɵelementEnd()();
|
|
400
|
-
i0.ɵɵ
|
|
457
|
+
i0.ɵɵelementStart(9, "div", 74);
|
|
458
|
+
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_10_Template, 3, 0, "button", 75);
|
|
459
|
+
i0.ɵɵelementEnd()();
|
|
460
|
+
i0.ɵɵtemplate(11, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_11_Template, 7, 1, "div", 37)(12, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_12_Template, 4, 1, "div", 76);
|
|
401
461
|
i0.ɵɵelementEnd();
|
|
402
462
|
} if (rf & 2) {
|
|
403
463
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
404
|
-
i0.ɵɵadvance(
|
|
405
|
-
i0.ɵɵconditional(ctx_r1.EditMode ?
|
|
464
|
+
i0.ɵɵadvance(7);
|
|
465
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 7 : 8);
|
|
466
|
+
i0.ɵɵadvance(3);
|
|
467
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 10 : -1);
|
|
406
468
|
i0.ɵɵadvance();
|
|
407
|
-
i0.ɵɵconditional(ctx_r1.
|
|
469
|
+
i0.ɵɵconditional(ctx_r1.promptCount === 0 ? 11 : 12);
|
|
408
470
|
} }
|
|
409
471
|
function AIAgentFormComponentExtended_form_2_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
410
472
|
i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
|
|
411
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_1_Template, 2, 1, "ng-template",
|
|
473
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_1_Template, 2, 1, "ng-template", 25)(2, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Template, 13, 3, "ng-template", 26);
|
|
412
474
|
i0.ɵɵelementEnd();
|
|
413
475
|
} if (rf & 2) {
|
|
414
|
-
|
|
415
|
-
i0.ɵɵproperty("expanded", ctx_r1.subAgentCount > 0);
|
|
476
|
+
i0.ɵɵproperty("expanded", false);
|
|
416
477
|
} }
|
|
417
|
-
function
|
|
418
|
-
i0.ɵɵelement(0, "i",
|
|
419
|
-
i0.ɵɵtext(1);
|
|
420
|
-
} if (rf & 2) {
|
|
421
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
422
|
-
i0.ɵɵadvance();
|
|
423
|
-
i0.ɵɵtextInterpolate1(" Prompts", ctx_r1.promptCount > 0 ? " (" + ctx_r1.promptCount + ")" : "", " ");
|
|
478
|
+
function AIAgentFormComponentExtended_form_2_ng_template_25_Template(rf, ctx) { if (rf & 1) {
|
|
479
|
+
i0.ɵɵelement(0, "i", 96);
|
|
480
|
+
i0.ɵɵtext(1, " Payload ");
|
|
424
481
|
} }
|
|
425
|
-
function
|
|
426
|
-
const
|
|
427
|
-
i0.ɵɵelementStart(0, "
|
|
428
|
-
i0.ɵɵ
|
|
482
|
+
function AIAgentFormComponentExtended_form_2_ng_template_26_Template(rf, ctx) { if (rf & 1) {
|
|
483
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
484
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 36);
|
|
485
|
+
i0.ɵɵtext(3, " Configure how this agent handles data payloads and validation. ");
|
|
486
|
+
i0.ɵɵelementEnd()();
|
|
487
|
+
i0.ɵɵelementStart(4, "div", 97)(5, "h4", 98);
|
|
488
|
+
i0.ɵɵelement(6, "i", 99);
|
|
489
|
+
i0.ɵɵtext(7, " Configuration ");
|
|
429
490
|
i0.ɵɵelementEnd();
|
|
491
|
+
i0.ɵɵelementStart(8, "div", 100);
|
|
492
|
+
i0.ɵɵelement(9, "mj-form-field", 101)(10, "mj-form-field", 102)(11, "mj-form-field", 103);
|
|
493
|
+
i0.ɵɵelementEnd()();
|
|
494
|
+
i0.ɵɵelementStart(12, "div", 104)(13, "h4", 98);
|
|
495
|
+
i0.ɵɵelement(14, "i", 105);
|
|
496
|
+
i0.ɵɵtext(15, " Path Configuration ");
|
|
497
|
+
i0.ɵɵelementEnd();
|
|
498
|
+
i0.ɵɵelementStart(16, "div", 106)(17, "label", 107);
|
|
499
|
+
i0.ɵɵelement(18, "i", 108);
|
|
500
|
+
i0.ɵɵtext(19, " Downstream Paths ");
|
|
501
|
+
i0.ɵɵelementStart(20, "span", 109);
|
|
502
|
+
i0.ɵɵtext(21, "JSON array of paths to pass to sub-agents");
|
|
503
|
+
i0.ɵɵelementEnd()();
|
|
504
|
+
i0.ɵɵelementStart(22, "mj-code-editor", 110);
|
|
505
|
+
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_2_ng_template_26_Template_mj_code_editor_valueChange_22_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadDownstreamPaths", $event)); });
|
|
506
|
+
i0.ɵɵelementEnd()();
|
|
507
|
+
i0.ɵɵelementStart(23, "div", 106)(24, "label", 107);
|
|
508
|
+
i0.ɵɵelement(25, "i", 111);
|
|
509
|
+
i0.ɵɵtext(26, " Upstream Paths ");
|
|
510
|
+
i0.ɵɵelementStart(27, "span", 109);
|
|
511
|
+
i0.ɵɵtext(28, "JSON array of paths to return to parent agent");
|
|
512
|
+
i0.ɵɵelementEnd()();
|
|
513
|
+
i0.ɵɵelementStart(29, "mj-code-editor", 110);
|
|
514
|
+
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_2_ng_template_26_Template_mj_code_editor_valueChange_29_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadUpstreamPaths", $event)); });
|
|
515
|
+
i0.ɵɵelementEnd()();
|
|
516
|
+
i0.ɵɵelementStart(30, "div", 106)(31, "label", 107);
|
|
517
|
+
i0.ɵɵelement(32, "i", 112);
|
|
518
|
+
i0.ɵɵtext(33, " Self Read Paths ");
|
|
519
|
+
i0.ɵɵelementStart(34, "span", 109);
|
|
520
|
+
i0.ɵɵtext(35, "JSON array of paths this agent can read");
|
|
521
|
+
i0.ɵɵelementEnd()();
|
|
522
|
+
i0.ɵɵelementStart(36, "mj-code-editor", 110);
|
|
523
|
+
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_2_ng_template_26_Template_mj_code_editor_valueChange_36_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfReadPaths", $event)); });
|
|
524
|
+
i0.ɵɵelementEnd()();
|
|
525
|
+
i0.ɵɵelementStart(37, "div", 106)(38, "label", 107);
|
|
526
|
+
i0.ɵɵelement(39, "i", 113);
|
|
527
|
+
i0.ɵɵtext(40, " Self Write Paths ");
|
|
528
|
+
i0.ɵɵelementStart(41, "span", 109);
|
|
529
|
+
i0.ɵɵtext(42, "JSON array of paths this agent can write to");
|
|
530
|
+
i0.ɵɵelementEnd()();
|
|
531
|
+
i0.ɵɵelementStart(43, "mj-code-editor", 110);
|
|
532
|
+
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_2_ng_template_26_Template_mj_code_editor_valueChange_43_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfWritePaths", $event)); });
|
|
533
|
+
i0.ɵɵelementEnd()()();
|
|
534
|
+
i0.ɵɵelementStart(44, "div", 114)(45, "h4", 98);
|
|
535
|
+
i0.ɵɵelement(46, "i", 115);
|
|
536
|
+
i0.ɵɵtext(47, " Final Payload Validation ");
|
|
537
|
+
i0.ɵɵelementEnd();
|
|
538
|
+
i0.ɵɵelementStart(48, "div", 106)(49, "label", 107)(50, "span", 109);
|
|
539
|
+
i0.ɵɵtext(51, "JSON validation rules or schema for final payload validation");
|
|
540
|
+
i0.ɵɵelementEnd()();
|
|
541
|
+
i0.ɵɵelementStart(52, "mj-code-editor", 116);
|
|
542
|
+
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_2_ng_template_26_Template_mj_code_editor_valueChange_52_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("FinalPayloadValidation", $event)); });
|
|
543
|
+
i0.ɵɵelementEnd()()()();
|
|
430
544
|
} if (rf & 2) {
|
|
431
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
432
|
-
i0.ɵɵ
|
|
433
|
-
i0.ɵɵproperty("
|
|
545
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
546
|
+
i0.ɵɵadvance(9);
|
|
547
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
548
|
+
i0.ɵɵadvance();
|
|
549
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
550
|
+
i0.ɵɵadvance();
|
|
551
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
552
|
+
i0.ɵɵadvance(11);
|
|
553
|
+
i0.ɵɵproperty("value", ctx_r1.record.PayloadDownstreamPaths || "[]")("readonly", !ctx_r1.EditMode)("lineWrapping", true);
|
|
554
|
+
i0.ɵɵadvance(7);
|
|
555
|
+
i0.ɵɵproperty("value", ctx_r1.record.PayloadUpstreamPaths || "[]")("readonly", !ctx_r1.EditMode)("lineWrapping", true);
|
|
556
|
+
i0.ɵɵadvance(7);
|
|
557
|
+
i0.ɵɵproperty("value", ctx_r1.record.PayloadSelfReadPaths || "[]")("readonly", !ctx_r1.EditMode)("lineWrapping", true);
|
|
558
|
+
i0.ɵɵadvance(7);
|
|
559
|
+
i0.ɵɵproperty("value", ctx_r1.record.PayloadSelfWritePaths || "[]")("readonly", !ctx_r1.EditMode)("lineWrapping", true);
|
|
560
|
+
i0.ɵɵadvance(9);
|
|
561
|
+
i0.ɵɵproperty("value", ctx_r1.record.FinalPayloadValidation || "{}")("readonly", !ctx_r1.EditMode)("lineWrapping", true);
|
|
434
562
|
} }
|
|
435
|
-
function
|
|
436
|
-
i0.ɵɵ
|
|
563
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
564
|
+
i0.ɵɵelement(0, "i", 117);
|
|
437
565
|
i0.ɵɵtext(1);
|
|
438
|
-
i0.ɵɵelementEnd();
|
|
439
566
|
} if (rf & 2) {
|
|
440
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
567
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
441
568
|
i0.ɵɵadvance();
|
|
442
|
-
i0.ɵɵ
|
|
569
|
+
i0.ɵɵtextInterpolate1(" Actions", ctx_r1.actionCount > 0 ? " (" + ctx_r1.actionCount + ")" : "", " ");
|
|
443
570
|
} }
|
|
444
|
-
function
|
|
445
|
-
const
|
|
446
|
-
i0.ɵɵelementStart(0, "button",
|
|
447
|
-
i0.ɵɵlistener("click", function
|
|
448
|
-
i0.ɵɵelement(1, "i",
|
|
449
|
-
i0.ɵɵtext(2, " Add
|
|
571
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
572
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
573
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
574
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.configureActions()); });
|
|
575
|
+
i0.ɵɵelement(1, "i", 79);
|
|
576
|
+
i0.ɵɵtext(2, " Add Action ");
|
|
450
577
|
i0.ɵɵelementEnd();
|
|
451
578
|
} }
|
|
452
|
-
function
|
|
453
|
-
const
|
|
454
|
-
i0.ɵɵelementStart(0, "button",
|
|
455
|
-
i0.ɵɵlistener("click", function
|
|
456
|
-
i0.ɵɵelement(1, "i",
|
|
457
|
-
i0.ɵɵtext(2, "
|
|
579
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
580
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
581
|
+
i0.ɵɵelementStart(0, "button", 81);
|
|
582
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
|
|
583
|
+
i0.ɵɵelement(1, "i", 79);
|
|
584
|
+
i0.ɵɵtext(2, " Configure First Action ");
|
|
458
585
|
i0.ɵɵelementEnd();
|
|
459
586
|
} }
|
|
460
|
-
function
|
|
461
|
-
i0.ɵɵelementStart(0, "div",
|
|
462
|
-
i0.ɵɵelement(1, "i",
|
|
587
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
588
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
589
|
+
i0.ɵɵelement(1, "i", 117);
|
|
463
590
|
i0.ɵɵelementStart(2, "h4");
|
|
464
|
-
i0.ɵɵtext(3, "No
|
|
591
|
+
i0.ɵɵtext(3, "No Actions Configured");
|
|
465
592
|
i0.ɵɵelementEnd();
|
|
466
593
|
i0.ɵɵelementStart(4, "p");
|
|
467
|
-
i0.ɵɵtext(5, "Add
|
|
594
|
+
i0.ɵɵtext(5, "Add actions to enable this agent to perform specific tasks and operations.");
|
|
468
595
|
i0.ɵɵelementEnd();
|
|
469
|
-
i0.ɵɵtemplate(6,
|
|
596
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Conditional_6_Template, 3, 0, "button", 80);
|
|
470
597
|
i0.ɵɵelementEnd();
|
|
471
598
|
} if (rf & 2) {
|
|
472
599
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
473
600
|
i0.ɵɵadvance(6);
|
|
474
601
|
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
475
602
|
} }
|
|
476
|
-
function
|
|
477
|
-
i0.ɵɵelementStart(0, "div",
|
|
603
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
604
|
+
i0.ɵɵelementStart(0, "div", 88);
|
|
478
605
|
i0.ɵɵtext(1);
|
|
479
606
|
i0.ɵɵelementEnd();
|
|
480
607
|
} if (rf & 2) {
|
|
481
|
-
const
|
|
608
|
+
const action_r19 = i0.ɵɵnextContext().$implicit;
|
|
482
609
|
i0.ɵɵadvance();
|
|
483
|
-
i0.ɵɵ
|
|
610
|
+
i0.ɵɵtextInterpolate(action_r19.Description);
|
|
484
611
|
} }
|
|
485
|
-
function
|
|
486
|
-
i0.ɵɵelementStart(0, "span",
|
|
612
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
613
|
+
i0.ɵɵelementStart(0, "span", 90);
|
|
487
614
|
i0.ɵɵtext(1);
|
|
488
615
|
i0.ɵɵelementEnd();
|
|
489
616
|
} if (rf & 2) {
|
|
490
|
-
const
|
|
617
|
+
const action_r19 = i0.ɵɵnextContext().$implicit;
|
|
491
618
|
i0.ɵɵadvance();
|
|
492
|
-
i0.ɵɵtextInterpolate(
|
|
619
|
+
i0.ɵɵtextInterpolate(action_r19.Type);
|
|
493
620
|
} }
|
|
494
|
-
function
|
|
495
|
-
const
|
|
496
|
-
i0.ɵɵelementStart(0, "button",
|
|
497
|
-
i0.ɵɵlistener("click", function
|
|
498
|
-
i0.ɵɵelement(1, "i",
|
|
621
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
622
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
623
|
+
i0.ɵɵelementStart(0, "button", 123);
|
|
624
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r20); const action_r19 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removeAction(action_r19, $event)); });
|
|
625
|
+
i0.ɵɵelement(1, "i", 95);
|
|
499
626
|
i0.ɵɵelementEnd();
|
|
500
627
|
} }
|
|
501
|
-
function
|
|
502
|
-
const
|
|
503
|
-
i0.ɵɵelementStart(0, "div",
|
|
504
|
-
i0.ɵɵlistener("click", function
|
|
505
|
-
i0.ɵɵelementStart(1, "div",
|
|
506
|
-
i0.ɵɵelement(2, "i"
|
|
628
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
629
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
630
|
+
i0.ɵɵelementStart(0, "div", 119);
|
|
631
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template_div_click_0_listener() { const action_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("Actions", action_r19.ID)); });
|
|
632
|
+
i0.ɵɵelementStart(1, "div", 84);
|
|
633
|
+
i0.ɵɵelement(2, "i");
|
|
507
634
|
i0.ɵɵelementEnd();
|
|
508
|
-
i0.ɵɵelementStart(3, "div",
|
|
635
|
+
i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
|
|
509
636
|
i0.ɵɵtext(5);
|
|
510
637
|
i0.ɵɵelementEnd();
|
|
511
|
-
i0.ɵɵtemplate(6,
|
|
512
|
-
i0.ɵɵelementStart(7, "div",
|
|
513
|
-
i0.ɵɵtemplate(8,
|
|
514
|
-
i0.ɵɵ
|
|
515
|
-
i0.ɵɵ
|
|
516
|
-
i0.ɵɵ
|
|
517
|
-
i0.ɵɵ
|
|
638
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_6_Template, 2, 1, "div", 88);
|
|
639
|
+
i0.ɵɵelementStart(7, "div", 89);
|
|
640
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_8_Template, 2, 1, "span", 90);
|
|
641
|
+
i0.ɵɵelementStart(9, "span", 120);
|
|
642
|
+
i0.ɵɵelement(10, "i", 121);
|
|
643
|
+
i0.ɵɵtext(11);
|
|
644
|
+
i0.ɵɵelementEnd()()();
|
|
645
|
+
i0.ɵɵelementStart(12, "div", 91);
|
|
646
|
+
i0.ɵɵtemplate(13, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_13_Template, 2, 0, "button", 122);
|
|
647
|
+
i0.ɵɵelement(14, "i", 93);
|
|
518
648
|
i0.ɵɵelementEnd()();
|
|
519
649
|
} if (rf & 2) {
|
|
520
|
-
const
|
|
650
|
+
const action_r19 = ctx.$implicit;
|
|
521
651
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
522
|
-
i0.ɵɵadvance(
|
|
523
|
-
i0.ɵɵ
|
|
652
|
+
i0.ɵɵadvance(2);
|
|
653
|
+
i0.ɵɵclassMap(ctx_r1.getActionIcon(action_r19));
|
|
654
|
+
i0.ɵɵadvance(3);
|
|
655
|
+
i0.ɵɵtextInterpolate(action_r19.Name || "Untitled Action");
|
|
524
656
|
i0.ɵɵadvance();
|
|
525
|
-
i0.ɵɵconditional(
|
|
657
|
+
i0.ɵɵconditional(action_r19.Description ? 6 : -1);
|
|
526
658
|
i0.ɵɵadvance(2);
|
|
527
|
-
i0.ɵɵconditional(
|
|
659
|
+
i0.ɵɵconditional(action_r19.Type ? 8 : -1);
|
|
660
|
+
i0.ɵɵadvance();
|
|
661
|
+
i0.ɵɵclassProp("active", action_r19.Status === "Active")("inactive", action_r19.Status !== "Active");
|
|
662
|
+
i0.ɵɵadvance();
|
|
663
|
+
i0.ɵɵclassProp("fa-check-circle", action_r19.Status === "Active")("fa-times-circle", action_r19.Status !== "Active");
|
|
664
|
+
i0.ɵɵadvance();
|
|
665
|
+
i0.ɵɵtextInterpolate1(" ", action_r19.Status, " ");
|
|
528
666
|
i0.ɵɵadvance(2);
|
|
529
|
-
i0.ɵɵconditional(ctx_r1.EditMode ?
|
|
667
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 13 : -1);
|
|
530
668
|
} }
|
|
531
|
-
function
|
|
532
|
-
const
|
|
533
|
-
i0.ɵɵelementStart(0, "div",
|
|
534
|
-
i0.ɵɵlistener("click", function
|
|
669
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
670
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
671
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
672
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Actions", "")); });
|
|
535
673
|
i0.ɵɵelementStart(1, "span");
|
|
536
674
|
i0.ɵɵtext(2);
|
|
537
675
|
i0.ɵɵelementEnd()();
|
|
538
676
|
} if (rf & 2) {
|
|
539
677
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
540
678
|
i0.ɵɵadvance(2);
|
|
541
|
-
i0.ɵɵtextInterpolate1("View all ", ctx_r1.
|
|
679
|
+
i0.ɵɵtextInterpolate1("View all ", ctx_r1.actionCount, " actions...");
|
|
542
680
|
} }
|
|
543
|
-
function
|
|
544
|
-
i0.ɵɵelementStart(0, "div",
|
|
545
|
-
i0.ɵɵrepeaterCreate(1,
|
|
546
|
-
i0.ɵɵtemplate(3,
|
|
681
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
682
|
+
i0.ɵɵelementStart(0, "div", 76);
|
|
683
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template, 15, 15, "div", 118, _forTrack0);
|
|
684
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 40);
|
|
547
685
|
i0.ɵɵelementEnd();
|
|
548
686
|
} if (rf & 2) {
|
|
549
687
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
550
688
|
i0.ɵɵadvance();
|
|
551
|
-
i0.ɵɵrepeater(ctx_r1.
|
|
689
|
+
i0.ɵɵrepeater(ctx_r1.agentActions);
|
|
552
690
|
i0.ɵɵadvance(2);
|
|
553
|
-
i0.ɵɵconditional(ctx_r1.
|
|
691
|
+
i0.ɵɵconditional(ctx_r1.actionCount > ctx_r1.agentActions.length ? 3 : -1);
|
|
554
692
|
} }
|
|
555
|
-
function
|
|
556
|
-
i0.ɵɵelementStart(0, "div",
|
|
557
|
-
i0.ɵɵ
|
|
558
|
-
i0.ɵɵtext(6, " Model Selection: ");
|
|
559
|
-
i0.ɵɵelementEnd();
|
|
560
|
-
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_7_Template, 1, 3, "kendo-dropdownlist", 72)(8, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_8_Template, 2, 1, "span", 73);
|
|
561
|
-
i0.ɵɵelementEnd()();
|
|
562
|
-
i0.ɵɵelementStart(9, "div", 37);
|
|
563
|
-
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_10_Template, 3, 0, "button", 38);
|
|
693
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
694
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 74);
|
|
695
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_3_Template, 3, 0, "button", 75);
|
|
564
696
|
i0.ɵɵelementEnd()();
|
|
565
|
-
i0.ɵɵtemplate(
|
|
697
|
+
i0.ɵɵtemplate(4, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Template, 7, 1, "div", 37)(5, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Template, 4, 1, "div", 76);
|
|
566
698
|
i0.ɵɵelementEnd();
|
|
567
699
|
} if (rf & 2) {
|
|
568
700
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
569
|
-
i0.ɵɵadvance(7);
|
|
570
|
-
i0.ɵɵconditional(ctx_r1.EditMode ? 7 : 8);
|
|
571
701
|
i0.ɵɵadvance(3);
|
|
572
|
-
i0.ɵɵconditional(ctx_r1.EditMode ?
|
|
702
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 3 : -1);
|
|
573
703
|
i0.ɵɵadvance();
|
|
574
|
-
i0.ɵɵconditional(ctx_r1.
|
|
704
|
+
i0.ɵɵconditional(ctx_r1.actionCount === 0 ? 4 : 5);
|
|
575
705
|
} }
|
|
576
|
-
function
|
|
706
|
+
function AIAgentFormComponentExtended_form_2_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
577
707
|
i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
|
|
578
|
-
i0.ɵɵtemplate(1,
|
|
708
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_1_Template, 2, 1, "ng-template", 25)(2, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Template, 6, 2, "ng-template", 26);
|
|
579
709
|
i0.ɵɵelementEnd();
|
|
580
710
|
} if (rf & 2) {
|
|
581
|
-
i0.ɵɵproperty("expanded",
|
|
711
|
+
i0.ɵɵproperty("expanded", false);
|
|
582
712
|
} }
|
|
583
|
-
function
|
|
584
|
-
i0.ɵɵelement(0, "i",
|
|
713
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
714
|
+
i0.ɵɵelement(0, "i", 30);
|
|
585
715
|
i0.ɵɵtext(1);
|
|
586
716
|
} if (rf & 2) {
|
|
587
717
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
588
718
|
i0.ɵɵadvance();
|
|
589
|
-
i0.ɵɵtextInterpolate1("
|
|
719
|
+
i0.ɵɵtextInterpolate1(" Sub-Agents", ctx_r1.subAgentCount > 0 ? " (" + ctx_r1.subAgentCount + ")" : "", " ");
|
|
590
720
|
} }
|
|
591
|
-
function
|
|
592
|
-
i0.ɵɵ
|
|
593
|
-
i0.ɵɵ
|
|
721
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
722
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
723
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
724
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.createSubAgent()); });
|
|
725
|
+
i0.ɵɵelement(1, "i", 79);
|
|
726
|
+
i0.ɵɵtext(2, " Add Sub-Agent ");
|
|
727
|
+
i0.ɵɵelementEnd();
|
|
728
|
+
} }
|
|
729
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
730
|
+
const _r23 = i0.ɵɵgetCurrentView();
|
|
731
|
+
i0.ɵɵelementStart(0, "button", 81);
|
|
732
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.createSubAgent()); });
|
|
733
|
+
i0.ɵɵelement(1, "i", 79);
|
|
734
|
+
i0.ɵɵtext(2, " Create First Sub-Agent ");
|
|
735
|
+
i0.ɵɵelementEnd();
|
|
736
|
+
} }
|
|
737
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
738
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
739
|
+
i0.ɵɵelement(1, "i", 30);
|
|
594
740
|
i0.ɵɵelementStart(2, "h4");
|
|
595
|
-
i0.ɵɵtext(3, "No
|
|
741
|
+
i0.ɵɵtext(3, "No Sub-Agents");
|
|
596
742
|
i0.ɵɵelementEnd();
|
|
597
743
|
i0.ɵɵelementStart(4, "p");
|
|
598
|
-
i0.ɵɵtext(5, "
|
|
599
|
-
i0.ɵɵelementEnd()
|
|
744
|
+
i0.ɵɵtext(5, "Create sub-agents to build a hierarchical structure for complex workflows.");
|
|
745
|
+
i0.ɵɵelementEnd();
|
|
746
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template, 3, 0, "button", 80);
|
|
747
|
+
i0.ɵɵelementEnd();
|
|
748
|
+
} if (rf & 2) {
|
|
749
|
+
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
750
|
+
i0.ɵɵadvance(6);
|
|
751
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
600
752
|
} }
|
|
601
|
-
function
|
|
602
|
-
i0.ɵɵ
|
|
603
|
-
|
|
604
|
-
i0.ɵɵ
|
|
605
|
-
i0.ɵɵ
|
|
753
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
754
|
+
i0.ɵɵelement(0, "img", 126);
|
|
755
|
+
} if (rf & 2) {
|
|
756
|
+
const subAgent_r25 = i0.ɵɵnextContext().$implicit;
|
|
757
|
+
i0.ɵɵproperty("src", subAgent_r25.LogoURL, i0.ɵɵsanitizeUrl)("alt", subAgent_r25.Name + " logo");
|
|
758
|
+
} }
|
|
759
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
760
|
+
i0.ɵɵelement(0, "i");
|
|
761
|
+
} if (rf & 2) {
|
|
762
|
+
const subAgent_r25 = i0.ɵɵnextContext().$implicit;
|
|
763
|
+
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
764
|
+
i0.ɵɵclassMap(ctx_r1.getSubAgentIcon(subAgent_r25));
|
|
765
|
+
} }
|
|
766
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
767
|
+
i0.ɵɵelementStart(0, "div", 88);
|
|
768
|
+
i0.ɵɵtext(1);
|
|
606
769
|
i0.ɵɵelementEnd();
|
|
607
770
|
} if (rf & 2) {
|
|
608
|
-
const
|
|
609
|
-
i0.ɵɵadvance(
|
|
610
|
-
i0.ɵɵ
|
|
771
|
+
const subAgent_r25 = i0.ɵɵnextContext().$implicit;
|
|
772
|
+
i0.ɵɵadvance();
|
|
773
|
+
i0.ɵɵtextInterpolate(subAgent_r25.Description);
|
|
611
774
|
} }
|
|
612
|
-
function
|
|
613
|
-
i0.ɵɵelementStart(0, "span",
|
|
775
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
776
|
+
i0.ɵɵelementStart(0, "span", 120);
|
|
614
777
|
i0.ɵɵtext(1);
|
|
615
778
|
i0.ɵɵelementEnd();
|
|
616
779
|
} if (rf & 2) {
|
|
617
|
-
const
|
|
780
|
+
const subAgent_r25 = i0.ɵɵnextContext().$implicit;
|
|
781
|
+
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
782
|
+
i0.ɵɵstyleProp("background-color", ctx_r1.getStatusBadgeColor());
|
|
618
783
|
i0.ɵɵadvance();
|
|
619
|
-
i0.ɵɵ
|
|
784
|
+
i0.ɵɵtextInterpolate1(" ", subAgent_r25.Status, " ");
|
|
620
785
|
} }
|
|
621
|
-
function
|
|
622
|
-
|
|
623
|
-
i0.ɵɵ
|
|
624
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Template_div_click_0_listener() { const cycle_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Learning Cycles", cycle_r24.ID)); });
|
|
625
|
-
i0.ɵɵelementStart(1, "div", 48);
|
|
626
|
-
i0.ɵɵelement(2, "i", 80);
|
|
786
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
787
|
+
i0.ɵɵelementStart(0, "span", 90);
|
|
788
|
+
i0.ɵɵtext(1);
|
|
627
789
|
i0.ɵɵelementEnd();
|
|
628
|
-
|
|
629
|
-
i0.ɵɵ
|
|
790
|
+
} if (rf & 2) {
|
|
791
|
+
const subAgent_r25 = i0.ɵɵnextContext().$implicit;
|
|
792
|
+
i0.ɵɵadvance();
|
|
793
|
+
i0.ɵɵtextInterpolate(subAgent_r25.ExecutionMode);
|
|
794
|
+
} }
|
|
795
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
796
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
797
|
+
i0.ɵɵelementStart(0, "div", 125);
|
|
798
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Template_div_click_0_listener() { const subAgent_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agents", subAgent_r25.ID)); });
|
|
799
|
+
i0.ɵɵelementStart(1, "div", 84);
|
|
800
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_2_Template, 1, 2, "img", 126)(3, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_3_Template, 1, 2, "i", 11);
|
|
630
801
|
i0.ɵɵelementEnd();
|
|
631
|
-
i0.ɵɵelementStart(
|
|
632
|
-
i0.ɵɵ
|
|
802
|
+
i0.ɵɵelementStart(4, "div", 86)(5, "div", 87);
|
|
803
|
+
i0.ɵɵtext(6);
|
|
804
|
+
i0.ɵɵelementEnd();
|
|
805
|
+
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_7_Template, 2, 1, "div", 88);
|
|
806
|
+
i0.ɵɵelementStart(8, "div", 89);
|
|
807
|
+
i0.ɵɵtemplate(9, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_9_Template, 2, 3, "span", 127)(10, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_10_Template, 2, 1, "span", 90);
|
|
633
808
|
i0.ɵɵelementEnd()();
|
|
634
|
-
i0.ɵɵelementStart(
|
|
635
|
-
i0.ɵɵelement(
|
|
809
|
+
i0.ɵɵelementStart(11, "div", 91);
|
|
810
|
+
i0.ɵɵelement(12, "i", 93);
|
|
636
811
|
i0.ɵɵelementEnd()();
|
|
637
812
|
} if (rf & 2) {
|
|
638
|
-
const
|
|
639
|
-
i0.ɵɵ
|
|
640
|
-
i0.ɵɵ
|
|
813
|
+
const subAgent_r25 = ctx.$implicit;
|
|
814
|
+
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
815
|
+
i0.ɵɵadvance(2);
|
|
816
|
+
i0.ɵɵconditional(ctx_r1.hasSubAgentLogoURL(subAgent_r25) ? 2 : 3);
|
|
817
|
+
i0.ɵɵadvance(4);
|
|
818
|
+
i0.ɵɵtextInterpolate(subAgent_r25.Name || "Untitled Sub-Agent");
|
|
819
|
+
i0.ɵɵadvance();
|
|
820
|
+
i0.ɵɵconditional(subAgent_r25.Description ? 7 : -1);
|
|
641
821
|
i0.ɵɵadvance(2);
|
|
642
|
-
i0.ɵɵconditional(
|
|
822
|
+
i0.ɵɵconditional(subAgent_r25.Status ? 9 : -1);
|
|
643
823
|
i0.ɵɵadvance();
|
|
644
|
-
i0.ɵɵconditional(
|
|
824
|
+
i0.ɵɵconditional(subAgent_r25.ExecutionMode ? 10 : -1);
|
|
645
825
|
} }
|
|
646
|
-
function
|
|
647
|
-
const
|
|
648
|
-
i0.ɵɵelementStart(0, "div",
|
|
649
|
-
i0.ɵɵlistener("click", function
|
|
826
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
827
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
828
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
829
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agents", "")); });
|
|
650
830
|
i0.ɵɵelementStart(1, "span");
|
|
651
831
|
i0.ɵɵtext(2);
|
|
652
832
|
i0.ɵɵelementEnd()();
|
|
653
833
|
} if (rf & 2) {
|
|
654
834
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
655
835
|
i0.ɵɵadvance(2);
|
|
656
|
-
i0.ɵɵtextInterpolate1("View all ", ctx_r1.
|
|
836
|
+
i0.ɵɵtextInterpolate1("View all ", ctx_r1.subAgentCount, " sub-agents...");
|
|
657
837
|
} }
|
|
658
|
-
function
|
|
659
|
-
i0.ɵɵelementStart(0, "div",
|
|
660
|
-
i0.ɵɵrepeaterCreate(1,
|
|
661
|
-
i0.ɵɵtemplate(3,
|
|
838
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
839
|
+
i0.ɵɵelementStart(0, "div", 76);
|
|
840
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_For_2_Template, 13, 5, "div", 124, _forTrack0);
|
|
841
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div", 40);
|
|
662
842
|
i0.ɵɵelementEnd();
|
|
663
843
|
} if (rf & 2) {
|
|
664
844
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
665
845
|
i0.ɵɵadvance();
|
|
666
|
-
i0.ɵɵrepeater(ctx_r1.
|
|
846
|
+
i0.ɵɵrepeater(ctx_r1.subAgents);
|
|
667
847
|
i0.ɵɵadvance(2);
|
|
668
|
-
i0.ɵɵconditional(ctx_r1.
|
|
848
|
+
i0.ɵɵconditional(ctx_r1.subAgentCount > ctx_r1.subAgents.length ? 3 : -1);
|
|
669
849
|
} }
|
|
670
|
-
function
|
|
671
|
-
i0.ɵɵelementStart(0, "div",
|
|
672
|
-
i0.ɵɵtext(3, "
|
|
850
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
851
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 36);
|
|
852
|
+
i0.ɵɵtext(3, " Manage hierarchical relationships with child agents that work under this agent. ");
|
|
853
|
+
i0.ɵɵelementEnd();
|
|
854
|
+
i0.ɵɵelementStart(4, "div", 74);
|
|
855
|
+
i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_5_Template, 3, 0, "button", 75);
|
|
673
856
|
i0.ɵɵelementEnd()();
|
|
674
|
-
i0.ɵɵtemplate(
|
|
857
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_6_Template, 7, 1, "div", 37)(7, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Conditional_7_Template, 4, 1, "div", 76);
|
|
675
858
|
i0.ɵɵelementEnd();
|
|
676
859
|
} if (rf & 2) {
|
|
677
860
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
678
|
-
i0.ɵɵadvance(
|
|
679
|
-
i0.ɵɵconditional(ctx_r1.
|
|
861
|
+
i0.ɵɵadvance(5);
|
|
862
|
+
i0.ɵɵconditional(ctx_r1.EditMode ? 5 : -1);
|
|
863
|
+
i0.ɵɵadvance();
|
|
864
|
+
i0.ɵɵconditional(ctx_r1.subAgentCount === 0 ? 6 : 7);
|
|
680
865
|
} }
|
|
681
|
-
function
|
|
866
|
+
function AIAgentFormComponentExtended_form_2_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
682
867
|
i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
|
|
683
|
-
i0.ɵɵtemplate(1,
|
|
868
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_1_Template, 2, 1, "ng-template", 25)(2, AIAgentFormComponentExtended_form_2_Conditional_28_ng_template_2_Template, 8, 2, "ng-template", 26);
|
|
684
869
|
i0.ɵɵelementEnd();
|
|
685
870
|
} if (rf & 2) {
|
|
686
871
|
i0.ɵɵproperty("expanded", false);
|
|
687
872
|
} }
|
|
688
|
-
function
|
|
689
|
-
i0.ɵɵelement(0, "i",
|
|
873
|
+
function AIAgentFormComponentExtended_form_2_ng_template_30_Template(rf, ctx) { if (rf & 1) {
|
|
874
|
+
i0.ɵɵelement(0, "i", 128);
|
|
875
|
+
i0.ɵɵtext(1, " Execution Guardrails ");
|
|
876
|
+
} }
|
|
877
|
+
function AIAgentFormComponentExtended_form_2_ng_template_31_Template(rf, ctx) { if (rf & 1) {
|
|
878
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 36);
|
|
879
|
+
i0.ɵɵtext(3, " Set limits to prevent runaway agent executions and control resource usage. ");
|
|
880
|
+
i0.ɵɵelementEnd()();
|
|
881
|
+
i0.ɵɵelementStart(4, "div", 129);
|
|
882
|
+
i0.ɵɵelement(5, "mj-form-field", 130)(6, "mj-form-field", 131)(7, "mj-form-field", 132)(8, "mj-form-field", 133);
|
|
883
|
+
i0.ɵɵelementEnd()();
|
|
884
|
+
} if (rf & 2) {
|
|
885
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
886
|
+
i0.ɵɵadvance(5);
|
|
887
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
888
|
+
i0.ɵɵadvance();
|
|
889
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
890
|
+
i0.ɵɵadvance();
|
|
891
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
892
|
+
i0.ɵɵadvance();
|
|
893
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
894
|
+
} }
|
|
895
|
+
function AIAgentFormComponentExtended_form_2_ng_template_33_Template(rf, ctx) { if (rf & 1) {
|
|
896
|
+
i0.ɵɵelement(0, "i", 99);
|
|
897
|
+
i0.ɵɵtext(1, " Configuration ");
|
|
898
|
+
} }
|
|
899
|
+
function AIAgentFormComponentExtended_form_2_ng_template_34_Template(rf, ctx) { if (rf & 1) {
|
|
900
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 36);
|
|
901
|
+
i0.ɵɵtext(3, " Advanced configuration settings for agent behavior and execution. ");
|
|
902
|
+
i0.ɵɵelementEnd()();
|
|
903
|
+
i0.ɵɵelementStart(4, "div", 129);
|
|
904
|
+
i0.ɵɵelement(5, "mj-form-field", 134)(6, "mj-form-field", 135)(7, "mj-form-field", 136)(8, "mj-form-field", 137)(9, "mj-form-field", 138)(10, "mj-form-field", 139)(11, "mj-form-field", 140)(12, "mj-form-field", 141)(13, "mj-form-field", 142);
|
|
905
|
+
i0.ɵɵelementEnd();
|
|
906
|
+
i0.ɵɵelementStart(14, "div", 143)(15, "h4", 98);
|
|
907
|
+
i0.ɵɵelement(16, "i", 144);
|
|
908
|
+
i0.ɵɵtext(17, " Context Compression ");
|
|
909
|
+
i0.ɵɵelementEnd()();
|
|
910
|
+
i0.ɵɵelementStart(18, "div", 129);
|
|
911
|
+
i0.ɵɵelement(19, "mj-form-field", 145)(20, "mj-form-field", 146)(21, "mj-form-field", 147)(22, "mj-form-field", 148);
|
|
912
|
+
i0.ɵɵelementEnd()();
|
|
913
|
+
} if (rf & 2) {
|
|
914
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
915
|
+
i0.ɵɵadvance(5);
|
|
916
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
917
|
+
i0.ɵɵadvance();
|
|
918
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
919
|
+
i0.ɵɵadvance();
|
|
920
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
921
|
+
i0.ɵɵadvance();
|
|
922
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
923
|
+
i0.ɵɵadvance();
|
|
924
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
925
|
+
i0.ɵɵadvance();
|
|
926
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
927
|
+
i0.ɵɵadvance();
|
|
928
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
929
|
+
i0.ɵɵadvance();
|
|
930
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
931
|
+
i0.ɵɵadvance();
|
|
932
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
933
|
+
i0.ɵɵadvance(6);
|
|
934
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
935
|
+
i0.ɵɵadvance();
|
|
936
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
937
|
+
i0.ɵɵadvance();
|
|
938
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
939
|
+
i0.ɵɵadvance();
|
|
940
|
+
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
941
|
+
} }
|
|
942
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
943
|
+
i0.ɵɵelement(0, "i", 149);
|
|
690
944
|
i0.ɵɵtext(1);
|
|
691
945
|
} if (rf & 2) {
|
|
692
946
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
693
947
|
i0.ɵɵadvance();
|
|
694
948
|
i0.ɵɵtextInterpolate1(" Notes", ctx_r1.noteCount > 0 ? " (" + ctx_r1.noteCount + ")" : "", " ");
|
|
695
949
|
} }
|
|
696
|
-
function
|
|
697
|
-
const
|
|
698
|
-
i0.ɵɵelementStart(0, "button",
|
|
699
|
-
i0.ɵɵlistener("click", function
|
|
700
|
-
i0.ɵɵelement(1, "i",
|
|
950
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
951
|
+
const _r27 = i0.ɵɵgetCurrentView();
|
|
952
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
953
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
|
|
954
|
+
i0.ɵɵelement(1, "i", 79);
|
|
701
955
|
i0.ɵɵtext(2, " Add Note ");
|
|
702
956
|
i0.ɵɵelementEnd();
|
|
703
957
|
} }
|
|
704
|
-
function
|
|
705
|
-
const
|
|
706
|
-
i0.ɵɵelementStart(0, "button",
|
|
707
|
-
i0.ɵɵlistener("click", function
|
|
708
|
-
i0.ɵɵelement(1, "i",
|
|
958
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
959
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
960
|
+
i0.ɵɵelementStart(0, "button", 81);
|
|
961
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_6_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addNote()); });
|
|
962
|
+
i0.ɵɵelement(1, "i", 79);
|
|
709
963
|
i0.ɵɵtext(2, " Create First Note ");
|
|
710
964
|
i0.ɵɵelementEnd();
|
|
711
965
|
} }
|
|
712
|
-
function
|
|
713
|
-
i0.ɵɵelementStart(0, "div",
|
|
714
|
-
i0.ɵɵelement(1, "i",
|
|
966
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
967
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
968
|
+
i0.ɵɵelement(1, "i", 149);
|
|
715
969
|
i0.ɵɵelementStart(2, "h4");
|
|
716
970
|
i0.ɵɵtext(3, "No Notes");
|
|
717
971
|
i0.ɵɵelementEnd();
|
|
718
972
|
i0.ɵɵelementStart(4, "p");
|
|
719
973
|
i0.ɵɵtext(5, "Add notes to document important information, observations, or instructions for this agent.");
|
|
720
974
|
i0.ɵɵelementEnd();
|
|
721
|
-
i0.ɵɵtemplate(6,
|
|
975
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_6_Conditional_6_Template, 3, 0, "button", 80);
|
|
722
976
|
i0.ɵɵelementEnd();
|
|
723
977
|
} if (rf & 2) {
|
|
724
978
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
725
979
|
i0.ɵɵadvance(6);
|
|
726
980
|
i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
|
|
727
981
|
} }
|
|
728
|
-
function
|
|
729
|
-
i0.ɵɵelementStart(0, "div",
|
|
982
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
983
|
+
i0.ɵɵelementStart(0, "div", 88);
|
|
730
984
|
i0.ɵɵtext(1);
|
|
731
985
|
i0.ɵɵelementEnd();
|
|
732
986
|
} if (rf & 2) {
|
|
733
|
-
const
|
|
987
|
+
const note_r30 = i0.ɵɵnextContext().$implicit;
|
|
734
988
|
i0.ɵɵadvance();
|
|
735
|
-
i0.ɵɵtextInterpolate2("",
|
|
989
|
+
i0.ɵɵtextInterpolate2("", note_r30.Note.substring(0, 100), "", note_r30.Note.length > 100 ? "..." : "", "");
|
|
736
990
|
} }
|
|
737
|
-
function
|
|
738
|
-
i0.ɵɵelementStart(0, "span",
|
|
739
|
-
i0.ɵɵelement(1, "i",
|
|
991
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
992
|
+
i0.ɵɵelementStart(0, "span", 90);
|
|
993
|
+
i0.ɵɵelement(1, "i", 152);
|
|
740
994
|
i0.ɵɵtext(2);
|
|
741
995
|
i0.ɵɵpipe(3, "date");
|
|
742
996
|
i0.ɵɵelementEnd();
|
|
743
997
|
} if (rf & 2) {
|
|
744
|
-
const
|
|
998
|
+
const note_r30 = i0.ɵɵnextContext().$implicit;
|
|
745
999
|
i0.ɵɵadvance(2);
|
|
746
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1,
|
|
1000
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, note_r30.__mj_CreatedAt, "short"), " ");
|
|
747
1001
|
} }
|
|
748
|
-
function
|
|
749
|
-
const
|
|
750
|
-
i0.ɵɵelementStart(0, "div",
|
|
751
|
-
i0.ɵɵlistener("click", function
|
|
752
|
-
i0.ɵɵelementStart(1, "div",
|
|
753
|
-
i0.ɵɵelement(2, "i",
|
|
1002
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1003
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
1004
|
+
i0.ɵɵelementStart(0, "div", 151);
|
|
1005
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Template_div_click_0_listener() { const note_r30 = i0.ɵɵrestoreView(_r29).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Notes", note_r30.ID)); });
|
|
1006
|
+
i0.ɵɵelementStart(1, "div", 84);
|
|
1007
|
+
i0.ɵɵelement(2, "i", 149);
|
|
754
1008
|
i0.ɵɵelementEnd();
|
|
755
|
-
i0.ɵɵelementStart(3, "div",
|
|
1009
|
+
i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
|
|
756
1010
|
i0.ɵɵtext(5);
|
|
757
1011
|
i0.ɵɵelementEnd();
|
|
758
|
-
i0.ɵɵtemplate(6,
|
|
759
|
-
i0.ɵɵelementStart(7, "div",
|
|
760
|
-
i0.ɵɵtemplate(8,
|
|
1012
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Conditional_6_Template, 2, 2, "div", 88);
|
|
1013
|
+
i0.ɵɵelementStart(7, "div", 89);
|
|
1014
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Conditional_8_Template, 4, 4, "span", 90);
|
|
761
1015
|
i0.ɵɵelementEnd()();
|
|
762
|
-
i0.ɵɵelementStart(9, "div",
|
|
763
|
-
i0.ɵɵelement(10, "i",
|
|
1016
|
+
i0.ɵɵelementStart(9, "div", 91);
|
|
1017
|
+
i0.ɵɵelement(10, "i", 93);
|
|
764
1018
|
i0.ɵɵelementEnd()();
|
|
765
1019
|
} if (rf & 2) {
|
|
766
|
-
const
|
|
1020
|
+
const note_r30 = ctx.$implicit;
|
|
767
1021
|
i0.ɵɵadvance(5);
|
|
768
|
-
i0.ɵɵtextInterpolate(
|
|
1022
|
+
i0.ɵɵtextInterpolate(note_r30.Type || "Note");
|
|
769
1023
|
i0.ɵɵadvance();
|
|
770
|
-
i0.ɵɵconditional(
|
|
1024
|
+
i0.ɵɵconditional(note_r30.Note ? 6 : -1);
|
|
771
1025
|
i0.ɵɵadvance(2);
|
|
772
|
-
i0.ɵɵconditional(
|
|
1026
|
+
i0.ɵɵconditional(note_r30.__mj_CreatedAt ? 8 : -1);
|
|
773
1027
|
} }
|
|
774
|
-
function
|
|
775
|
-
const
|
|
776
|
-
i0.ɵɵelementStart(0, "div",
|
|
777
|
-
i0.ɵɵlistener("click", function
|
|
1028
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1029
|
+
const _r31 = i0.ɵɵgetCurrentView();
|
|
1030
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
1031
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Notes", "")); });
|
|
778
1032
|
i0.ɵɵelementStart(1, "span");
|
|
779
1033
|
i0.ɵɵtext(2);
|
|
780
1034
|
i0.ɵɵelementEnd()();
|
|
@@ -783,10 +1037,10 @@ function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Condit
|
|
|
783
1037
|
i0.ɵɵadvance(2);
|
|
784
1038
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.noteCount, " notes...");
|
|
785
1039
|
} }
|
|
786
|
-
function
|
|
787
|
-
i0.ɵɵelementStart(0, "div",
|
|
788
|
-
i0.ɵɵrepeaterCreate(1,
|
|
789
|
-
i0.ɵɵtemplate(3,
|
|
1040
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1041
|
+
i0.ɵɵelementStart(0, "div", 76);
|
|
1042
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_For_2_Template, 11, 3, "div", 150, _forTrack0);
|
|
1043
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div", 40);
|
|
790
1044
|
i0.ɵɵelementEnd();
|
|
791
1045
|
} if (rf & 2) {
|
|
792
1046
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -795,14 +1049,14 @@ function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Condit
|
|
|
795
1049
|
i0.ɵɵadvance(2);
|
|
796
1050
|
i0.ɵɵconditional(ctx_r1.noteCount > ctx_r1.agentNotes.length ? 3 : -1);
|
|
797
1051
|
} }
|
|
798
|
-
function
|
|
799
|
-
i0.ɵɵelementStart(0, "div",
|
|
1052
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1053
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 36);
|
|
800
1054
|
i0.ɵɵtext(3, " Manage notes, documentation, and annotations for this agent. ");
|
|
801
1055
|
i0.ɵɵelementEnd();
|
|
802
|
-
i0.ɵɵelementStart(4, "div",
|
|
803
|
-
i0.ɵɵtemplate(5,
|
|
1056
|
+
i0.ɵɵelementStart(4, "div", 74);
|
|
1057
|
+
i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_5_Template, 3, 0, "button", 75);
|
|
804
1058
|
i0.ɵɵelementEnd()();
|
|
805
|
-
i0.ɵɵtemplate(6,
|
|
1059
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_6_Template, 7, 1, "div", 37)(7, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Conditional_7_Template, 4, 1, "div", 76);
|
|
806
1060
|
i0.ɵɵelementEnd();
|
|
807
1061
|
} if (rf & 2) {
|
|
808
1062
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -811,229 +1065,118 @@ function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Templa
|
|
|
811
1065
|
i0.ɵɵadvance();
|
|
812
1066
|
i0.ɵɵconditional(ctx_r1.noteCount === 0 ? 6 : 7);
|
|
813
1067
|
} }
|
|
814
|
-
function
|
|
1068
|
+
function AIAgentFormComponentExtended_form_2_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
815
1069
|
i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
|
|
816
|
-
i0.ɵɵtemplate(1,
|
|
1070
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_1_Template, 2, 1, "ng-template", 25)(2, AIAgentFormComponentExtended_form_2_Conditional_35_ng_template_2_Template, 8, 2, "ng-template", 26);
|
|
817
1071
|
i0.ɵɵelementEnd();
|
|
818
1072
|
} if (rf & 2) {
|
|
819
1073
|
i0.ɵɵproperty("expanded", false);
|
|
820
1074
|
} }
|
|
821
|
-
function
|
|
822
|
-
i0.ɵɵelement(0, "i",
|
|
1075
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1076
|
+
i0.ɵɵelement(0, "i", 153);
|
|
823
1077
|
i0.ɵɵtext(1);
|
|
824
1078
|
} if (rf & 2) {
|
|
825
1079
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
826
1080
|
i0.ɵɵadvance();
|
|
827
|
-
i0.ɵɵtextInterpolate1("
|
|
1081
|
+
i0.ɵɵtextInterpolate1(" Learning Cycles", ctx_r1.learningCycleCount > 0 ? " (" + ctx_r1.learningCycleCount + ")" : "", " ");
|
|
828
1082
|
} }
|
|
829
|
-
function
|
|
830
|
-
i0.ɵɵelementStart(0, "div",
|
|
831
|
-
i0.ɵɵelement(1, "i",
|
|
1083
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
1084
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
1085
|
+
i0.ɵɵelement(1, "i", 153);
|
|
832
1086
|
i0.ɵɵelementStart(2, "h4");
|
|
833
|
-
i0.ɵɵtext(3, "No
|
|
1087
|
+
i0.ɵɵtext(3, "No Learning Cycles");
|
|
834
1088
|
i0.ɵɵelementEnd();
|
|
835
1089
|
i0.ɵɵelementStart(4, "p");
|
|
836
|
-
i0.ɵɵtext(5, "
|
|
1090
|
+
i0.ɵɵtext(5, "Learning cycles will appear here as the agent processes requests and improves over time.");
|
|
837
1091
|
i0.ɵɵelementEnd()();
|
|
838
1092
|
} }
|
|
839
|
-
function
|
|
840
|
-
i0.ɵɵelementStart(0, "span",
|
|
841
|
-
i0.ɵɵelement(1, "i",
|
|
1093
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1094
|
+
i0.ɵɵelementStart(0, "span", 90);
|
|
1095
|
+
i0.ɵɵelement(1, "i", 152);
|
|
842
1096
|
i0.ɵɵtext(2);
|
|
1097
|
+
i0.ɵɵpipe(3, "date");
|
|
843
1098
|
i0.ɵɵelementEnd();
|
|
844
1099
|
} if (rf & 2) {
|
|
845
|
-
const
|
|
846
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
1100
|
+
const cycle_r33 = i0.ɵɵnextContext().$implicit;
|
|
847
1101
|
i0.ɵɵadvance(2);
|
|
848
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
1102
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r33.StartedAt, "short"), " ");
|
|
849
1103
|
} }
|
|
850
|
-
function
|
|
851
|
-
i0.ɵɵelementStart(0, "
|
|
1104
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1105
|
+
i0.ɵɵelementStart(0, "span", 120);
|
|
852
1106
|
i0.ɵɵtext(1);
|
|
853
1107
|
i0.ɵɵelementEnd();
|
|
854
1108
|
} if (rf & 2) {
|
|
855
|
-
const
|
|
856
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
1109
|
+
const cycle_r33 = i0.ɵɵnextContext().$implicit;
|
|
857
1110
|
i0.ɵɵadvance();
|
|
858
|
-
i0.ɵɵtextInterpolate(
|
|
859
|
-
} }
|
|
860
|
-
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
861
|
-
i0.ɵɵelementStart(0, "div", 105)(1, "h5");
|
|
862
|
-
i0.ɵɵtext(2, "Result");
|
|
863
|
-
i0.ɵɵelementEnd();
|
|
864
|
-
i0.ɵɵelement(3, "mj-code-editor", 111);
|
|
865
|
-
i0.ɵɵelementEnd();
|
|
866
|
-
} if (rf & 2) {
|
|
867
|
-
const execution_r32 = i0.ɵɵnextContext(2).$implicit;
|
|
868
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
869
|
-
i0.ɵɵadvance(3);
|
|
870
|
-
i0.ɵɵproperty("value", ctx_r1.getExecutionResultPreview(execution_r32, false))("readonly", true)("lineWrapping", true);
|
|
1111
|
+
i0.ɵɵtextInterpolate(cycle_r33.Status);
|
|
871
1112
|
} }
|
|
872
|
-
function
|
|
873
|
-
i0.ɵɵ
|
|
874
|
-
i0.ɵɵ
|
|
875
|
-
i0.ɵɵ
|
|
1113
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1114
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
1115
|
+
i0.ɵɵelementStart(0, "div", 155);
|
|
1116
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Template_div_click_0_listener() { const cycle_r33 = i0.ɵɵrestoreView(_r32).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Learning Cycles", cycle_r33.ID)); });
|
|
1117
|
+
i0.ɵɵelementStart(1, "div", 84);
|
|
1118
|
+
i0.ɵɵelement(2, "i", 153);
|
|
876
1119
|
i0.ɵɵelementEnd();
|
|
877
|
-
i0.ɵɵelementStart(4, "div",
|
|
1120
|
+
i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
|
|
878
1121
|
i0.ɵɵtext(5);
|
|
879
|
-
i0.ɵɵelementEnd()();
|
|
880
|
-
} if (rf & 2) {
|
|
881
|
-
const execution_r32 = i0.ɵɵnextContext(2).$implicit;
|
|
882
|
-
i0.ɵɵadvance(5);
|
|
883
|
-
i0.ɵɵtextInterpolate(execution_r32.ErrorMessage);
|
|
884
|
-
} }
|
|
885
|
-
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
886
|
-
i0.ɵɵelementStart(0, "div", 108)(1, "span", 109);
|
|
887
|
-
i0.ɵɵtext(2, "Completed:");
|
|
888
|
-
i0.ɵɵelementEnd();
|
|
889
|
-
i0.ɵɵelementStart(3, "span", 110);
|
|
890
|
-
i0.ɵɵtext(4);
|
|
891
|
-
i0.ɵɵpipe(5, "date");
|
|
892
|
-
i0.ɵɵelementEnd()();
|
|
893
|
-
} if (rf & 2) {
|
|
894
|
-
const execution_r32 = i0.ɵɵnextContext(2).$implicit;
|
|
895
|
-
i0.ɵɵadvance(4);
|
|
896
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, execution_r32.CompletedAt, "medium"));
|
|
897
|
-
} }
|
|
898
|
-
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
899
|
-
i0.ɵɵelementStart(0, "div", 108)(1, "span", 109);
|
|
900
|
-
i0.ɵɵtext(2, "Conversation:");
|
|
901
|
-
i0.ɵɵelementEnd();
|
|
902
|
-
i0.ɵɵelementStart(3, "span", 110);
|
|
903
|
-
i0.ɵɵtext(4);
|
|
904
|
-
i0.ɵɵelementEnd()();
|
|
905
|
-
} if (rf & 2) {
|
|
906
|
-
const execution_r32 = i0.ɵɵnextContext(2).$implicit;
|
|
907
|
-
i0.ɵɵadvance(4);
|
|
908
|
-
i0.ɵɵtextInterpolate(execution_r32.ConversationID);
|
|
909
|
-
} }
|
|
910
|
-
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
911
|
-
i0.ɵɵelementStart(0, "div", 103);
|
|
912
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_1_Template, 4, 3, "div", 105)(2, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_2_Template, 6, 1, "div", 106);
|
|
913
|
-
i0.ɵɵelementStart(3, "div", 107)(4, "div", 108)(5, "span", 109);
|
|
914
|
-
i0.ɵɵtext(6, "Started:");
|
|
915
|
-
i0.ɵɵelementEnd();
|
|
916
|
-
i0.ɵɵelementStart(7, "span", 110);
|
|
917
|
-
i0.ɵɵtext(8);
|
|
918
|
-
i0.ɵɵpipe(9, "date");
|
|
919
|
-
i0.ɵɵelementEnd()();
|
|
920
|
-
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_10_Template, 6, 4, "div", 108)(11, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_11_Template, 5, 1, "div", 108);
|
|
921
|
-
i0.ɵɵelementEnd()();
|
|
922
|
-
} if (rf & 2) {
|
|
923
|
-
const execution_r32 = i0.ɵɵnextContext().$implicit;
|
|
924
|
-
i0.ɵɵadvance();
|
|
925
|
-
i0.ɵɵconditional(execution_r32.Result ? 1 : -1);
|
|
926
|
-
i0.ɵɵadvance();
|
|
927
|
-
i0.ɵɵconditional(execution_r32.ErrorMessage ? 2 : -1);
|
|
928
|
-
i0.ɵɵadvance(6);
|
|
929
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 5, execution_r32.StartedAt, "medium"));
|
|
930
|
-
i0.ɵɵadvance(2);
|
|
931
|
-
i0.ɵɵconditional(execution_r32.CompletedAt ? 10 : -1);
|
|
932
|
-
i0.ɵɵadvance();
|
|
933
|
-
i0.ɵɵconditional(execution_r32.ConversationID ? 11 : -1);
|
|
934
|
-
} }
|
|
935
|
-
function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
936
|
-
const _r31 = i0.ɵɵgetCurrentView();
|
|
937
|
-
i0.ɵɵelementStart(0, "div", 90)(1, "div")(2, "div", 91);
|
|
938
|
-
i0.ɵɵelement(3, "i");
|
|
939
1122
|
i0.ɵɵelementEnd();
|
|
940
|
-
i0.ɵɵelementStart(
|
|
941
|
-
i0.ɵɵ
|
|
942
|
-
i0.ɵɵelementStart(6, "div")(7, "div", 94);
|
|
943
|
-
i0.ɵɵelement(8, "i", 95);
|
|
944
|
-
i0.ɵɵtext(9);
|
|
945
|
-
i0.ɵɵelementStart(10, "span", 96);
|
|
946
|
-
i0.ɵɵtext(11);
|
|
947
|
-
i0.ɵɵpipe(12, "date");
|
|
1123
|
+
i0.ɵɵelementStart(6, "div", 89);
|
|
1124
|
+
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Conditional_7_Template, 4, 4, "span", 90)(8, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Conditional_8_Template, 2, 1, "span", 120);
|
|
948
1125
|
i0.ɵɵelementEnd()();
|
|
949
|
-
i0.ɵɵelementStart(
|
|
950
|
-
i0.ɵɵ
|
|
951
|
-
i0.ɵɵelementEnd();
|
|
952
|
-
i0.ɵɵtemplate(16, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_16_Template, 3, 1, "span", 98);
|
|
953
|
-
i0.ɵɵelementStart(17, "div", 99)(18, "button", 100);
|
|
954
|
-
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template_button_click_18_listener($event) { const execution_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.openExecutionRecord(execution_r32.ID); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
955
|
-
i0.ɵɵelement(19, "i", 101);
|
|
956
|
-
i0.ɵɵelementEnd()()();
|
|
957
|
-
i0.ɵɵtemplate(20, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_20_Template, 2, 1, "div", 102);
|
|
1126
|
+
i0.ɵɵelementStart(9, "div", 91);
|
|
1127
|
+
i0.ɵɵelement(10, "i", 93);
|
|
958
1128
|
i0.ɵɵelementEnd()();
|
|
959
|
-
i0.ɵɵtemplate(21, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Template, 12, 8, "div", 103);
|
|
960
|
-
i0.ɵɵelementEnd()()();
|
|
961
1129
|
} if (rf & 2) {
|
|
962
|
-
const
|
|
963
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
964
|
-
i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r32.ID]);
|
|
965
|
-
i0.ɵɵadvance(2);
|
|
966
|
-
i0.ɵɵstyleProp("background-color", ctx_r1.getExecutionStatusColor(execution_r32.Status));
|
|
967
|
-
i0.ɵɵadvance();
|
|
968
|
-
i0.ɵɵclassMap(ctx_r1.getExecutionStatusIcon(execution_r32.Status));
|
|
1130
|
+
const cycle_r33 = ctx.$implicit;
|
|
969
1131
|
i0.ɵɵadvance(5);
|
|
970
|
-
i0.ɵɵ
|
|
971
|
-
i0.ɵɵadvance();
|
|
972
|
-
i0.ɵɵtextInterpolate1(" Execution #", execution_r32.ID.substring(0, 8), " ");
|
|
1132
|
+
i0.ɵɵtextInterpolate1("Learning Cycle ", cycle_r33.ID.substring(0, 8), "");
|
|
973
1133
|
i0.ɵɵadvance(2);
|
|
974
|
-
i0.ɵɵ
|
|
975
|
-
i0.ɵɵadvance(3);
|
|
976
|
-
i0.ɵɵstyleProp("background-color", ctx_r1.getExecutionStatusColor(execution_r32.Status));
|
|
977
|
-
i0.ɵɵadvance();
|
|
978
|
-
i0.ɵɵtextInterpolate1(" ", execution_r32.Status || "Unknown", " ");
|
|
1134
|
+
i0.ɵɵconditional(cycle_r33.StartedAt ? 7 : -1);
|
|
979
1135
|
i0.ɵɵadvance();
|
|
980
|
-
i0.ɵɵconditional(
|
|
981
|
-
i0.ɵɵadvance(4);
|
|
982
|
-
i0.ɵɵconditional(execution_r32.Result && !ctx_r1.expandedExecutions[execution_r32.ID] ? 20 : -1);
|
|
983
|
-
i0.ɵɵadvance();
|
|
984
|
-
i0.ɵɵconditional(ctx_r1.expandedExecutions[execution_r32.ID] ? 21 : -1);
|
|
1136
|
+
i0.ɵɵconditional(cycle_r33.Status ? 8 : -1);
|
|
985
1137
|
} }
|
|
986
|
-
function
|
|
987
|
-
const
|
|
988
|
-
i0.ɵɵelementStart(0, "div",
|
|
989
|
-
i0.ɵɵlistener("click", function
|
|
1138
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1139
|
+
const _r34 = i0.ɵɵgetCurrentView();
|
|
1140
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
1141
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Learning Cycles", "")); });
|
|
990
1142
|
i0.ɵɵelementStart(1, "span");
|
|
991
1143
|
i0.ɵɵtext(2);
|
|
992
1144
|
i0.ɵɵelementEnd()();
|
|
993
1145
|
} if (rf & 2) {
|
|
994
1146
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
995
1147
|
i0.ɵɵadvance(2);
|
|
996
|
-
i0.ɵɵtextInterpolate1("View all ", ctx_r1.
|
|
1148
|
+
i0.ɵɵtextInterpolate1("View all ", ctx_r1.learningCycleCount, " cycles...");
|
|
997
1149
|
} }
|
|
998
|
-
function
|
|
999
|
-
i0.ɵɵelementStart(0, "div",
|
|
1000
|
-
i0.ɵɵrepeaterCreate(1,
|
|
1001
|
-
i0.ɵɵtemplate(3,
|
|
1150
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
1151
|
+
i0.ɵɵelementStart(0, "div", 76);
|
|
1152
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_For_2_Template, 11, 3, "div", 154, _forTrack0);
|
|
1153
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 40);
|
|
1002
1154
|
i0.ɵɵelementEnd();
|
|
1003
1155
|
} if (rf & 2) {
|
|
1004
1156
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
1005
1157
|
i0.ɵɵadvance();
|
|
1006
|
-
i0.ɵɵrepeater(ctx_r1.
|
|
1158
|
+
i0.ɵɵrepeater(ctx_r1.learningCycles);
|
|
1007
1159
|
i0.ɵɵadvance(2);
|
|
1008
|
-
i0.ɵɵconditional(ctx_r1.
|
|
1160
|
+
i0.ɵɵconditional(ctx_r1.learningCycleCount > ctx_r1.learningCycles.length ? 3 : -1);
|
|
1009
1161
|
} }
|
|
1010
|
-
function
|
|
1011
|
-
i0.ɵɵelementStart(0, "div",
|
|
1012
|
-
i0.ɵɵtext(3, "
|
|
1162
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1163
|
+
i0.ɵɵelementStart(0, "div", 67)(1, "div", 35)(2, "div", 36);
|
|
1164
|
+
i0.ɵɵtext(3, " Monitor and manage learning cycles, training sessions, and performance analytics. ");
|
|
1013
1165
|
i0.ɵɵelementEnd()();
|
|
1014
|
-
i0.ɵɵtemplate(4,
|
|
1166
|
+
i0.ɵɵtemplate(4, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_4_Template, 6, 0, "div", 37)(5, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Conditional_5_Template, 4, 1, "div", 76);
|
|
1015
1167
|
i0.ɵɵelementEnd();
|
|
1016
1168
|
} if (rf & 2) {
|
|
1017
1169
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1018
1170
|
i0.ɵɵadvance(4);
|
|
1019
|
-
i0.ɵɵconditional(ctx_r1.
|
|
1171
|
+
i0.ɵɵconditional(ctx_r1.learningCycleCount === 0 ? 4 : 5);
|
|
1020
1172
|
} }
|
|
1021
|
-
function
|
|
1173
|
+
function AIAgentFormComponentExtended_form_2_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
1022
1174
|
i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
|
|
1023
|
-
i0.ɵɵtemplate(1,
|
|
1175
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_1_Template, 2, 1, "ng-template", 25)(2, AIAgentFormComponentExtended_form_2_Conditional_36_ng_template_2_Template, 6, 1, "ng-template", 26);
|
|
1024
1176
|
i0.ɵɵelementEnd();
|
|
1025
1177
|
} if (rf & 2) {
|
|
1026
1178
|
i0.ɵɵproperty("expanded", false);
|
|
1027
1179
|
} }
|
|
1028
|
-
function AIAgentFormComponentExtended_form_2_ng_template_29_Template(rf, ctx) { if (rf & 1) {
|
|
1029
|
-
i0.ɵɵelement(0, "i", 114);
|
|
1030
|
-
i0.ɵɵtext(1, " Details ");
|
|
1031
|
-
} }
|
|
1032
|
-
function AIAgentFormComponentExtended_form_2_ng_template_30_Template(rf, ctx) { if (rf & 1) {
|
|
1033
|
-
i0.ɵɵelementStart(0, "div", 35)(1, "div", 115);
|
|
1034
|
-
i0.ɵɵprojection(2);
|
|
1035
|
-
i0.ɵɵelementEnd()();
|
|
1036
|
-
} }
|
|
1037
1180
|
function AIAgentFormComponentExtended_form_2_Template(rf, ctx) { if (rf & 1) {
|
|
1038
1181
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
1039
1182
|
i0.ɵɵelementStart(0, "form", 4, 0);
|
|
@@ -1053,10 +1196,19 @@ function AIAgentFormComponentExtended_form_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
1053
1196
|
i0.ɵɵelement(19, "i", 22);
|
|
1054
1197
|
i0.ɵɵelementEnd()()()();
|
|
1055
1198
|
i0.ɵɵelementStart(20, "div", 23)(21, "kendo-panelbar");
|
|
1056
|
-
i0.ɵɵtemplate(22, AIAgentFormComponentExtended_form_2_Conditional_22_Template, 3, 1, "kendo-panelbar-item", 24)(23, AIAgentFormComponentExtended_form_2_Conditional_23_Template, 3, 1, "kendo-panelbar-item", 24)
|
|
1057
|
-
i0.ɵɵelementStart(
|
|
1058
|
-
i0.ɵɵtemplate(
|
|
1059
|
-
i0.ɵɵelementEnd()
|
|
1199
|
+
i0.ɵɵtemplate(22, AIAgentFormComponentExtended_form_2_Conditional_22_Template, 3, 1, "kendo-panelbar-item", 24)(23, AIAgentFormComponentExtended_form_2_Conditional_23_Template, 3, 1, "kendo-panelbar-item", 24);
|
|
1200
|
+
i0.ɵɵelementStart(24, "kendo-panelbar-item", 24);
|
|
1201
|
+
i0.ɵɵtemplate(25, AIAgentFormComponentExtended_form_2_ng_template_25_Template, 2, 0, "ng-template", 25)(26, AIAgentFormComponentExtended_form_2_ng_template_26_Template, 53, 21, "ng-template", 26);
|
|
1202
|
+
i0.ɵɵelementEnd();
|
|
1203
|
+
i0.ɵɵtemplate(27, AIAgentFormComponentExtended_form_2_Conditional_27_Template, 3, 1, "kendo-panelbar-item", 24)(28, AIAgentFormComponentExtended_form_2_Conditional_28_Template, 3, 1, "kendo-panelbar-item", 24);
|
|
1204
|
+
i0.ɵɵelementStart(29, "kendo-panelbar-item", 24);
|
|
1205
|
+
i0.ɵɵtemplate(30, AIAgentFormComponentExtended_form_2_ng_template_30_Template, 2, 0, "ng-template", 25)(31, AIAgentFormComponentExtended_form_2_ng_template_31_Template, 9, 8, "ng-template", 26);
|
|
1206
|
+
i0.ɵɵelementEnd();
|
|
1207
|
+
i0.ɵɵelementStart(32, "kendo-panelbar-item", 24);
|
|
1208
|
+
i0.ɵɵtemplate(33, AIAgentFormComponentExtended_form_2_ng_template_33_Template, 2, 0, "ng-template", 25)(34, AIAgentFormComponentExtended_form_2_ng_template_34_Template, 23, 26, "ng-template", 26);
|
|
1209
|
+
i0.ɵɵelementEnd();
|
|
1210
|
+
i0.ɵɵtemplate(35, AIAgentFormComponentExtended_form_2_Conditional_35_Template, 3, 1, "kendo-panelbar-item", 24)(36, AIAgentFormComponentExtended_form_2_Conditional_36_Template, 3, 1, "kendo-panelbar-item", 24);
|
|
1211
|
+
i0.ɵɵelementEnd()()();
|
|
1060
1212
|
} if (rf & 2) {
|
|
1061
1213
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
1062
1214
|
i0.ɵɵadvance(2);
|
|
@@ -1078,15 +1230,19 @@ function AIAgentFormComponentExtended_form_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
1078
1230
|
i0.ɵɵadvance();
|
|
1079
1231
|
i0.ɵɵconditional(ctx_r1.record.ID ? 23 : -1);
|
|
1080
1232
|
i0.ɵɵadvance();
|
|
1081
|
-
i0.ɵɵ
|
|
1082
|
-
i0.ɵɵadvance();
|
|
1083
|
-
i0.ɵɵconditional(ctx_r1.record.ID ? 25 : -1);
|
|
1084
|
-
i0.ɵɵadvance();
|
|
1085
|
-
i0.ɵɵconditional(ctx_r1.record.ID ? 26 : -1);
|
|
1086
|
-
i0.ɵɵadvance();
|
|
1233
|
+
i0.ɵɵproperty("expanded", false);
|
|
1234
|
+
i0.ɵɵadvance(3);
|
|
1087
1235
|
i0.ɵɵconditional(ctx_r1.record.ID ? 27 : -1);
|
|
1088
1236
|
i0.ɵɵadvance();
|
|
1237
|
+
i0.ɵɵconditional(ctx_r1.record.ID ? 28 : -1);
|
|
1238
|
+
i0.ɵɵadvance();
|
|
1089
1239
|
i0.ɵɵproperty("expanded", false);
|
|
1240
|
+
i0.ɵɵadvance(3);
|
|
1241
|
+
i0.ɵɵproperty("expanded", false);
|
|
1242
|
+
i0.ɵɵadvance(3);
|
|
1243
|
+
i0.ɵɵconditional(ctx_r1.record.ID ? 35 : -1);
|
|
1244
|
+
i0.ɵɵadvance();
|
|
1245
|
+
i0.ɵɵconditional(ctx_r1.record.ID ? 36 : -1);
|
|
1090
1246
|
} }
|
|
1091
1247
|
/**
|
|
1092
1248
|
* Enhanced AI Agent form component that extends the auto-generated base form
|
|
@@ -1718,6 +1874,16 @@ let AIAgentFormComponentExtended = class AIAgentFormComponentExtended extends AI
|
|
|
1718
1874
|
}
|
|
1719
1875
|
}
|
|
1720
1876
|
}
|
|
1877
|
+
/**
|
|
1878
|
+
* Updates payload field values from code editor
|
|
1879
|
+
*/
|
|
1880
|
+
updatePayloadField(fieldName, value) {
|
|
1881
|
+
if (this.record) {
|
|
1882
|
+
// Handle the value - it might be a string or an event
|
|
1883
|
+
const newValue = typeof value === 'string' ? value : value?.target?.value || value;
|
|
1884
|
+
this.record[fieldName] = newValue;
|
|
1885
|
+
}
|
|
1886
|
+
}
|
|
1721
1887
|
/**
|
|
1722
1888
|
* Removes an action from the agent
|
|
1723
1889
|
*/
|
|
@@ -1764,16 +1930,15 @@ let AIAgentFormComponentExtended = class AIAgentFormComponentExtended extends AI
|
|
|
1764
1930
|
}
|
|
1765
1931
|
}
|
|
1766
1932
|
static { this.ɵfac = function AIAgentFormComponentExtended_Factory(t) { return new (t || AIAgentFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.DialogService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i4.NewAgentDialogService), i0.ɵɵdirectiveInject(i5.ActionGalleryDialogService), i0.ɵɵdirectiveInject(i6.AITestHarnessDialogService)); }; }
|
|
1767
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentFormComponentExtended, selectors: [["mj-ai-agent-form"]], features: [i0.ɵɵInheritDefinitionFeature],
|
|
1768
|
-
i0.ɵɵprojectionDef();
|
|
1933
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentFormComponentExtended, selectors: [["mj-ai-agent-form"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 1, consts: [["form", "ngForm"], [1, "record-form-container"], ["kendoDialogContainer", ""], ["class", "record-form", 4, "ngIf"], [1, "record-form"], [3, "form"], [1, "agent-header"], [1, "agent-header-content"], [1, "agent-overview"], [1, "agent-icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-info"], ["name", "agentName", "placeholder", "Enter agent name...", 1, "agent-name-input", 3, "ngModel"], [1, "agent-name"], [1, "agent-meta"], [1, "status-badge", 3, "background-color"], [1, "execution-mode"], [1, "parent-agent"], [1, "agent-actions"], ["kendoButton", "", "themeColor", "primary", "size", "large", "title", "Run this AI agent", 3, "disabled"], ["kendoButton", "", "fillMode", "outline", "size", "small", "title", "Refresh all data", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "form-content"], [3, "expanded"], ["kendoPanelBarItemTitle", ""], ["kendoPanelBarContent", ""], ["name", "agentName", "placeholder", "Enter agent name...", 1, "agent-name-input", 3, "ngModelChange", "ngModel"], [1, "status-badge"], [1, "fa-solid", "fa-circle"], [1, "fa-solid", "fa-sitemap"], ["kendoButton", "", "themeColor", "primary", "size", "large", "title", "Run this AI agent", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], [1, "fa-solid", "fa-history"], [1, "panel-content", "execution-history-panel"], [1, "section-header"], [1, "section-description"], [1, "empty-state"], [1, "timeline-list"], [1, "timeline-item", 3, "expanded"], [1, "view-more-item"], [1, "timeline-item"], [1, "timeline-marker"], [1, "timeline-content"], [1, "timeline-header", 3, "click"], [1, "timeline-title"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "timeline-date"], [1, "timeline-meta"], [1, "execution-time"], [1, "timeline-actions"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "timeline-preview"], [1, "timeline-expanded-content"], [1, "fa-solid", "fa-stopwatch"], [1, "result-section"], [1, "error-section"], [1, "execution-details"], [1, "detail-row"], [1, "detail-label"], [1, "detail-value"], ["language", "json", 2, "max-height", "200px", "width", "100%", 3, "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], [1, "view-more-item", 3, "click"], [1, "fa-solid", "fa-comments"], [1, "panel-content"], [1, "prompt-controls"], [1, "model-selection-mode"], [1, "model-selection-label"], [1, "fa-solid", "fa-sliders"], ["name", "modelSelectionMode", "textField", "text", "valueField", "value", 1, "model-selection-dropdown", 3, "ngModel", "data", "valuePrimitive"], [1, "model-selection-value"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", "size", "small"], [1, "entity-list"], ["name", "modelSelectionMode", "textField", "text", "valueField", "value", 1, "model-selection-dropdown", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], ["kendoButton", "", "themeColor", "primary", "size", "small", 3, "click"], [1, "fa-solid", "fa-plus"], ["kendoButton", "", "themeColor", "primary"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "entity-item", "prompt-item"], [1, "entity-item", "prompt-item", 3, "click"], [1, "item-icon"], [1, "fa-solid", "fa-comment-dots"], [1, "item-content"], [1, "item-title"], [1, "item-preview"], [1, "item-meta"], [1, "meta-tag"], [1, "item-actions"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove prompt"], [1, "fa-solid", "fa-external-link"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove prompt", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-box"], [1, "payload-config-section"], [1, "subsection-title"], [1, "fa-solid", "fa-cog"], [1, "payload-config-grid"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "Payload Scope", "Description", "Path to narrow payload (e.g., /functionalRequirements)", 3, "EditMode", "record"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "Validation Mode", "Description", "Action on validation failure", 3, "EditMode", "record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "Max Retries", "Description", "Maximum validation retry attempts", 3, "EditMode", "record"], [1, "payload-paths-section"], [1, "fa-solid", "fa-route"], [1, "payload-field-group"], [1, "payload-field-label"], [1, "fa-solid", "fa-arrow-down"], [1, "field-description"], ["language", "json", 2, "height", "120px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-arrow-up"], [1, "fa-solid", "fa-eye"], [1, "fa-solid", "fa-pen"], [1, "payload-validation-section"], [1, "fa-solid", "fa-shield-check"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-bolt"], [1, "entity-item", "action-item"], [1, "entity-item", "action-item", 3, "click"], [1, "status-tag"], [1, "fa-solid"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove action"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove action", 3, "click"], [1, "entity-item", "sub-agent-item"], [1, "entity-item", "sub-agent-item", 3, "click"], [1, "sub-agent-logo", 3, "src", "alt"], [1, "status-tag", 3, "background-color"], [1, "fa-solid", "fa-shield-halved"], [1, "form-fields-grid"], ["FieldName", "MaxCostPerRun", "Type", "numerictextbox", "Caption", "Max Cost ($)", "Description", "Maximum cost per run", 3, "EditMode", "record"], ["FieldName", "MaxTokensPerRun", "Type", "numerictextbox", "Caption", "Max Tokens", "Description", "Maximum tokens per run", 3, "EditMode", "record"], ["FieldName", "MaxIterationsPerRun", "Type", "numerictextbox", "Caption", "Max Iterations", "Description", "Maximum prompt iterations", 3, "EditMode", "record"], ["FieldName", "MaxTimePerRun", "Type", "numerictextbox", "Caption", "Max Time (seconds)", "Description", "Maximum execution time", 3, "EditMode", "record"], ["FieldName", "Status", "Type", "dropdownlist", "Caption", "Status", "Description", "Agent availability status", 3, "EditMode", "record"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "Execution Mode", "Description", "How sub-agents are executed", 3, "EditMode", "record"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "Execution Order", "Description", "Order when run with siblings", 3, "EditMode", "record"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "Expose as Action", "Description", "Make available as an action", 3, "EditMode", "record"], ["FieldName", "TypeID", "Type", "dropdownlist", "Caption", "Agent Type", "Description", "Category of this agent", "LinkType", "Record", "LinkEntityName", "AI Agent Types", 3, "EditMode", "record"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "Driver Class", "Description", "Custom implementation class", 3, "EditMode", "record"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "Icon Class", "Description", "Font Awesome icon class", 3, "EditMode", "record"], ["FieldName", "Description", "Type", "textarea", "Caption", "Description", "Description", "Detailed agent description", 2, "grid-column", "span 2", 3, "EditMode", "record"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "Logo URL", "Description", "URL for agent logo image", 2, "grid-column", "span 2", 3, "EditMode", "record"], [1, "subsection-divider"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "Enable Compression", "Description", "Compress long conversations", 3, "EditMode", "record"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "Message Threshold", "Description", "Messages before compression", 3, "EditMode", "record"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "Messages to Keep", "Description", "Recent messages to retain", 3, "EditMode", "record"], ["FieldName", "ContextCompressionPromptID", "Type", "dropdownlist", "Caption", "Compression Prompt", "Description", "Prompt for summarization", "LinkType", "Record", "LinkEntityName", "AI Prompts", 3, "EditMode", "record"], [1, "fa-solid", "fa-sticky-note"], [1, "entity-item", "note-item"], [1, "entity-item", "note-item", 3, "click"], [1, "fa-solid", "fa-calendar"], [1, "fa-solid", "fa-brain"], [1, "entity-item", "learning-item"], [1, "entity-item", "learning-item", 3, "click"]], template: function AIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
1769
1934
|
i0.ɵɵelementStart(0, "div", 1);
|
|
1770
1935
|
i0.ɵɵelement(1, "div", 2);
|
|
1771
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_2_Template,
|
|
1936
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_2_Template, 37, 16, "form", 3);
|
|
1772
1937
|
i0.ɵɵelementEnd();
|
|
1773
1938
|
} if (rf & 2) {
|
|
1774
1939
|
i0.ɵɵadvance(2);
|
|
1775
1940
|
i0.ɵɵproperty("ngIf", ctx.record);
|
|
1776
|
-
} }, dependencies: [i7.NgIf, i8.ɵNgNoValidate, i8.NgControlStatus, i8.NgControlStatusGroup, i8.NgModel, i8.NgForm, i9.PanelBarComponent, i9.PanelBarItemComponent, i9.PanelBarContentDirective, i9.PanelBarItemTitleDirective, i3.DialogContainerDirective, i10.TextBoxComponent, i11.DropDownListComponent, i12.ButtonComponent, i13.FormToolbarComponent, i14.CodeEditorComponent, i7.DatePipe], styles: ["\n\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f5f7fa;\n}\n\n.record-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.agent-header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 12px 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.agent-header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n}\n\n.agent-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.2);\n flex-shrink: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n font-size: 24px;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] img.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n line-height: 1.2;\n}\n\n.agent-name-input[_ngcontent-%COMP%] {\n font-size: 18px !important;\n font-weight: 500 !important;\n height: 36px !important;\n width: 100% !important;\n max-width: 400px !important;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge.active[_ngcontent-%COMP%] {\n background: #28a745;\n color: white;\n}\n\n.status-badge.pending[_ngcontent-%COMP%] {\n background: #ffc107;\n color: #212529;\n}\n\n.status-badge.disabled[_ngcontent-%COMP%] {\n background: #6c757d;\n color: white;\n}\n\n.execution-mode[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.8;\n}\n\n\n\n.prompt-controls[_ngcontent-%COMP%] {\n flex: 1;\n margin-right: 16px;\n}\n\n\n\n.model-selection-mode[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n background: #f0f7ff;\n border: 1px solid #cce5ff;\n border-radius: 8px;\n}\n\n.model-selection-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: #0066cc;\n margin: 0;\n}\n\n.model-selection-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.model-selection-dropdown[_ngcontent-%COMP%] {\n min-width: 140px;\n height: 32px;\n}\n\n.model-selection-value[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n padding: 4px 12px;\n background: white;\n border-radius: 6px;\n border: 1px solid #dee2e6;\n}\n\n.agent-meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n font-weight: 500;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin-top: 16px;\n color: #6c757d;\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n\n\n.agent-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.action-buttons-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0,0,0,0.08);\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0,0,0,0.12);\n}\n\n.action-button.primary[_ngcontent-%COMP%] {\n background: #2196f3;\n color: white;\n}\n\n.action-button.primary[_ngcontent-%COMP%]:hover {\n background: #1976d2;\n}\n\n.action-button.secondary[_ngcontent-%COMP%] {\n background: #6c757d;\n color: white;\n}\n\n.action-button.secondary[_ngcontent-%COMP%]:hover {\n background: #5a6268;\n}\n\n.action-warnings[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n color: #dc3545;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: #f5f7fa;\n padding: 12px;\n}\n\n\n\n .k-panelbar {\n border: none;\n background: transparent;\n}\n\n .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 12px;\n margin-bottom: 12px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n background: white;\n overflow: hidden;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header {\n background: white;\n border: none;\n padding: 16px 20px;\n border-radius: 12px 12px 0 0;\n color: #2c3e50;\n font-weight: 600;\n font-size: 16px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: #f8f9fa;\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: #2196f3;\n color: white;\n border-radius: 12px 12px 0 0;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: white;\n border-radius: 0 0 12px 12px;\n}\n\n .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: #2196f3;\n margin-right: 8px;\n}\n\n .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: white;\n}\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: white;\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n border: 1px solid #e0e6ed;\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid #f0f4f8;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: #2c3e50;\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n font-size: 20px;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n\n\n.form-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.sub-grid-container[_ngcontent-%COMP%] {\n height: 500px;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n display: none; \n\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border: 4px solid #f3f3f3;\n border-top: 4px solid #2196f3;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.quick-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n}\n\n.quick-action-card[_ngcontent-%COMP%] {\n flex: 1;\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card[_ngcontent-%COMP%]:hover {\n background: white;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #2196f3;\n margin-bottom: 8px;\n}\n\n.quick-action-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 4px;\n}\n\n.quick-action-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n}\n\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n\n\n.entity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-1px);\n}\n\n.item-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #6f42c1, #563d7c);\n}\n\n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e83e8c, #dc3545);\n}\n\n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fd7e14, #e55a00);\n}\n\n.item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 18px;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n}\n\n.item-icon[_ngcontent-%COMP%] img.sub-agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag[_ngcontent-%COMP%], \n.priority-tag[_ngcontent-%COMP%], \n.status-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n background: #e9ecef;\n color: #495057;\n}\n\n.priority-tag[_ngcontent-%COMP%] {\n color: white;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag[_ngcontent-%COMP%] {\n background: #e9ecef;\n color: #495057;\n}\n\n.status-tag.active[_ngcontent-%COMP%] {\n background: #d4edda;\n color: #28a745;\n}\n\n.status-tag.inactive[_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #dc3545;\n}\n\n.item-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: #6c757d;\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.view-more-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-more-item[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n color: #2196f3;\n}\n\n\n\n.timeline-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n font-size: 14px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n background: #e9ecef;\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n border-color: #2196f3;\n}\n\n.entity-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: linear-gradient(90deg, #2196f3, #42a5f5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: #6c757d;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n}\n\n.card-title-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6c757d;\n padding: 4px 8px;\n background: #f8f9fa;\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active[_ngcontent-%COMP%] {\n color: #28a745;\n background: #d4edda;\n}\n\n.meta-item.inactive[_ngcontent-%COMP%] {\n color: #dc3545;\n background: #f8d7da;\n}\n\n.card-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: #6c757d;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n color: #2196f3;\n}\n\n\n\n.priority-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: #e9ecef;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n\n.view-all-card[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n transform: translateY(-2px);\n}\n\n.view-all-content[_ngcontent-%COMP%] {\n text-align: center;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-all-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n.timeline-item.expanded[_ngcontent-%COMP%] {\n background: #f8f9fa;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.1);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%] {\n cursor: pointer;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n}\n\n.timeline-item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: #e0e6ed;\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .timeline-marker[_ngcontent-%COMP%]::after {\n display: none;\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker[_ngcontent-%COMP%] {\n background: #6c757d;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: #6c757d;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n white-space: nowrap;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #6c757d;\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e0e6ed;\n}\n\n.timeline-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error[_ngcontent-%COMP%] {\n color: #dc3545;\n font-size: 13px;\n background: #f8d7da;\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n\n\n\n.timeline-expanded-content[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.result-content[_ngcontent-%COMP%], \n.error-content[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n\n\n.result-section[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: #f8d7da;\n border-color: #f5c6cb;\n color: #721c24;\n}\n\n.execution-details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n word-break: break-all;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: #2196f3;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: #1976d2;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n background: #f8f9fa;\n border-radius: 12px;\n border: 2px dashed #dee2e6;\n margin-top: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n\n\n@media (max-width: 768px) {\n \n\n .agent-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n \n .agent-header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .agent-overview[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .agent-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .agent-actions[_ngcontent-%COMP%] {\n width: 100%;\n align-self: stretch;\n }\n \n .action-button[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n \n \n\n .form-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n \n .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n \n .panel-content[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n \n .section-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .header-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n align-self: stretch;\n }\n \n \n\n .entity-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n \n .item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n \n .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n \n .item-title[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n \n .item-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n \n .item-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n \n \n\n .timeline-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n \n .timeline-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .timeline-date[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n \n \n\n .form-fields-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n \n \n\n .cards-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}"] }); }
|
|
1941
|
+
} }, dependencies: [i7.NgIf, i8.ɵNgNoValidate, i8.NgControlStatus, i8.NgControlStatusGroup, i8.NgModel, i8.NgForm, i9.PanelBarComponent, i9.PanelBarItemComponent, i9.PanelBarContentDirective, i9.PanelBarItemTitleDirective, i3.DialogContainerDirective, i10.TextBoxComponent, i11.DropDownListComponent, i12.ButtonComponent, i13.MJFormField, i14.FormToolbarComponent, i15.CodeEditorComponent, i7.DatePipe], styles: ["\n\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f5f7fa;\n}\n\n.record-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.agent-header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 12px 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.agent-header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n}\n\n.agent-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.2);\n flex-shrink: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n font-size: 24px;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] img.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n line-height: 1.2;\n}\n\n.agent-name-input[_ngcontent-%COMP%] {\n font-size: 18px !important;\n font-weight: 500 !important;\n height: 36px !important;\n width: 100% !important;\n max-width: 400px !important;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge.active[_ngcontent-%COMP%] {\n background: #28a745;\n color: white;\n}\n\n.status-badge.pending[_ngcontent-%COMP%] {\n background: #ffc107;\n color: #212529;\n}\n\n.status-badge.disabled[_ngcontent-%COMP%] {\n background: #6c757d;\n color: white;\n}\n\n.execution-mode[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.8;\n}\n\n\n\n.prompt-controls[_ngcontent-%COMP%] {\n flex: 1;\n margin-right: 16px;\n}\n\n\n\n.model-selection-mode[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n background: #f0f7ff;\n border: 1px solid #cce5ff;\n border-radius: 8px;\n}\n\n.model-selection-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: #0066cc;\n margin: 0;\n}\n\n.model-selection-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.model-selection-dropdown[_ngcontent-%COMP%] {\n min-width: 140px;\n height: 32px;\n}\n\n.model-selection-value[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n padding: 4px 12px;\n background: white;\n border-radius: 6px;\n border: 1px solid #dee2e6;\n}\n\n.agent-meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n font-weight: 500;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin-top: 16px;\n color: #6c757d;\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n\n\n.agent-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.action-buttons-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0,0,0,0.08);\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0,0,0,0.12);\n}\n\n.action-button.primary[_ngcontent-%COMP%] {\n background: #2196f3;\n color: white;\n}\n\n.action-button.primary[_ngcontent-%COMP%]:hover {\n background: #1976d2;\n}\n\n.action-button.secondary[_ngcontent-%COMP%] {\n background: #6c757d;\n color: white;\n}\n\n.action-button.secondary[_ngcontent-%COMP%]:hover {\n background: #5a6268;\n}\n\n.action-warnings[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n color: #dc3545;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: #f5f7fa;\n padding: 12px;\n}\n\n\n\n .k-panelbar {\n border: none;\n background: transparent;\n}\n\n .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 12px;\n margin-bottom: 12px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n background: white;\n overflow: hidden;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header {\n background: white;\n border: none;\n padding: 16px 20px;\n border-radius: 12px 12px 0 0;\n color: #2c3e50;\n font-weight: 600;\n font-size: 16px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: #f8f9fa;\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: #2196f3;\n color: white;\n border-radius: 12px 12px 0 0;\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: white;\n border-radius: 0 0 12px 12px;\n}\n\n .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: #2196f3;\n margin-right: 8px;\n}\n\n .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: white;\n}\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: white;\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n border: 1px solid #e0e6ed;\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid #f0f4f8;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: #2c3e50;\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n font-size: 20px;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n\n\n.form-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.sub-grid-container[_ngcontent-%COMP%] {\n height: 500px;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n display: none; \n\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border: 4px solid #f3f3f3;\n border-top: 4px solid #2196f3;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.quick-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n}\n\n.quick-action-card[_ngcontent-%COMP%] {\n flex: 1;\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card[_ngcontent-%COMP%]:hover {\n background: white;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #2196f3;\n margin-bottom: 8px;\n}\n\n.quick-action-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 4px;\n}\n\n.quick-action-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n}\n\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n\n\n.entity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-1px);\n}\n\n.item-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #6f42c1, #563d7c);\n}\n\n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e83e8c, #dc3545);\n}\n\n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fd7e14, #e55a00);\n}\n\n.item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 18px;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n}\n\n.item-icon[_ngcontent-%COMP%] img.sub-agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag[_ngcontent-%COMP%], \n.priority-tag[_ngcontent-%COMP%], \n.status-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n background: #e9ecef;\n color: #495057;\n}\n\n.priority-tag[_ngcontent-%COMP%] {\n color: white;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag[_ngcontent-%COMP%] {\n background: #e9ecef;\n color: #495057;\n}\n\n.status-tag.active[_ngcontent-%COMP%] {\n background: #d4edda;\n color: #28a745;\n}\n\n.status-tag.inactive[_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #dc3545;\n}\n\n.item-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: #6c757d;\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.view-more-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-more-item[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n color: #2196f3;\n}\n\n\n\n.payload-config-section[_ngcontent-%COMP%], \n.payload-paths-section[_ngcontent-%COMP%], \n.payload-validation-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n}\n\n.subsection-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.subsection-divider[_ngcontent-%COMP%] {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid #e0e6ed;\n}\n\n.payload-config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 8px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 16px;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: normal;\n color: #6c757d;\n margin-left: auto;\n}\n\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid #dee2e6;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%]:hover {\n border-color: #2196f3;\n}\n\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.timeline-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n font-size: 14px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n background: #e9ecef;\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n border-color: #2196f3;\n}\n\n.entity-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: linear-gradient(90deg, #2196f3, #42a5f5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: #6c757d;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n}\n\n.card-title-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6c757d;\n padding: 4px 8px;\n background: #f8f9fa;\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active[_ngcontent-%COMP%] {\n color: #28a745;\n background: #d4edda;\n}\n\n.meta-item.inactive[_ngcontent-%COMP%] {\n color: #dc3545;\n background: #f8d7da;\n}\n\n.card-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: #6c757d;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n color: #2196f3;\n}\n\n\n\n.priority-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: #e9ecef;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n\n.view-all-card[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n transform: translateY(-2px);\n}\n\n.view-all-content[_ngcontent-%COMP%] {\n text-align: center;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-all-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n.timeline-item.expanded[_ngcontent-%COMP%] {\n background: #f8f9fa;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.1);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%] {\n cursor: pointer;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n}\n\n.timeline-item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: #e0e6ed;\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .timeline-marker[_ngcontent-%COMP%]::after {\n display: none;\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: white;\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker[_ngcontent-%COMP%] {\n background: #6c757d;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: #6c757d;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n white-space: nowrap;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #6c757d;\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e0e6ed;\n}\n\n.timeline-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error[_ngcontent-%COMP%] {\n color: #dc3545;\n font-size: 13px;\n background: #f8d7da;\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n\n\n\n.timeline-expanded-content[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.result-content[_ngcontent-%COMP%], \n.error-content[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n\n\n.result-section[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: #f8d7da;\n border-color: #f5c6cb;\n color: #721c24;\n}\n\n.execution-details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n word-break: break-all;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: #2196f3;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: #1976d2;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n background: #f8f9fa;\n border-radius: 12px;\n border: 2px dashed #dee2e6;\n margin-top: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n\n\n@media (max-width: 768px) {\n \n\n .agent-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n \n .agent-header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .agent-overview[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .agent-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .agent-actions[_ngcontent-%COMP%] {\n width: 100%;\n align-self: stretch;\n }\n \n .action-button[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n \n \n\n .form-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n \n .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n \n .panel-content[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n \n .section-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .header-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n align-self: stretch;\n }\n \n \n\n .entity-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n \n .item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n \n .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n \n .item-title[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n \n .item-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n \n .item-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n \n \n\n .timeline-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n \n .timeline-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .timeline-date[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n \n \n\n .form-fields-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n \n \n\n .cards-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #a0a0a0;\n}"] }); }
|
|
1777
1942
|
};
|
|
1778
1943
|
AIAgentFormComponentExtended = __decorate([
|
|
1779
1944
|
RegisterClass(BaseFormComponent, 'AI Agents')
|
|
@@ -1781,7 +1946,7 @@ AIAgentFormComponentExtended = __decorate([
|
|
|
1781
1946
|
export { AIAgentFormComponentExtended };
|
|
1782
1947
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentFormComponentExtended, [{
|
|
1783
1948
|
type: Component,
|
|
1784
|
-
args: [{ selector: 'mj-ai-agent-form', template: "<div class=\"record-form-container\">\n <!-- Dialog container for Kendo dialogs -->\n <div kendoDialogContainer></div>\n <form *ngIf=\"record\" class=\"record-form\" #form=\"ngForm\">\n <mj-form-toolbar [form]=\"this\"></mj-form-toolbar>\n\n <!-- Compact Header with Agent Overview -->\n <div class=\"agent-header\">\n <div class=\"agent-header-content\">\n <div class=\"agent-overview\">\n <div class=\"agent-icon-wrapper\">\n @if (hasLogoURL()) {\n <img [src]=\"record.LogoURL\" [alt]=\"record.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon()\"></i>\n }\n </div>\n <div class=\"agent-info\">\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\" \n name=\"agentName\"\n placeholder=\"Enter agent name...\"\n class=\"agent-name-input\">\n </kendo-textbox>\n } @else {\n <h1 class=\"agent-name\">{{ record.Name || 'Untitled AI Agent' }}</h1>\n }\n <div class=\"agent-meta\">\n @if (record.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ record.Status }}\n </span>\n }\n @if (record.ExecutionMode) {\n <span class=\"execution-mode\">\n <i [class]=\"getExecutionModeIcon(record.ExecutionMode)\"></i>\n {{ record.ExecutionMode }}\n </span>\n }\n @if (record.Parent) {\n <span class=\"parent-agent\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Child of {{ record.Parent }}\n </span>\n }\n </div>\n </div>\n </div>\n \n <!-- Action Buttons -->\n <div class=\"agent-actions\">\n @if (record.ID) {\n <button kendoButton themeColor=\"primary\" size=\"large\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run this AI agent\">\n <i class=\"fa-solid fa-play\"></i>\n Run\n </button>\n }\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"refreshRelatedData()\" title=\"Refresh all data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Single Pane Layout with Expander Panels -->\n <div class=\"form-content\">\n <kendo-panelbar>\n\n <!-- Actions (First Panel - Expanded by default) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"actionCount > 0\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions{{ actionCount > 0 ? ' (' + actionCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Add Action\n </button>\n }\n </div>\n </div>\n \n @if (actionCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-bolt\"></i>\n <h4>No Actions Configured</h4>\n <p>Add actions to enable this agent to perform specific tasks and operations.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Configure First Action\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (action of agentActions; track action.ID) {\n <div class=\"entity-item action-item\" (click)=\"navigateToEntity('Actions', action.ID)\">\n <div class=\"item-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ action.Name || 'Untitled Action' }}</div>\n @if (action.Description) {\n <div class=\"item-preview\">{{ action.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (action.Type) {\n <span class=\"meta-tag\">{{ action.Type }}</span>\n }\n <span class=\"status-tag\" [class.active]=\"action.Status==='Active'\" [class.inactive]=\"action.Status!=='Active'\">\n <i class=\"fa-solid\" [class.fa-check-circle]=\"action.Status==='Active'\" [class.fa-times-circle]=\"action.Status!=='Active'\"></i>\n {{ action.Status }}\n </span>\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"error\" \n size=\"small\"\n (click)=\"removeAction(action, $event)\"\n title=\"Remove action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (actionCount > agentActions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Actions', '')\">\n <span>View all {{ actionCount }} actions...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Sub-Agents (Second Panel) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"subAgentCount > 0\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents{{ subAgentCount > 0 ? ' (' + subAgentCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage hierarchical relationships with child agents that work under this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"createSubAgent()\">\n <i class=\"fa-solid fa-plus\"></i> Add Sub-Agent\n </button>\n }\n </div>\n </div>\n \n @if (subAgentCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <h4>No Sub-Agents</h4>\n <p>Create sub-agents to build a hierarchical structure for complex workflows.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"createSubAgent()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Sub-Agent\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (subAgent of subAgents; track subAgent.ID) {\n <div class=\"entity-item sub-agent-item\" (click)=\"navigateToEntity('AI Agents', subAgent.ID)\">\n <div class=\"item-icon\">\n @if (hasSubAgentLogoURL(subAgent)) {\n <img [src]=\"subAgent.LogoURL\" [alt]=\"subAgent.Name + ' logo'\" class=\"sub-agent-logo\">\n } @else {\n <i [class]=\"getSubAgentIcon(subAgent)\"></i>\n }\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ subAgent.Name || 'Untitled Sub-Agent' }}</div>\n @if (subAgent.Description) {\n <div class=\"item-preview\">{{ subAgent.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (subAgent.Status) {\n <span class=\"status-tag\" [style.background-color]=\"getStatusBadgeColor()\">\n {{ subAgent.Status }}\n </span>\n }\n @if (subAgent.ExecutionMode) {\n <span class=\"meta-tag\">{{ subAgent.ExecutionMode }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (subAgentCount > subAgents.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agents', '')\">\n <span>View all {{ subAgentCount }} sub-agents...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Prompts (Third Panel - With Model Selection) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"true\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts{{ promptCount > 0 ? ' (' + promptCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"prompt-controls\">\n <!-- Model Selection Mode Control -->\n <div class=\"model-selection-mode\">\n <label class=\"model-selection-label\">\n <i class=\"fa-solid fa-sliders\"></i>\n Model Selection:\n </label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.ModelSelectionMode\"\n name=\"modelSelectionMode\"\n [data]=\"modelSelectionModes\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"model-selection-dropdown\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"model-selection-value\">{{ record.ModelSelectionMode || 'Agent Type' }}</span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Add Prompt\n </button>\n }\n </div>\n </div>\n \n @if (promptCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comments\"></i>\n <h4>No Prompts Configured</h4>\n <p>Add prompts to define how this agent processes requests and generates responses.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Prompt\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (prompt of agentPrompts; track prompt.ID) {\n <div class=\"entity-item prompt-item\" (click)=\"navigateToEntity('AI Prompts', prompt.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ prompt.Name }}</div>\n @if (prompt.TemplateText) {\n <div class=\"item-preview\">{{ prompt.TemplateText.substring(0, 120) }}{{ prompt.TemplateText.length > 120 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (prompt.PromptRole) {\n <span class=\"meta-tag\">{{ prompt.PromptRole }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"error\" \n size=\"small\"\n (click)=\"removePrompt(prompt, $event)\"\n title=\"Remove prompt\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (promptCount > agentPrompts.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Prompts', '')\">\n <span>View all {{ promptCount }} prompts...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n\n <!-- Learning & Analytics -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles{{ learningCycleCount > 0 ? ' (' + learningCycleCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Monitor and manage learning cycles, training sessions, and performance analytics.\n </div>\n </div>\n \n @if (learningCycleCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>No Learning Cycles</h4>\n <p>Learning cycles will appear here as the agent processes requests and improves over time.</p>\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (cycle of learningCycles; track cycle.ID) {\n <div class=\"entity-item learning-item\" (click)=\"navigateToEntity('AI Agent Learning Cycles', cycle.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-brain\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">Learning Cycle {{ cycle.ID.substring(0, 8) }}</div>\n <div class=\"item-meta\">\n @if (cycle.StartedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ cycle.StartedAt | date:'short' }}\n </span>\n }\n @if (cycle.Status) {\n <span class=\"status-tag\">{{ cycle.Status }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (learningCycleCount > learningCycles.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Learning Cycles', '')\">\n <span>View all {{ learningCycleCount }} cycles...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Notes & Documentation -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes{{ noteCount > 0 ? ' (' + noteCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage notes, documentation, and annotations for this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Add Note\n </button>\n }\n </div>\n </div>\n \n @if (noteCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n <h4>No Notes</h4>\n <p>Add notes to document important information, observations, or instructions for this agent.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Note\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (note of agentNotes; track note.ID) {\n <div class=\"entity-item note-item\" (click)=\"navigateToEntity('AI Agent Notes', note.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ note.Type || 'Note' }}</div>\n @if (note.Note) {\n <div class=\"item-preview\">{{ note.Note.substring(0, 100) }}{{ note.Note.length > 100 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (note.__mj_CreatedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ note.__mj_CreatedAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (noteCount > agentNotes.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Notes', '')\">\n <span>View all {{ noteCount }} notes...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Requests & History -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History{{ executionHistoryCount > 0 ? ' (' + executionHistoryCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Review execution history, requests, and performance metrics for this agent.\n </div>\n </div>\n \n @if (executionHistoryCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-history\"></i>\n <h4>No Execution History</h4>\n <p>This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.</p>\n </div>\n } @else {\n <div class=\"timeline-list\">\n @for (execution of recentExecutions; track execution.ID) {\n <div class=\"timeline-item\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div>\n <div class=\"timeline-marker\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"timeline-content\">\n <div class=\"timeline-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div>\n <div class=\"timeline-title\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"expandedExecutions[execution.ID]\"></i>\n Execution #{{ execution.ID.substring(0, 8) }}\n <span class=\"timeline-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</span>\n </div>\n <div class=\"timeline-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n {{ execution.Status || 'Unknown' }}\n </span>\n @if (execution.CompletedAt) {\n <span class=\"execution-time\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n {{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}\n </span>\n }\n <div class=\"timeline-actions\">\n <button class=\"btn-primary\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (execution.Result && !expandedExecutions[execution.ID]) {\n <div class=\"timeline-preview\">{{ getExecutionResultPreview(execution, true) }}</div>\n }\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"timeline-expanded-content\">\n @if (execution.Result) {\n <div class=\"result-section\">\n <h5>Result</h5>\n <mj-code-editor \n [value]=\"getExecutionResultPreview(execution, false)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"max-height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (execution.ErrorMessage) {\n <div class=\"error-section\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h5>\n <div class=\"error-content\">{{ execution.ErrorMessage }}</div>\n </div>\n }\n <div class=\"execution-details\">\n <div class=\"detail-row\">\n <span class=\"detail-label\">Started:</span>\n <span class=\"detail-value\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n @if (execution.CompletedAt) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Completed:</span>\n <span class=\"detail-value\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n }\n @if (execution.ConversationID) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Conversation:</span>\n <span class=\"detail-value\">{{ execution.ConversationID }}</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (executionHistoryCount > recentExecutions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Runs', '')\">\n <span>View all {{ executionHistoryCount }} executions...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Details (Core Configuration - Last Panel) -->\n <kendo-panelbar-item [expanded]=\"false\" title=\"Details\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-info-circle\"></i> Details\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"form-fields-grid\">\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\n </kendo-panelbar>\n </div>\n </form>\n\n</div>", styles: ["/* AI Agent Form - Modern Redesign */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f5f7fa;\n}\n\n.record-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Agent Header Section - Compact Design */\n.agent-header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 12px 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.agent-header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n}\n\n.agent-overview {\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.2);\n flex-shrink: 0;\n}\n\n.agent-icon-wrapper i {\n color: white;\n font-size: 24px;\n}\n\n.agent-icon-wrapper img.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 22px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n line-height: 1.2;\n}\n\n.agent-name-input {\n font-size: 18px !important;\n font-weight: 500 !important;\n height: 36px !important;\n width: 100% !important;\n max-width: 400px !important;\n}\n\n.agent-meta {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge.active {\n background: #28a745;\n color: white;\n}\n\n.status-badge.pending {\n background: #ffc107;\n color: #212529;\n}\n\n.status-badge.disabled {\n background: #6c757d;\n color: white;\n}\n\n.execution-mode,\n.parent-agent {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode i,\n.parent-agent i {\n font-size: 12px;\n opacity: 0.8;\n}\n\n/* Prompt Controls Section */\n.prompt-controls {\n flex: 1;\n margin-right: 16px;\n}\n\n/* Model Selection Mode */\n.model-selection-mode {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n background: #f0f7ff;\n border: 1px solid #cce5ff;\n border-radius: 8px;\n}\n\n.model-selection-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: #0066cc;\n margin: 0;\n}\n\n.model-selection-label i {\n font-size: 14px;\n}\n\n.model-selection-dropdown {\n min-width: 140px;\n height: 32px;\n}\n\n.model-selection-value {\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n padding: 4px 12px;\n background: white;\n border-radius: 6px;\n border: 1px solid #dee2e6;\n}\n\n.agent-meta-info {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value {\n font-size: 14px;\n color: #495057;\n font-weight: 500;\n}\n\n.agent-description {\n margin-top: 16px;\n color: #6c757d;\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n/* Action Buttons Section */\n.agent-actions {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.action-buttons-row {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0,0,0,0.08);\n}\n\n.action-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0,0,0,0.12);\n}\n\n.action-button.primary {\n background: #2196f3;\n color: white;\n}\n\n.action-button.primary:hover {\n background: #1976d2;\n}\n\n.action-button.secondary {\n background: #6c757d;\n color: white;\n}\n\n.action-button.secondary:hover {\n background: #5a6268;\n}\n\n.action-warnings {\n margin-top: 8px;\n font-size: 13px;\n color: #dc3545;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Panel-Based Form Content */\n.form-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: #f5f7fa;\n padding: 12px;\n}\n\n/* Kendo PanelBar Styling */\n::ng-deep .k-panelbar {\n border: none;\n background: transparent;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 12px;\n margin-bottom: 12px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n background: white;\n overflow: hidden;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n background: white;\n border: none;\n padding: 16px 20px;\n border-radius: 12px 12px 0 0;\n color: #2c3e50;\n font-weight: 600;\n font-size: 16px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: #f8f9fa;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: #2196f3;\n color: white;\n border-radius: 12px 12px 0 0;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: white;\n border-radius: 0 0 12px 12px;\n}\n\n::ng-deep .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: #2196f3;\n margin-right: 8px;\n}\n\n::ng-deep .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: white;\n}\n\n/* Panel Content */\n.panel-content {\n padding: 16px;\n background: white;\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section {\n background: white;\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n border: 1px solid #e0e6ed;\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid #f0f4f8;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: #2c3e50;\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title i {\n color: #2196f3;\n font-size: 20px;\n}\n\n.section-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n/* Form Fields Grid */\n.form-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label {\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Sub-grids styling (legacy) */\n.sub-grid-container {\n height: 500px;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n display: none; /* Hidden as we now use cards */\n}\n\n/* Empty States */\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state i {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n/* Loading State */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon {\n width: 48px;\n height: 48px;\n border: 4px solid #f3f3f3;\n border-top: 4px solid #2196f3;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Quick Actions */\n.quick-actions {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n}\n\n.quick-action-card {\n flex: 1;\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card:hover {\n background: white;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon {\n font-size: 32px;\n color: #2196f3;\n margin-bottom: 8px;\n}\n\n.quick-action-title {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 4px;\n}\n\n.quick-action-description {\n font-size: 12px;\n color: #6c757d;\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* Entity List Interface */\n.entity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-1px);\n}\n\n.item-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item .item-icon {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-item .item-icon {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.sub-agent-item .item-icon {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.model-item .item-icon {\n background: linear-gradient(135deg, #6f42c1, #563d7c);\n}\n\n.learning-item .item-icon {\n background: linear-gradient(135deg, #e83e8c, #dc3545);\n}\n\n.note-item .item-icon {\n background: linear-gradient(135deg, #fd7e14, #e55a00);\n}\n\n.item-icon i {\n color: #6c757d;\n font-size: 18px;\n}\n\n.prompt-item .item-icon i,\n.action-item .item-icon i,\n.sub-agent-item .item-icon i,\n.model-item .item-icon i,\n.learning-item .item-icon i,\n.note-item .item-icon i {\n color: white;\n}\n\n.item-icon img.sub-agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content {\n flex: 1;\n min-width: 0;\n}\n\n.item-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag,\n.priority-tag,\n.status-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag {\n background: #e9ecef;\n color: #495057;\n}\n\n.priority-tag {\n color: white;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag {\n background: #e9ecef;\n color: #495057;\n}\n\n.status-tag.active {\n background: #d4edda;\n color: #28a745;\n}\n\n.status-tag.inactive {\n background: #f8d7da;\n color: #dc3545;\n}\n\n.item-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: #6c757d;\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item:hover .item-actions {\n opacity: 1;\n}\n\n.entity-item:hover .item-actions > i {\n color: #2196f3;\n}\n\n.view-more-item {\n padding: 16px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-more-item:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n color: #2196f3;\n}\n\n/* Timeline List for Execution History */\n.timeline-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.timeline-marker {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker i {\n color: white;\n font-size: 14px;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date {\n font-size: 12px;\n color: #6c757d;\n background: #e9ecef;\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Modern Card-Based Interface (Legacy - Keep for backward compatibility) */\n.cards-container {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n border-color: #2196f3;\n}\n\n.entity-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: linear-gradient(90deg, #2196f3, #42a5f5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card:hover::before {\n opacity: 1;\n}\n\n.card-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card .card-icon {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.prompt-card .card-icon {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-card .card-icon {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.card-icon i {\n font-size: 18px;\n color: #6c757d;\n}\n\n.sub-agent-card .card-icon i,\n.prompt-card .card-icon i,\n.action-card .card-icon i {\n color: white;\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6c757d;\n padding: 4px 8px;\n background: #f8f9fa;\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active {\n color: #28a745;\n background: #d4edda;\n}\n\n.meta-item.inactive {\n color: #dc3545;\n background: #f8d7da;\n}\n\n.card-actions {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: #6c757d;\n}\n\n.entity-card:hover .card-actions {\n opacity: 1;\n color: #2196f3;\n}\n\n/* Badge Styles */\n.priority-badge {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: #e9ecef;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* View All Card */\n.view-all-card {\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n transform: translateY(-2px);\n}\n\n.view-all-content {\n text-align: center;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-all-content i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n/* Timeline Interface for History */\n.timeline-container {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item:hover {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n.timeline-item.expanded {\n background: #f8f9fa;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.1);\n}\n\n.timeline-item.view-all {\n cursor: pointer;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n}\n\n.timeline-item.view-all:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n}\n\n.timeline-item > div:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: #e0e6ed;\n}\n\n.timeline-item:last-child .timeline-marker::after {\n display: none;\n}\n\n.timeline-marker i {\n color: white;\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker {\n background: #6c757d;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: #6c757d;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date {\n font-size: 12px;\n color: #6c757d;\n white-space: nowrap;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview {\n font-size: 13px;\n color: #6c757d;\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e0e6ed;\n}\n\n.timeline-status {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error {\n color: #dc3545;\n font-size: 13px;\n background: #f8d7da;\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error i {\n flex-shrink: 0;\n}\n\n/* Expanded Content Styles */\n.timeline-expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section,\n.error-section {\n margin-bottom: 20px;\n}\n\n.result-section h5,\n.error-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: #dc3545;\n}\n\n.result-content,\n.error-content {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Code editor styling within result section */\n.result-section mj-code-editor {\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content {\n background: #f8d7da;\n border-color: #f5c6cb;\n color: #721c24;\n}\n\n.execution-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value {\n font-size: 14px;\n color: #495057;\n word-break: break-all;\n}\n\n.timeline-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary {\n padding: 8px 16px;\n background: #2196f3;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: #1976d2;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n}\n\n.btn-primary i {\n font-size: 12px;\n}\n\n/* Enhanced Empty States */\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n background: #f8f9fa;\n border-radius: 12px;\n border: 2px dashed #dee2e6;\n margin-top: 16px;\n}\n\n.empty-state i {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n /* Header Responsiveness */\n .agent-header {\n padding: 16px;\n }\n \n .agent-header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .agent-overview {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .agent-meta {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .agent-actions {\n width: 100%;\n align-self: stretch;\n }\n \n .action-button {\n flex: 1;\n justify-content: center;\n }\n \n /* Panel Responsiveness */\n .form-content {\n padding: 12px;\n }\n \n ::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n \n .panel-content {\n padding: 20px 16px;\n }\n \n .section-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .header-actions {\n flex-wrap: wrap;\n align-self: stretch;\n }\n \n /* Entity List Responsiveness */\n .entity-item {\n padding: 12px;\n gap: 12px;\n }\n \n .item-icon {\n width: 36px;\n height: 36px;\n }\n \n .item-icon i {\n font-size: 16px;\n }\n \n .item-title {\n font-size: 15px;\n }\n \n .item-preview {\n font-size: 13px;\n }\n \n .item-meta {\n gap: 8px;\n }\n \n /* Timeline Responsiveness */\n .timeline-item {\n padding: 12px;\n gap: 12px;\n }\n \n .timeline-marker {\n width: 28px;\n height: 28px;\n }\n \n .timeline-marker i {\n font-size: 12px;\n }\n \n .timeline-title {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .timeline-date {\n align-self: flex-start;\n }\n \n /* Form Field Responsiveness */\n .form-fields-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n \n /* Legacy card support */\n .cards-container {\n grid-template-columns: 1fr;\n }\n}"] }]
|
|
1949
|
+
args: [{ selector: 'mj-ai-agent-form', template: "<div class=\"record-form-container\">\n <!-- Dialog container for Kendo dialogs -->\n <div kendoDialogContainer></div>\n <form *ngIf=\"record\" class=\"record-form\" #form=\"ngForm\">\n <mj-form-toolbar [form]=\"this\"></mj-form-toolbar>\n\n <!-- Compact Header with Agent Overview -->\n <div class=\"agent-header\">\n <div class=\"agent-header-content\">\n <div class=\"agent-overview\">\n <div class=\"agent-icon-wrapper\">\n @if (hasLogoURL()) {\n <img [src]=\"record.LogoURL\" [alt]=\"record.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon()\"></i>\n }\n </div>\n <div class=\"agent-info\">\n @if (EditMode) {\n <kendo-textbox [(ngModel)]=\"record.Name\" \n name=\"agentName\"\n placeholder=\"Enter agent name...\"\n class=\"agent-name-input\">\n </kendo-textbox>\n } @else {\n <h1 class=\"agent-name\">{{ record.Name || 'Untitled AI Agent' }}</h1>\n }\n <div class=\"agent-meta\">\n @if (record.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ record.Status }}\n </span>\n }\n @if (record.ExecutionMode) {\n <span class=\"execution-mode\">\n <i [class]=\"getExecutionModeIcon(record.ExecutionMode)\"></i>\n {{ record.ExecutionMode }}\n </span>\n }\n @if (record.Parent) {\n <span class=\"parent-agent\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Child of {{ record.Parent }}\n </span>\n }\n </div>\n </div>\n </div>\n \n <!-- Action Buttons -->\n <div class=\"agent-actions\">\n @if (record.ID) {\n <button kendoButton themeColor=\"primary\" size=\"large\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run this AI agent\">\n <i class=\"fa-solid fa-play\"></i>\n Run\n </button>\n }\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"refreshRelatedData()\" title=\"Refresh all data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Single Pane Layout with Expander Panels -->\n <div class=\"form-content\">\n <kendo-panelbar>\n\n <!-- Execution History (First Panel - Expanded by default) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"true\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History{{ executionHistoryCount > 0 ? ' (' + executionHistoryCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content execution-history-panel\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Review execution history, requests, and performance metrics for this agent.\n </div>\n </div>\n \n @if (executionHistoryCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-history\"></i>\n <h4>No Execution History</h4>\n <p>This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.</p>\n </div>\n } @else {\n <div class=\"timeline-list\">\n @for (execution of recentExecutions; track execution.ID) {\n <div class=\"timeline-item\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div>\n <div class=\"timeline-marker\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"timeline-content\">\n <div class=\"timeline-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div>\n <div class=\"timeline-title\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"expandedExecutions[execution.ID]\"></i>\n Execution #{{ execution.ID.substring(0, 8) }}\n <span class=\"timeline-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</span>\n </div>\n <div class=\"timeline-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n {{ execution.Status || 'Unknown' }}\n </span>\n @if (execution.CompletedAt) {\n <span class=\"execution-time\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n {{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}\n </span>\n }\n <div class=\"timeline-actions\">\n <button class=\"btn-primary\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (execution.Result && !expandedExecutions[execution.ID]) {\n <div class=\"timeline-preview\">{{ getExecutionResultPreview(execution, true) }}</div>\n }\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"timeline-expanded-content\">\n @if (execution.Result) {\n <div class=\"result-section\">\n <h5>Result</h5>\n <mj-code-editor \n [value]=\"getExecutionResultPreview(execution, false)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"max-height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (execution.ErrorMessage) {\n <div class=\"error-section\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h5>\n <div class=\"error-content\">{{ execution.ErrorMessage }}</div>\n </div>\n }\n <div class=\"execution-details\">\n <div class=\"detail-row\">\n <span class=\"detail-label\">Started:</span>\n <span class=\"detail-value\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n @if (execution.CompletedAt) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Completed:</span>\n <span class=\"detail-value\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n }\n @if (execution.ConversationID) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Conversation:</span>\n <span class=\"detail-value\">{{ execution.ConversationID }}</span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (executionHistoryCount > recentExecutions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Runs', '')\">\n <span>View all {{ executionHistoryCount }} executions...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Prompts (Second Panel - With Model Selection) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts{{ promptCount > 0 ? ' (' + promptCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"prompt-controls\">\n <!-- Model Selection Mode Control -->\n <div class=\"model-selection-mode\">\n <label class=\"model-selection-label\">\n <i class=\"fa-solid fa-sliders\"></i>\n Model Selection:\n </label>\n @if (EditMode) {\n <kendo-dropdownlist\n [(ngModel)]=\"record.ModelSelectionMode\"\n name=\"modelSelectionMode\"\n [data]=\"modelSelectionModes\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"model-selection-dropdown\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"model-selection-value\">{{ record.ModelSelectionMode || 'Agent Type' }}</span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Add Prompt\n </button>\n }\n </div>\n </div>\n \n @if (promptCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comments\"></i>\n <h4>No Prompts Configured</h4>\n <p>Add prompts to define how this agent processes requests and generates responses.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Prompt\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (prompt of agentPrompts; track prompt.ID) {\n <div class=\"entity-item prompt-item\" (click)=\"navigateToEntity('AI Prompts', prompt.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ prompt.Name }}</div>\n @if (prompt.TemplateText) {\n <div class=\"item-preview\">{{ prompt.TemplateText.substring(0, 120) }}{{ prompt.TemplateText.length > 120 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (prompt.PromptRole) {\n <span class=\"meta-tag\">{{ prompt.PromptRole }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"error\" \n size=\"small\"\n (click)=\"removePrompt(prompt, $event)\"\n title=\"Remove prompt\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (promptCount > agentPrompts.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Prompts', '')\">\n <span>View all {{ promptCount }} prompts...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Payload (Third Panel) -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-box\"></i> Payload\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure how this agent handles data payloads and validation.\n </div>\n </div>\n \n <!-- Configuration Fields -->\n <div class=\"payload-config-section\">\n <h4 class=\"subsection-title\">\n <i class=\"fa-solid fa-cog\"></i> Configuration\n </h4>\n <div class=\"payload-config-grid\">\n <!-- Payload Scope -->\n <mj-form-field \n FieldName=\"PayloadScope\" \n Type=\"textbox\"\n Caption=\"Payload Scope\"\n Description=\"Path to narrow payload (e.g., /functionalRequirements)\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <!-- Final Payload Validation Mode -->\n <mj-form-field \n FieldName=\"FinalPayloadValidationMode\" \n Type=\"dropdownlist\"\n Caption=\"Validation Mode\"\n Description=\"Action on validation failure\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <!-- Final Payload Validation Max Retries -->\n <mj-form-field \n FieldName=\"FinalPayloadValidationMaxRetries\" \n Type=\"numerictextbox\"\n Caption=\"Max Retries\"\n Description=\"Maximum validation retry attempts\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <!-- Path Configuration -->\n <div class=\"payload-paths-section\">\n <h4 class=\"subsection-title\">\n <i class=\"fa-solid fa-route\"></i> Path Configuration\n </h4>\n \n <!-- Downstream Paths -->\n <div class=\"payload-field-group\">\n <label class=\"payload-field-label\">\n <i class=\"fa-solid fa-arrow-down\"></i> Downstream Paths\n <span class=\"field-description\">JSON array of paths to pass to sub-agents</span>\n </label>\n <mj-code-editor \n [value]=\"record.PayloadDownstreamPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 120px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n\n <!-- Upstream Paths -->\n <div class=\"payload-field-group\">\n <label class=\"payload-field-label\">\n <i class=\"fa-solid fa-arrow-up\"></i> Upstream Paths\n <span class=\"field-description\">JSON array of paths to return to parent agent</span>\n </label>\n <mj-code-editor \n [value]=\"record.PayloadUpstreamPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 120px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n\n <!-- Self Read Paths -->\n <div class=\"payload-field-group\">\n <label class=\"payload-field-label\">\n <i class=\"fa-solid fa-eye\"></i> Self Read Paths\n <span class=\"field-description\">JSON array of paths this agent can read</span>\n </label>\n <mj-code-editor \n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 120px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n\n <!-- Self Write Paths -->\n <div class=\"payload-field-group\">\n <label class=\"payload-field-label\">\n <i class=\"fa-solid fa-pen\"></i> Self Write Paths\n <span class=\"field-description\">JSON array of paths this agent can write to</span>\n </label>\n <mj-code-editor \n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 120px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n </div>\n\n <!-- Validation Rules -->\n <div class=\"payload-validation-section\">\n <h4 class=\"subsection-title\">\n <i class=\"fa-solid fa-shield-check\"></i> Final Payload Validation\n </h4>\n <div class=\"payload-field-group\">\n <label class=\"payload-field-label\">\n <span class=\"field-description\">JSON validation rules or schema for final payload validation</span>\n </label>\n <mj-code-editor \n [value]=\"record.FinalPayloadValidation || '{}'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\"\n (valueChange)=\"updatePayloadField('FinalPayloadValidation', $event)\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\n <!-- Actions (Fourth Panel) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions{{ actionCount > 0 ? ' (' + actionCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Add Action\n </button>\n }\n </div>\n </div>\n \n @if (actionCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-bolt\"></i>\n <h4>No Actions Configured</h4>\n <p>Add actions to enable this agent to perform specific tasks and operations.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Configure First Action\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (action of agentActions; track action.ID) {\n <div class=\"entity-item action-item\" (click)=\"navigateToEntity('Actions', action.ID)\">\n <div class=\"item-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ action.Name || 'Untitled Action' }}</div>\n @if (action.Description) {\n <div class=\"item-preview\">{{ action.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (action.Type) {\n <span class=\"meta-tag\">{{ action.Type }}</span>\n }\n <span class=\"status-tag\" [class.active]=\"action.Status==='Active'\" [class.inactive]=\"action.Status!=='Active'\">\n <i class=\"fa-solid\" [class.fa-check-circle]=\"action.Status==='Active'\" [class.fa-times-circle]=\"action.Status!=='Active'\"></i>\n {{ action.Status }}\n </span>\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"error\" \n size=\"small\"\n (click)=\"removeAction(action, $event)\"\n title=\"Remove action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (actionCount > agentActions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Actions', '')\">\n <span>View all {{ actionCount }} actions...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Sub-Agents (Fifth Panel) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents{{ subAgentCount > 0 ? ' (' + subAgentCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage hierarchical relationships with child agents that work under this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"createSubAgent()\">\n <i class=\"fa-solid fa-plus\"></i> Add Sub-Agent\n </button>\n }\n </div>\n </div>\n \n @if (subAgentCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <h4>No Sub-Agents</h4>\n <p>Create sub-agents to build a hierarchical structure for complex workflows.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"createSubAgent()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Sub-Agent\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (subAgent of subAgents; track subAgent.ID) {\n <div class=\"entity-item sub-agent-item\" (click)=\"navigateToEntity('AI Agents', subAgent.ID)\">\n <div class=\"item-icon\">\n @if (hasSubAgentLogoURL(subAgent)) {\n <img [src]=\"subAgent.LogoURL\" [alt]=\"subAgent.Name + ' logo'\" class=\"sub-agent-logo\">\n } @else {\n <i [class]=\"getSubAgentIcon(subAgent)\"></i>\n }\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ subAgent.Name || 'Untitled Sub-Agent' }}</div>\n @if (subAgent.Description) {\n <div class=\"item-preview\">{{ subAgent.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (subAgent.Status) {\n <span class=\"status-tag\" [style.background-color]=\"getStatusBadgeColor()\">\n {{ subAgent.Status }}\n </span>\n }\n @if (subAgent.ExecutionMode) {\n <span class=\"meta-tag\">{{ subAgent.ExecutionMode }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (subAgentCount > subAgents.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agents', '')\">\n <span>View all {{ subAgentCount }} sub-agents...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Execution Guardrails (New Separate Panel) -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-shield-halved\"></i> Execution Guardrails\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Set limits to prevent runaway agent executions and control resource usage.\n </div>\n </div>\n \n <div class=\"form-fields-grid\">\n <mj-form-field \n FieldName=\"MaxCostPerRun\" \n Type=\"numerictextbox\"\n Caption=\"Max Cost ($)\"\n Description=\"Maximum cost per run\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"MaxTokensPerRun\" \n Type=\"numerictextbox\"\n Caption=\"Max Tokens\"\n Description=\"Maximum tokens per run\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"MaxIterationsPerRun\" \n Type=\"numerictextbox\"\n Caption=\"Max Iterations\"\n Description=\"Maximum prompt iterations\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"MaxTimePerRun\" \n Type=\"numerictextbox\"\n Caption=\"Max Time (seconds)\"\n Description=\"Maximum execution time\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\n <!-- Configuration (Settings Panel) -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-cog\"></i> Configuration\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Advanced configuration settings for agent behavior and execution.\n </div>\n </div>\n \n <div class=\"form-fields-grid\">\n <!-- Core Settings -->\n <mj-form-field \n FieldName=\"Status\" \n Type=\"dropdownlist\"\n Caption=\"Status\"\n Description=\"Agent availability status\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"ExecutionMode\" \n Type=\"dropdownlist\"\n Caption=\"Execution Mode\"\n Description=\"How sub-agents are executed\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"ExecutionOrder\" \n Type=\"numerictextbox\"\n Caption=\"Execution Order\"\n Description=\"Order when run with siblings\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"ExposeAsAction\" \n Type=\"checkbox\"\n Caption=\"Expose as Action\"\n Description=\"Make available as an action\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"TypeID\" \n Type=\"dropdownlist\"\n Caption=\"Agent Type\"\n Description=\"Category of this agent\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n LinkType=\"Record\"\n LinkEntityName=\"AI Agent Types\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"DriverClass\" \n Type=\"textbox\"\n Caption=\"Driver Class\"\n Description=\"Custom implementation class\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"IconClass\" \n Type=\"textbox\"\n Caption=\"Icon Class\"\n Description=\"Font Awesome icon class\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"Description\" \n Type=\"textarea\"\n Caption=\"Description\"\n Description=\"Detailed agent description\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"grid-column: span 2;\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"LogoURL\" \n Type=\"textbox\"\n Caption=\"Logo URL\"\n Description=\"URL for agent logo image\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"grid-column: span 2;\">\n </mj-form-field>\n </div>\n\n <!-- Context Compression Settings -->\n <div class=\"subsection-divider\">\n <h4 class=\"subsection-title\">\n <i class=\"fa-solid fa-compress\"></i> Context Compression\n </h4>\n </div>\n\n <div class=\"form-fields-grid\">\n <mj-form-field \n FieldName=\"EnableContextCompression\" \n Type=\"checkbox\"\n Caption=\"Enable Compression\"\n Description=\"Compress long conversations\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"ContextCompressionMessageThreshold\" \n Type=\"numerictextbox\"\n Caption=\"Message Threshold\"\n Description=\"Messages before compression\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"ContextCompressionMessageRetentionCount\" \n Type=\"numerictextbox\"\n Caption=\"Messages to Keep\"\n Description=\"Recent messages to retain\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n\n <mj-form-field \n FieldName=\"ContextCompressionPromptID\" \n Type=\"dropdownlist\"\n Caption=\"Compression Prompt\"\n Description=\"Prompt for summarization\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n LinkType=\"Record\"\n LinkEntityName=\"AI Prompts\">\n </mj-form-field>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\n <!-- Notes (Seventh Panel) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes{{ noteCount > 0 ? ' (' + noteCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage notes, documentation, and annotations for this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Add Note\n </button>\n }\n </div>\n </div>\n \n @if (noteCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n <h4>No Notes</h4>\n <p>Add notes to document important information, observations, or instructions for this agent.</p>\n @if (EditMode) {\n <button kendoButton themeColor=\"primary\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Create First Note\n </button>\n }\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (note of agentNotes; track note.ID) {\n <div class=\"entity-item note-item\" (click)=\"navigateToEntity('AI Agent Notes', note.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ note.Type || 'Note' }}</div>\n @if (note.Note) {\n <div class=\"item-preview\">{{ note.Note.substring(0, 100) }}{{ note.Note.length > 100 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (note.__mj_CreatedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ note.__mj_CreatedAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (noteCount > agentNotes.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Notes', '')\">\n <span>View all {{ noteCount }} notes...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Learning Cycles (Eighth Panel) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles{{ learningCycleCount > 0 ? ' (' + learningCycleCount + ')' : '' }}\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Monitor and manage learning cycles, training sessions, and performance analytics.\n </div>\n </div>\n \n @if (learningCycleCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>No Learning Cycles</h4>\n <p>Learning cycles will appear here as the agent processes requests and improves over time.</p>\n </div>\n } @else {\n <div class=\"entity-list\">\n @for (cycle of learningCycles; track cycle.ID) {\n <div class=\"entity-item learning-item\" (click)=\"navigateToEntity('AI Agent Learning Cycles', cycle.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-brain\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">Learning Cycle {{ cycle.ID.substring(0, 8) }}</div>\n <div class=\"item-meta\">\n @if (cycle.StartedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ cycle.StartedAt | date:'short' }}\n </span>\n }\n @if (cycle.Status) {\n <span class=\"status-tag\">{{ cycle.Status }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (learningCycleCount > learningCycles.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('AI Agent Learning Cycles', '')\">\n <span>View all {{ learningCycleCount }} cycles...</span>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n\n </kendo-panelbar>\n </div>\n </form>\n\n</div>", styles: ["/* AI Agent Form - Modern Redesign */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f5f7fa;\n}\n\n.record-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Agent Header Section - Compact Design */\n.agent-header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 12px 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.agent-header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 20px;\n}\n\n.agent-overview {\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.2);\n flex-shrink: 0;\n}\n\n.agent-icon-wrapper i {\n color: white;\n font-size: 24px;\n}\n\n.agent-icon-wrapper img.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 22px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n line-height: 1.2;\n}\n\n.agent-name-input {\n font-size: 18px !important;\n font-weight: 500 !important;\n height: 36px !important;\n width: 100% !important;\n max-width: 400px !important;\n}\n\n.agent-meta {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge.active {\n background: #28a745;\n color: white;\n}\n\n.status-badge.pending {\n background: #ffc107;\n color: #212529;\n}\n\n.status-badge.disabled {\n background: #6c757d;\n color: white;\n}\n\n.execution-mode,\n.parent-agent {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode i,\n.parent-agent i {\n font-size: 12px;\n opacity: 0.8;\n}\n\n/* Prompt Controls Section */\n.prompt-controls {\n flex: 1;\n margin-right: 16px;\n}\n\n/* Model Selection Mode */\n.model-selection-mode {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 8px 16px;\n background: #f0f7ff;\n border: 1px solid #cce5ff;\n border-radius: 8px;\n}\n\n.model-selection-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 600;\n color: #0066cc;\n margin: 0;\n}\n\n.model-selection-label i {\n font-size: 14px;\n}\n\n.model-selection-dropdown {\n min-width: 140px;\n height: 32px;\n}\n\n.model-selection-value {\n font-size: 13px;\n font-weight: 500;\n color: #495057;\n padding: 4px 12px;\n background: white;\n border-radius: 6px;\n border: 1px solid #dee2e6;\n}\n\n.agent-meta-info {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value {\n font-size: 14px;\n color: #495057;\n font-weight: 500;\n}\n\n.agent-description {\n margin-top: 16px;\n color: #6c757d;\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n/* Action Buttons Section */\n.agent-actions {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.action-buttons-row {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0,0,0,0.08);\n}\n\n.action-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0,0,0,0.12);\n}\n\n.action-button.primary {\n background: #2196f3;\n color: white;\n}\n\n.action-button.primary:hover {\n background: #1976d2;\n}\n\n.action-button.secondary {\n background: #6c757d;\n color: white;\n}\n\n.action-button.secondary:hover {\n background: #5a6268;\n}\n\n.action-warnings {\n margin-top: 8px;\n font-size: 13px;\n color: #dc3545;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Panel-Based Form Content */\n.form-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: #f5f7fa;\n padding: 12px;\n}\n\n/* Kendo PanelBar Styling */\n::ng-deep .k-panelbar {\n border: none;\n background: transparent;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item {\n border: none;\n border-radius: 12px;\n margin-bottom: 12px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n background: white;\n overflow: hidden;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n background: white;\n border: none;\n padding: 16px 20px;\n border-radius: 12px 12px 0 0;\n color: #2c3e50;\n font-weight: 600;\n font-size: 16px;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header:hover {\n background: #f8f9fa;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header {\n background: #2196f3;\n color: white;\n border-radius: 12px 12px 0 0;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle {\n position: absolute;\n right: 24px;\n color: inherit;\n font-size: 14px;\n transition: transform 0.2s ease;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item.k-panelbar-expanded > .k-header .k-panelbar-toggle {\n transform: rotate(180deg);\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-header .k-panelbar-toggle::before {\n content: '\\f107';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n}\n\n::ng-deep .k-panelbar > .k-panelbar-item > .k-content {\n padding: 0;\n border: none;\n background: white;\n border-radius: 0 0 12px 12px;\n}\n\n::ng-deep .k-panelbar .k-header .k-panelbar-icon {\n font-size: 18px;\n color: #2196f3;\n margin-right: 8px;\n}\n\n::ng-deep .k-panelbar .k-panelbar-expanded .k-header .k-panelbar-icon {\n color: white;\n}\n\n/* Panel Content */\n.panel-content {\n padding: 16px;\n background: white;\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section {\n background: white;\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n border: 1px solid #e0e6ed;\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid #f0f4f8;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: #2c3e50;\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title i {\n color: #2196f3;\n font-size: 20px;\n}\n\n.section-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n/* Form Fields Grid */\n.form-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label {\n font-size: 13px;\n font-weight: 600;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Sub-grids styling (legacy) */\n.sub-grid-container {\n height: 500px;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n display: none; /* Hidden as we now use cards */\n}\n\n/* Empty States */\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state i {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto;\n}\n\n/* Loading State */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon {\n width: 48px;\n height: 48px;\n border: 4px solid #f3f3f3;\n border-top: 4px solid #2196f3;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Quick Actions */\n.quick-actions {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n}\n\n.quick-action-card {\n flex: 1;\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card:hover {\n background: white;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon {\n font-size: 32px;\n color: #2196f3;\n margin-bottom: 8px;\n}\n\n.quick-action-title {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 4px;\n}\n\n.quick-action-description {\n font-size: 12px;\n color: #6c757d;\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* Entity List Interface */\n.entity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n transform: translateY(-1px);\n}\n\n.item-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item .item-icon {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-item .item-icon {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.sub-agent-item .item-icon {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.model-item .item-icon {\n background: linear-gradient(135deg, #6f42c1, #563d7c);\n}\n\n.learning-item .item-icon {\n background: linear-gradient(135deg, #e83e8c, #dc3545);\n}\n\n.note-item .item-icon {\n background: linear-gradient(135deg, #fd7e14, #e55a00);\n}\n\n.item-icon i {\n color: #6c757d;\n font-size: 18px;\n}\n\n.prompt-item .item-icon i,\n.action-item .item-icon i,\n.sub-agent-item .item-icon i,\n.model-item .item-icon i,\n.learning-item .item-icon i,\n.note-item .item-icon i {\n color: white;\n}\n\n.item-icon img.sub-agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content {\n flex: 1;\n min-width: 0;\n}\n\n.item-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag,\n.priority-tag,\n.status-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag {\n background: #e9ecef;\n color: #495057;\n}\n\n.priority-tag {\n color: white;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag {\n background: #e9ecef;\n color: #495057;\n}\n\n.status-tag.active {\n background: #d4edda;\n color: #28a745;\n}\n\n.status-tag.inactive {\n background: #f8d7da;\n color: #dc3545;\n}\n\n.item-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: #6c757d;\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item:hover .item-actions {\n opacity: 1;\n}\n\n.entity-item:hover .item-actions > i {\n color: #2196f3;\n}\n\n.view-more-item {\n padding: 16px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-more-item:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n color: #2196f3;\n}\n\n/* Payload Section Styles */\n.payload-config-section,\n.payload-paths-section,\n.payload-validation-section {\n margin-bottom: 32px;\n}\n\n.subsection-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title i {\n color: #2196f3;\n}\n\n.subsection-divider {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid #e0e6ed;\n}\n\n.payload-config-grid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group {\n margin-bottom: 20px;\n}\n\n.payload-field-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 8px;\n}\n\n.payload-field-label i {\n color: #6c757d;\n font-size: 16px;\n}\n\n.field-description {\n font-size: 12px;\n font-weight: normal;\n color: #6c757d;\n margin-left: auto;\n}\n\n/* Code editor styling */\n.payload-field-group mj-code-editor {\n border: 1px solid #dee2e6;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group mj-code-editor:hover {\n border-color: #2196f3;\n}\n\n/* Payload textarea styling */\n.payload-field-group mj-form-field ::ng-deep textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n/* Execution History Panel */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Timeline List for Execution History */\n.timeline-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: #f8f9fa;\n border: 1px solid #e0e6ed;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n background: white;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n}\n\n.timeline-marker {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker i {\n color: white;\n font-size: 14px;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date {\n font-size: 12px;\n color: #6c757d;\n background: #e9ecef;\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Modern Card-Based Interface (Legacy - Keep for backward compatibility) */\n.cards-container {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n border-color: #2196f3;\n}\n\n.entity-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: linear-gradient(90deg, #2196f3, #42a5f5);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card:hover::before {\n opacity: 1;\n}\n\n.card-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card .card-icon {\n background: linear-gradient(135deg, #2196f3, #1976d2);\n}\n\n.prompt-card .card-icon {\n background: linear-gradient(135deg, #20c997, #17a673);\n}\n\n.action-card .card-icon {\n background: linear-gradient(135deg, #ffc107, #e0a800);\n}\n\n.card-icon i {\n font-size: 18px;\n color: #6c757d;\n}\n\n.sub-agent-card .card-icon i,\n.prompt-card .card-icon i,\n.action-card .card-icon i {\n color: white;\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6c757d;\n padding: 4px 8px;\n background: #f8f9fa;\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active {\n color: #28a745;\n background: #d4edda;\n}\n\n.meta-item.inactive {\n color: #dc3545;\n background: #f8d7da;\n}\n\n.card-actions {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: #6c757d;\n}\n\n.entity-card:hover .card-actions {\n opacity: 1;\n color: #2196f3;\n}\n\n/* Badge Styles */\n.priority-badge {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: white;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: #e9ecef;\n color: #495057;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* View All Card */\n.view-all-card {\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n transform: translateY(-2px);\n}\n\n.view-all-content {\n text-align: center;\n color: #6c757d;\n font-weight: 500;\n}\n\n.view-all-content i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n/* Timeline Interface for History */\n.timeline-container {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item:hover {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n.timeline-item.expanded {\n background: #f8f9fa;\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.1);\n}\n\n.timeline-item.view-all {\n cursor: pointer;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border: 2px dashed #dee2e6;\n}\n\n.timeline-item.view-all:hover {\n background: linear-gradient(135deg, #e9ecef, #dee2e6);\n border-color: #2196f3;\n}\n\n.timeline-item > div:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.timeline-marker::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: #e0e6ed;\n}\n\n.timeline-item:last-child .timeline-marker::after {\n display: none;\n}\n\n.timeline-marker i {\n color: white;\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker {\n background: #6c757d;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: #6c757d;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date {\n font-size: 12px;\n color: #6c757d;\n white-space: nowrap;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview {\n font-size: 13px;\n color: #6c757d;\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border-radius: 6px;\n border: 1px solid #e0e6ed;\n}\n\n.timeline-status {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: #6c757d;\n background: #f8f9fa;\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description {\n color: #6c757d;\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error {\n color: #dc3545;\n font-size: 13px;\n background: #f8d7da;\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error i {\n flex-shrink: 0;\n}\n\n/* Expanded Content Styles */\n.timeline-expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid #e0e6ed;\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section,\n.error-section {\n margin-bottom: 20px;\n}\n\n.result-section h5,\n.error-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: #dc3545;\n}\n\n.result-content,\n.error-content {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: #495057;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Code editor styling within result section */\n.result-section mj-code-editor {\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content {\n background: #f8d7da;\n border-color: #f5c6cb;\n color: #721c24;\n}\n\n.execution-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value {\n font-size: 14px;\n color: #495057;\n word-break: break-all;\n}\n\n.timeline-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary {\n padding: 8px 16px;\n background: #2196f3;\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: #1976d2;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.3);\n}\n\n.btn-primary i {\n font-size: 12px;\n}\n\n/* Enhanced Empty States */\n.empty-state {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n background: #f8f9fa;\n border-radius: 12px;\n border: 2px dashed #dee2e6;\n margin-top: 16px;\n}\n\n.empty-state i {\n font-size: 48px;\n color: #dee2e6;\n margin-bottom: 16px;\n}\n\n.empty-state h4 {\n color: #495057;\n font-weight: 600;\n margin-bottom: 8px;\n font-size: 18px;\n}\n\n.empty-state p {\n font-size: 15px;\n line-height: 1.6;\n max-width: 400px;\n margin: 0 auto 20px auto;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n /* Header Responsiveness */\n .agent-header {\n padding: 16px;\n }\n \n .agent-header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .agent-overview {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .agent-meta {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .agent-actions {\n width: 100%;\n align-self: stretch;\n }\n \n .action-button {\n flex: 1;\n justify-content: center;\n }\n \n /* Panel Responsiveness */\n .form-content {\n padding: 12px;\n }\n \n ::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n \n .panel-content {\n padding: 20px 16px;\n }\n \n .section-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .header-actions {\n flex-wrap: wrap;\n align-self: stretch;\n }\n \n /* Entity List Responsiveness */\n .entity-item {\n padding: 12px;\n gap: 12px;\n }\n \n .item-icon {\n width: 36px;\n height: 36px;\n }\n \n .item-icon i {\n font-size: 16px;\n }\n \n .item-title {\n font-size: 15px;\n }\n \n .item-preview {\n font-size: 13px;\n }\n \n .item-meta {\n gap: 8px;\n }\n \n /* Timeline Responsiveness */\n .timeline-item {\n padding: 12px;\n gap: 12px;\n }\n \n .timeline-marker {\n width: 28px;\n height: 28px;\n }\n \n .timeline-marker i {\n font-size: 12px;\n }\n \n .timeline-title {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n \n .timeline-date {\n align-self: flex-start;\n }\n \n /* Form Field Responsiveness */\n .form-fields-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n \n /* Legacy card support */\n .cards-container {\n grid-template-columns: 1fr;\n }\n}\n\n/* Execution History Panel - Max Height and Scroll */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Custom scrollbar for execution history */\n.execution-history-panel::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb:hover {\n background: #a0a0a0;\n}\n\n"] }]
|
|
1785
1950
|
}], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.DialogService }, { type: i0.ViewContainerRef }, { type: i4.NewAgentDialogService }, { type: i5.ActionGalleryDialogService }, { type: i6.AITestHarnessDialogService }], null); })();
|
|
1786
1951
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentFormComponentExtended, { className: "AIAgentFormComponentExtended", filePath: "src/lib/custom/AIAgents/ai-agent-form.component.ts", lineNumber: 52 }); })();
|
|
1787
1952
|
export function LoadAIAgentFormComponentExtended() {
|