@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.
Files changed (19) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +5 -1
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +744 -579
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +15 -6
  6. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  7. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
  8. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +94 -4
  9. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
  10. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts.map +1 -1
  11. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js +22 -4
  12. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js.map +1 -1
  13. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -1
  14. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +13 -4
  15. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -1
  16. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
  17. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +22 -4
  18. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
  19. 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-form-toolbar";
28
- import * as i14 from "@memberjunction/ng-code-editor";
29
- const _c0 = ["*"];
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", 28);
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", 29);
63
- i0.ɵɵelement(1, "i", 30);
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", 31);
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", 32);
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", 33);
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", 34);
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(" Actions", ctx_r1.actionCount > 0 ? " (" + ctx_r1.actionCount + ")" : "", " ");
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", 39);
131
- i0.ɵɵelement(1, "i", 34);
114
+ i0.ɵɵelementStart(0, "div", 37);
115
+ i0.ɵɵelement(1, "i", 33);
132
116
  i0.ɵɵelementStart(2, "h4");
133
- i0.ɵɵtext(3, "No Actions Configured");
117
+ i0.ɵɵtext(3, "No Execution History");
134
118
  i0.ɵɵelementEnd();
135
119
  i0.ɵɵelementStart(4, "p");
136
- i0.ɵɵtext(5, "Add actions to enable this agent to perform specific tasks and operations.");
137
- i0.ɵɵelementEnd();
138
- i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_4_Conditional_6_Template, 3, 0, "button", 43);
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 ctx_r1 = i0.ɵɵnextContext(4);
142
- i0.ɵɵadvance(6);
143
- i0.ɵɵconditional(ctx_r1.EditMode ? 6 : -1);
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 AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
146
- i0.ɵɵelementStart(0, "div", 51);
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 action_r8 = i0.ɵɵnextContext().$implicit;
139
+ const execution_r6 = i0.ɵɵnextContext().$implicit;
140
+ const ctx_r1 = i0.ɵɵnextContext(5);
151
141
  i0.ɵɵadvance();
152
- i0.ɵɵtextInterpolate(action_r8.Description);
142
+ i0.ɵɵtextInterpolate(ctx_r1.getExecutionResultPreview(execution_r6, true));
153
143
  } }
154
- function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
155
- i0.ɵɵelementStart(0, "span", 53);
156
- i0.ɵɵtext(1);
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 action_r8 = i0.ɵɵnextContext().$implicit;
160
- i0.ɵɵadvance();
161
- i0.ɵɵtextInterpolate(action_r8.Type);
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 AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
164
- const _r9 = i0.ɵɵgetCurrentView();
165
- i0.ɵɵelementStart(0, "button", 59);
166
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const action_r8 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removeAction(action_r8, $event)); });
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 AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
171
- const _r7 = i0.ɵɵgetCurrentView();
172
- i0.ɵɵelementStart(0, "div", 47);
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, "div", 49)(4, "div", 50);
178
- i0.ɵɵtext(5);
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.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_6_Template, 2, 1, "div", 51);
181
- i0.ɵɵelementStart(7, "div", 52);
182
- i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Conditional_8_Template, 2, 1, "span", 53);
183
- i0.ɵɵelementStart(9, "span", 54);
184
- i0.ɵɵelement(10, "i", 55);
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.ɵɵelementStart(12, "div", 56);
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 action_r8 = ctx.$implicit;
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.ɵɵclassMap(ctx_r1.getActionIcon(action_r8));
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.ɵɵconditional(action_r8.Description ? 6 : -1);
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.ɵɵconditional(action_r8.Type ? 8 : -1);
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.ɵɵclassProp("active", action_r8.Status === "Active")("inactive", action_r8.Status !== "Active");
262
+ i0.ɵɵtextInterpolate1(" ", execution_r6.Status || "Unknown", " ");
204
263
  i0.ɵɵadvance();
205
- i0.ɵɵclassProp("fa-check-circle", action_r8.Status === "Active")("fa-times-circle", action_r8.Status !== "Active");
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.ɵɵtextInterpolate1(" ", action_r8.Status, " ");
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 _r10 = i0.ɵɵgetCurrentView();
213
- i0.ɵɵelementStart(0, "div", 61);
214
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Actions", "")); });
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.actionCount, " actions...");
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", 40);
225
- i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_For_2_Template, 15, 15, "div", 45, _forTrack0);
226
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 46);
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.agentActions);
290
+ i0.ɵɵrepeater(ctx_r1.recentExecutions);
232
291
  i0.ɵɵadvance(2);
233
- i0.ɵɵconditional(ctx_r1.actionCount > ctx_r1.agentActions.length ? 3 : -1);
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", 35)(1, "div", 36)(2, "div", 37);
237
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_3_Template, 3, 0, "button", 38);
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, 7, 1, "div", 39)(5, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Conditional_5_Template, 4, 1, "div", 40);
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(3);
244
- i0.ɵɵconditional(ctx_r1.EditMode ? 3 : -1);
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", 26)(2, AIAgentFormComponentExtended_form_2_Conditional_22_ng_template_2_Template, 6, 2, "ng-template", 27);
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
- const ctx_r1 = i0.ɵɵnextContext(2);
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", 31);
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(" Sub-Agents", ctx_r1.subAgentCount > 0 ? " (" + ctx_r1.subAgentCount + ")" : "", " ");
318
+ i0.ɵɵtextInterpolate1(" Prompts", ctx_r1.promptCount > 0 ? " (" + ctx_r1.promptCount + ")" : "", " ");
263
319
  } }
264
- function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
265
- const _r11 = i0.ɵɵgetCurrentView();
266
- i0.ɵɵelementStart(0, "button", 41);
267
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.createSubAgent()); });
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 AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
273
- const _r12 = i0.ɵɵgetCurrentView();
274
- i0.ɵɵelementStart(0, "button", 44);
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 AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
281
- i0.ɵɵelementStart(0, "div", 39);
282
- i0.ɵɵelement(1, "i", 31);
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 Sub-Agents");
359
+ i0.ɵɵtext(3, "No Prompts Configured");
285
360
  i0.ɵɵelementEnd();
286
361
  i0.ɵɵelementStart(4, "p");
287
- i0.ɵɵtext(5, "Create sub-agents to build a hierarchical structure for complex workflows.");
362
+ i0.ɵɵtext(5, "Add prompts to define how this agent processes requests and generates responses.");
288
363
  i0.ɵɵelementEnd();
289
- i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_6_Conditional_6_Template, 3, 0, "button", 43);
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 AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
297
- i0.ɵɵelement(0, "img", 65);
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 subAgent_r14 = i0.ɵɵnextContext().$implicit;
376
+ const prompt_r12 = i0.ɵɵnextContext().$implicit;
315
377
  i0.ɵɵadvance();
316
- i0.ɵɵtextInterpolate(subAgent_r14.Description);
378
+ i0.ɵɵtextInterpolate2("", prompt_r12.TemplateText.substring(0, 120), "", prompt_r12.TemplateText.length > 120 ? "..." : "", "");
317
379
  } }
318
- function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
319
- i0.ɵɵelementStart(0, "span", 54);
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 subAgent_r14 = i0.ɵɵnextContext().$implicit;
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.ɵɵtextInterpolate1(" ", subAgent_r14.Status, " ");
387
+ i0.ɵɵtextInterpolate(prompt_r12.PromptRole);
328
388
  } }
329
- function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
330
- i0.ɵɵelementStart(0, "span", 53);
331
- i0.ɵɵtext(1);
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 AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
339
- const _r13 = i0.ɵɵgetCurrentView();
340
- i0.ɵɵelementStart(0, "div", 64);
341
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Template_div_click_0_listener() { const subAgent_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agents", subAgent_r14.ID)); });
342
- i0.ɵɵelementStart(1, "div", 48);
343
- i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_2_Template, 1, 2, "img", 65)(3, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_3_Template, 1, 2, "i", 11);
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(4, "div", 49)(5, "div", 50);
346
- i0.ɵɵtext(6);
403
+ i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
404
+ i0.ɵɵtext(5);
347
405
  i0.ɵɵelementEnd();
348
- i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_7_Template, 2, 1, "div", 51);
349
- i0.ɵɵelementStart(8, "div", 52);
350
- i0.ɵɵtemplate(9, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_9_Template, 2, 3, "span", 66)(10, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Conditional_10_Template, 2, 1, "span", 53);
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(11, "div", 56);
353
- i0.ɵɵelement(12, "i", 58);
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 subAgent_r14 = ctx.$implicit;
415
+ const prompt_r12 = ctx.$implicit;
357
416
  const ctx_r1 = i0.ɵɵnextContext(5);
358
- i0.ɵɵadvance(2);
359
- i0.ɵɵconditional(ctx_r1.hasSubAgentLogoURL(subAgent_r14) ? 2 : 3);
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(subAgent_r14.Description ? 7 : -1);
420
+ i0.ɵɵconditional(prompt_r12.TemplateText ? 6 : -1);
364
421
  i0.ɵɵadvance(2);
365
- i0.ɵɵconditional(subAgent_r14.Status ? 9 : -1);
366
- i0.ɵɵadvance();
367
- i0.ɵɵconditional(subAgent_r14.ExecutionMode ? 10 : -1);
422
+ i0.ɵɵconditional(prompt_r12.PromptRole ? 8 : -1);
423
+ i0.ɵɵadvance(2);
424
+ i0.ɵɵconditional(ctx_r1.EditMode ? 10 : -1);
368
425
  } }
369
- function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
370
- const _r15 = i0.ɵɵgetCurrentView();
371
- i0.ɵɵelementStart(0, "div", 61);
372
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agents", "")); });
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.subAgentCount, " sub-agents...");
436
+ i0.ɵɵtextInterpolate1("View all ", ctx_r1.promptCount, " prompts...");
380
437
  } }
381
- function AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
382
- i0.ɵɵelementStart(0, "div", 40);
383
- i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_For_2_Template, 13, 5, "div", 63, _forTrack0);
384
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div", 46);
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.subAgents);
446
+ i0.ɵɵrepeater(ctx_r1.agentPrompts);
390
447
  i0.ɵɵadvance(2);
391
- i0.ɵɵconditional(ctx_r1.subAgentCount > ctx_r1.subAgents.length ? 3 : -1);
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", 35)(1, "div", 36)(2, "div", 62);
395
- i0.ɵɵtext(3, " Manage hierarchical relationships with child agents that work under this agent. ");
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.ɵɵelementStart(4, "div", 37);
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.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_6_Template, 7, 1, "div", 39)(7, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Conditional_7_Template, 4, 1, "div", 40);
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(5);
405
- i0.ɵɵconditional(ctx_r1.EditMode ? 5 : -1);
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.subAgentCount === 0 ? 6 : 7);
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", 26)(2, AIAgentFormComponentExtended_form_2_Conditional_23_ng_template_2_Template, 8, 2, "ng-template", 27);
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
- const ctx_r1 = i0.ɵɵnextContext(2);
415
- i0.ɵɵproperty("expanded", ctx_r1.subAgentCount > 0);
476
+ i0.ɵɵproperty("expanded", false);
416
477
  } }
417
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_1_Template(rf, ctx) { if (rf & 1) {
418
- i0.ɵɵelement(0, "i", 67);
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 AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
426
- const _r16 = i0.ɵɵgetCurrentView();
427
- i0.ɵɵelementStart(0, "kendo-dropdownlist", 74);
428
- i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_7_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.record.ModelSelectionMode, $event) || (ctx_r1.record.ModelSelectionMode = $event); return i0.ɵɵresetView($event); });
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(4);
432
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.ModelSelectionMode);
433
- i0.ɵɵproperty("data", ctx_r1.modelSelectionModes)("valuePrimitive", true);
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 AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
436
- i0.ɵɵelementStart(0, "span", 73);
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(4);
567
+ const ctx_r1 = i0.ɵɵnextContext(3);
441
568
  i0.ɵɵadvance();
442
- i0.ɵɵtextInterpolate(ctx_r1.record.ModelSelectionMode || "Agent Type");
569
+ i0.ɵɵtextInterpolate1(" Actions", ctx_r1.actionCount > 0 ? " (" + ctx_r1.actionCount + ")" : "", " ");
443
570
  } }
444
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
445
- const _r17 = i0.ɵɵgetCurrentView();
446
- i0.ɵɵelementStart(0, "button", 41);
447
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
448
- i0.ɵɵelement(1, "i", 42);
449
- i0.ɵɵtext(2, " Add Prompt ");
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 AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
453
- const _r18 = i0.ɵɵgetCurrentView();
454
- i0.ɵɵelementStart(0, "button", 44);
455
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_11_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
456
- i0.ɵɵelement(1, "i", 42);
457
- i0.ɵɵtext(2, " Create First Prompt ");
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 AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
461
- i0.ɵɵelementStart(0, "div", 39);
462
- i0.ɵɵelement(1, "i", 67);
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 Prompts Configured");
591
+ i0.ɵɵtext(3, "No Actions Configured");
465
592
  i0.ɵɵelementEnd();
466
593
  i0.ɵɵelementStart(4, "p");
467
- i0.ɵɵtext(5, "Add prompts to define how this agent processes requests and generates responses.");
594
+ i0.ɵɵtext(5, "Add actions to enable this agent to perform specific tasks and operations.");
468
595
  i0.ɵɵelementEnd();
469
- i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_11_Conditional_6_Template, 3, 0, "button", 43);
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 AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
477
- i0.ɵɵelementStart(0, "div", 51);
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 prompt_r20 = i0.ɵɵnextContext().$implicit;
608
+ const action_r19 = i0.ɵɵnextContext().$implicit;
482
609
  i0.ɵɵadvance();
483
- i0.ɵɵtextInterpolate2("", prompt_r20.TemplateText.substring(0, 120), "", prompt_r20.TemplateText.length > 120 ? "..." : "", "");
610
+ i0.ɵɵtextInterpolate(action_r19.Description);
484
611
  } }
485
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
486
- i0.ɵɵelementStart(0, "span", 53);
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 prompt_r20 = i0.ɵɵnextContext().$implicit;
617
+ const action_r19 = i0.ɵɵnextContext().$implicit;
491
618
  i0.ɵɵadvance();
492
- i0.ɵɵtextInterpolate(prompt_r20.PromptRole);
619
+ i0.ɵɵtextInterpolate(action_r19.Type);
493
620
  } }
494
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
495
- const _r21 = i0.ɵɵgetCurrentView();
496
- i0.ɵɵelementStart(0, "button", 79);
497
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_10_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r21); const prompt_r20 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removePrompt(prompt_r20, $event)); });
498
- i0.ɵɵelement(1, "i", 60);
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 AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
502
- const _r19 = i0.ɵɵgetCurrentView();
503
- i0.ɵɵelementStart(0, "div", 76);
504
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Template_div_click_0_listener() { const prompt_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Prompts", prompt_r20.ID)); });
505
- i0.ɵɵelementStart(1, "div", 48);
506
- i0.ɵɵelement(2, "i", 77);
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", 49)(4, "div", 50);
635
+ i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
509
636
  i0.ɵɵtext(5);
510
637
  i0.ɵɵelementEnd();
511
- i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_6_Template, 2, 2, "div", 51);
512
- i0.ɵɵelementStart(7, "div", 52);
513
- i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_8_Template, 2, 1, "span", 53);
514
- i0.ɵɵelementEnd()();
515
- i0.ɵɵelementStart(9, "div", 56);
516
- i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Conditional_10_Template, 2, 0, "button", 78);
517
- i0.ɵɵelement(11, "i", 58);
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 prompt_r20 = ctx.$implicit;
650
+ const action_r19 = ctx.$implicit;
521
651
  const ctx_r1 = i0.ɵɵnextContext(5);
522
- i0.ɵɵadvance(5);
523
- i0.ɵɵtextInterpolate(prompt_r20.Name);
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(prompt_r20.TemplateText ? 6 : -1);
657
+ i0.ɵɵconditional(action_r19.Description ? 6 : -1);
526
658
  i0.ɵɵadvance(2);
527
- i0.ɵɵconditional(prompt_r20.PromptRole ? 8 : -1);
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 ? 10 : -1);
667
+ i0.ɵɵconditional(ctx_r1.EditMode ? 13 : -1);
530
668
  } }
531
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_Conditional_3_Template(rf, ctx) { if (rf & 1) {
532
- const _r22 = i0.ɵɵgetCurrentView();
533
- i0.ɵɵelementStart(0, "div", 61);
534
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Prompts", "")); });
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.promptCount, " prompts...");
679
+ i0.ɵɵtextInterpolate1("View all ", ctx_r1.actionCount, " actions...");
542
680
  } }
543
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
544
- i0.ɵɵelementStart(0, "div", 40);
545
- i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_For_2_Template, 12, 4, "div", 75, _forTrack0);
546
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_Conditional_3_Template, 3, 1, "div", 46);
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.agentPrompts);
689
+ i0.ɵɵrepeater(ctx_r1.agentActions);
552
690
  i0.ɵɵadvance(2);
553
- i0.ɵɵconditional(ctx_r1.promptCount > ctx_r1.agentPrompts.length ? 3 : -1);
691
+ i0.ɵɵconditional(ctx_r1.actionCount > ctx_r1.agentActions.length ? 3 : -1);
554
692
  } }
555
- function AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Template(rf, ctx) { if (rf & 1) {
556
- i0.ɵɵelementStart(0, "div", 35)(1, "div", 36)(2, "div", 68)(3, "div", 69)(4, "label", 70);
557
- i0.ɵɵelement(5, "i", 71);
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(11, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_11_Template, 7, 1, "div", 39)(12, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Conditional_12_Template, 4, 1, "div", 40);
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 ? 10 : -1);
702
+ i0.ɵɵconditional(ctx_r1.EditMode ? 3 : -1);
573
703
  i0.ɵɵadvance();
574
- i0.ɵɵconditional(ctx_r1.promptCount === 0 ? 11 : 12);
704
+ i0.ɵɵconditional(ctx_r1.actionCount === 0 ? 4 : 5);
575
705
  } }
576
- function AIAgentFormComponentExtended_form_2_Conditional_24_Template(rf, ctx) { if (rf & 1) {
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, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_1_Template, 2, 1, "ng-template", 26)(2, AIAgentFormComponentExtended_form_2_Conditional_24_ng_template_2_Template, 13, 3, "ng-template", 27);
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", true);
711
+ i0.ɵɵproperty("expanded", false);
582
712
  } }
583
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_1_Template(rf, ctx) { if (rf & 1) {
584
- i0.ɵɵelement(0, "i", 80);
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(" Learning Cycles", ctx_r1.learningCycleCount > 0 ? " (" + ctx_r1.learningCycleCount + ")" : "", " ");
719
+ i0.ɵɵtextInterpolate1(" Sub-Agents", ctx_r1.subAgentCount > 0 ? " (" + ctx_r1.subAgentCount + ")" : "", " ");
590
720
  } }
591
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
592
- i0.ɵɵelementStart(0, "div", 39);
593
- i0.ɵɵelement(1, "i", 80);
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 Learning Cycles");
741
+ i0.ɵɵtext(3, "No Sub-Agents");
596
742
  i0.ɵɵelementEnd();
597
743
  i0.ɵɵelementStart(4, "p");
598
- i0.ɵɵtext(5, "Learning cycles will appear here as the agent processes requests and improves over time.");
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 AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
602
- i0.ɵɵelementStart(0, "span", 53);
603
- i0.ɵɵelement(1, "i", 83);
604
- i0.ɵɵtext(2);
605
- i0.ɵɵpipe(3, "date");
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 cycle_r24 = i0.ɵɵnextContext().$implicit;
609
- i0.ɵɵadvance(2);
610
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r24.StartedAt, "short"), " ");
771
+ const subAgent_r25 = i0.ɵɵnextContext().$implicit;
772
+ i0.ɵɵadvance();
773
+ i0.ɵɵtextInterpolate(subAgent_r25.Description);
611
774
  } }
612
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
613
- i0.ɵɵelementStart(0, "span", 54);
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 cycle_r24 = i0.ɵɵnextContext().$implicit;
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.ɵɵtextInterpolate(cycle_r24.Status);
784
+ i0.ɵɵtextInterpolate1(" ", subAgent_r25.Status, " ");
620
785
  } }
621
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
622
- const _r23 = i0.ɵɵgetCurrentView();
623
- i0.ɵɵelementStart(0, "div", 82);
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
- i0.ɵɵelementStart(3, "div", 49)(4, "div", 50);
629
- i0.ɵɵtext(5);
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(6, "div", 52);
632
- i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Conditional_7_Template, 4, 4, "span", 53)(8, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Conditional_8_Template, 2, 1, "span", 54);
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(9, "div", 56);
635
- i0.ɵɵelement(10, "i", 58);
809
+ i0.ɵɵelementStart(11, "div", 91);
810
+ i0.ɵɵelement(12, "i", 93);
636
811
  i0.ɵɵelementEnd()();
637
812
  } if (rf & 2) {
638
- const cycle_r24 = ctx.$implicit;
639
- i0.ɵɵadvance(5);
640
- i0.ɵɵtextInterpolate1("Learning Cycle ", cycle_r24.ID.substring(0, 8), "");
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(cycle_r24.StartedAt ? 7 : -1);
822
+ i0.ɵɵconditional(subAgent_r25.Status ? 9 : -1);
643
823
  i0.ɵɵadvance();
644
- i0.ɵɵconditional(cycle_r24.Status ? 8 : -1);
824
+ i0.ɵɵconditional(subAgent_r25.ExecutionMode ? 10 : -1);
645
825
  } }
646
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
647
- const _r25 = i0.ɵɵgetCurrentView();
648
- i0.ɵɵelementStart(0, "div", 61);
649
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Learning Cycles", "")); });
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.learningCycleCount, " cycles...");
836
+ i0.ɵɵtextInterpolate1("View all ", ctx_r1.subAgentCount, " sub-agents...");
657
837
  } }
658
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
659
- i0.ɵɵelementStart(0, "div", 40);
660
- i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_For_2_Template, 11, 3, "div", 81, _forTrack0);
661
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 46);
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.learningCycles);
846
+ i0.ɵɵrepeater(ctx_r1.subAgents);
667
847
  i0.ɵɵadvance(2);
668
- i0.ɵɵconditional(ctx_r1.learningCycleCount > ctx_r1.learningCycles.length ? 3 : -1);
848
+ i0.ɵɵconditional(ctx_r1.subAgentCount > ctx_r1.subAgents.length ? 3 : -1);
669
849
  } }
670
- function AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Template(rf, ctx) { if (rf & 1) {
671
- i0.ɵɵelementStart(0, "div", 35)(1, "div", 36)(2, "div", 62);
672
- i0.ɵɵtext(3, " Monitor and manage learning cycles, training sessions, and performance analytics. ");
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(4, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_4_Template, 6, 0, "div", 39)(5, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Conditional_5_Template, 4, 1, "div", 40);
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(4);
679
- i0.ɵɵconditional(ctx_r1.learningCycleCount === 0 ? 4 : 5);
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 AIAgentFormComponentExtended_form_2_Conditional_25_Template(rf, ctx) { if (rf & 1) {
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, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_1_Template, 2, 1, "ng-template", 26)(2, AIAgentFormComponentExtended_form_2_Conditional_25_ng_template_2_Template, 6, 1, "ng-template", 27);
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_1_Template(rf, ctx) { if (rf & 1) {
689
- i0.ɵɵelement(0, "i", 84);
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
697
- const _r26 = i0.ɵɵgetCurrentView();
698
- i0.ɵɵelementStart(0, "button", 41);
699
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
700
- i0.ɵɵelement(1, "i", 42);
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
705
- const _r27 = i0.ɵɵgetCurrentView();
706
- i0.ɵɵelementStart(0, "button", 44);
707
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_6_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addNote()); });
708
- i0.ɵɵelement(1, "i", 42);
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
713
- i0.ɵɵelementStart(0, "div", 39);
714
- i0.ɵɵelement(1, "i", 84);
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, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_6_Conditional_6_Template, 3, 0, "button", 43);
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
729
- i0.ɵɵelementStart(0, "div", 51);
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 note_r29 = i0.ɵɵnextContext().$implicit;
987
+ const note_r30 = i0.ɵɵnextContext().$implicit;
734
988
  i0.ɵɵadvance();
735
- i0.ɵɵtextInterpolate2("", note_r29.Note.substring(0, 100), "", note_r29.Note.length > 100 ? "..." : "", "");
989
+ i0.ɵɵtextInterpolate2("", note_r30.Note.substring(0, 100), "", note_r30.Note.length > 100 ? "..." : "", "");
736
990
  } }
737
- function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
738
- i0.ɵɵelementStart(0, "span", 53);
739
- i0.ɵɵelement(1, "i", 83);
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 note_r29 = i0.ɵɵnextContext().$implicit;
998
+ const note_r30 = i0.ɵɵnextContext().$implicit;
745
999
  i0.ɵɵadvance(2);
746
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, note_r29.__mj_CreatedAt, "short"), " ");
1000
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, note_r30.__mj_CreatedAt, "short"), " ");
747
1001
  } }
748
- function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
749
- const _r28 = i0.ɵɵgetCurrentView();
750
- i0.ɵɵelementStart(0, "div", 86);
751
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Template_div_click_0_listener() { const note_r29 = i0.ɵɵrestoreView(_r28).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Notes", note_r29.ID)); });
752
- i0.ɵɵelementStart(1, "div", 48);
753
- i0.ɵɵelement(2, "i", 84);
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", 49)(4, "div", 50);
1009
+ i0.ɵɵelementStart(3, "div", 86)(4, "div", 87);
756
1010
  i0.ɵɵtext(5);
757
1011
  i0.ɵɵelementEnd();
758
- i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Conditional_6_Template, 2, 2, "div", 51);
759
- i0.ɵɵelementStart(7, "div", 52);
760
- i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Conditional_8_Template, 4, 4, "span", 53);
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", 56);
763
- i0.ɵɵelement(10, "i", 58);
1016
+ i0.ɵɵelementStart(9, "div", 91);
1017
+ i0.ɵɵelement(10, "i", 93);
764
1018
  i0.ɵɵelementEnd()();
765
1019
  } if (rf & 2) {
766
- const note_r29 = ctx.$implicit;
1020
+ const note_r30 = ctx.$implicit;
767
1021
  i0.ɵɵadvance(5);
768
- i0.ɵɵtextInterpolate(note_r29.Type || "Note");
1022
+ i0.ɵɵtextInterpolate(note_r30.Type || "Note");
769
1023
  i0.ɵɵadvance();
770
- i0.ɵɵconditional(note_r29.Note ? 6 : -1);
1024
+ i0.ɵɵconditional(note_r30.Note ? 6 : -1);
771
1025
  i0.ɵɵadvance(2);
772
- i0.ɵɵconditional(note_r29.__mj_CreatedAt ? 8 : -1);
1026
+ i0.ɵɵconditional(note_r30.__mj_CreatedAt ? 8 : -1);
773
1027
  } }
774
- function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
775
- const _r30 = i0.ɵɵgetCurrentView();
776
- i0.ɵɵelementStart(0, "div", 61);
777
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Notes", "")); });
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
787
- i0.ɵɵelementStart(0, "div", 40);
788
- i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_For_2_Template, 11, 3, "div", 85, _forTrack0);
789
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div", 46);
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 AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Template(rf, ctx) { if (rf & 1) {
799
- i0.ɵɵelementStart(0, "div", 35)(1, "div", 36)(2, "div", 62);
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", 37);
803
- i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_5_Template, 3, 0, "button", 38);
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, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_6_Template, 7, 1, "div", 39)(7, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Conditional_7_Template, 4, 1, "div", 40);
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 AIAgentFormComponentExtended_form_2_Conditional_26_Template(rf, ctx) { if (rf & 1) {
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, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_1_Template, 2, 1, "ng-template", 26)(2, AIAgentFormComponentExtended_form_2_Conditional_26_ng_template_2_Template, 8, 2, "ng-template", 27);
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 AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_1_Template(rf, ctx) { if (rf & 1) {
822
- i0.ɵɵelement(0, "i", 87);
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(" Execution History", ctx_r1.executionHistoryCount > 0 ? " (" + ctx_r1.executionHistoryCount + ")" : "", " ");
1081
+ i0.ɵɵtextInterpolate1(" Learning Cycles", ctx_r1.learningCycleCount > 0 ? " (" + ctx_r1.learningCycleCount + ")" : "", " ");
828
1082
  } }
829
- function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
830
- i0.ɵɵelementStart(0, "div", 39);
831
- i0.ɵɵelement(1, "i", 87);
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 Execution History");
1087
+ i0.ɵɵtext(3, "No Learning Cycles");
834
1088
  i0.ɵɵelementEnd();
835
1089
  i0.ɵɵelementStart(4, "p");
836
- i0.ɵɵtext(5, "This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.");
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 AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
840
- i0.ɵɵelementStart(0, "span", 98);
841
- i0.ɵɵelement(1, "i", 104);
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 execution_r32 = i0.ɵɵnextContext().$implicit;
846
- const ctx_r1 = i0.ɵɵnextContext(5);
1100
+ const cycle_r33 = i0.ɵɵnextContext().$implicit;
847
1101
  i0.ɵɵadvance(2);
848
- i0.ɵɵtextInterpolate1(" ", ctx_r1.formatExecutionTimeFromDates(execution_r32.StartedAt, execution_r32.CompletedAt), " ");
1102
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r33.StartedAt, "short"), " ");
849
1103
  } }
850
- function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_20_Template(rf, ctx) { if (rf & 1) {
851
- i0.ɵɵelementStart(0, "div", 102);
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 execution_r32 = i0.ɵɵnextContext().$implicit;
856
- const ctx_r1 = i0.ɵɵnextContext(5);
1109
+ const cycle_r33 = i0.ɵɵnextContext().$implicit;
857
1110
  i0.ɵɵadvance();
858
- i0.ɵɵtextInterpolate(ctx_r1.getExecutionResultPreview(execution_r32, true));
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 AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_21_Conditional_2_Template(rf, ctx) { if (rf & 1) {
873
- i0.ɵɵelementStart(0, "div", 106)(1, "h5");
874
- i0.ɵɵelement(2, "i", 112);
875
- i0.ɵɵtext(3, " Error");
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", 113);
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(4, "div", 92)(5, "div", 93);
941
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template_div_click_5_listener() { const execution_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.toggleExecutionExpanded(execution_r32.ID)); });
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(13, "div", 97)(14, "span", 29);
950
- i0.ɵɵtext(15);
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 execution_r32 = ctx.$implicit;
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.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r32.ID]);
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.ɵɵtextInterpolate(i0.ɵɵpipeBind2(12, 16, execution_r32.__mj_CreatedAt, "MMM d, h:mm a"));
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(execution_r32.CompletedAt ? 16 : -1);
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 AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
987
- const _r33 = i0.ɵɵgetCurrentView();
988
- i0.ɵɵelementStart(0, "div", 61);
989
- i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Runs", "")); });
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.executionHistoryCount, " executions...");
1148
+ i0.ɵɵtextInterpolate1("View all ", ctx_r1.learningCycleCount, " cycles...");
997
1149
  } }
998
- function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
999
- i0.ɵɵelementStart(0, "div", 88);
1000
- i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_For_2_Template, 22, 19, "div", 89, _forTrack0);
1001
- i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 46);
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.recentExecutions);
1158
+ i0.ɵɵrepeater(ctx_r1.learningCycles);
1007
1159
  i0.ɵɵadvance(2);
1008
- i0.ɵɵconditional(ctx_r1.executionHistoryCount > ctx_r1.recentExecutions.length ? 3 : -1);
1160
+ i0.ɵɵconditional(ctx_r1.learningCycleCount > ctx_r1.learningCycles.length ? 3 : -1);
1009
1161
  } }
1010
- function AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1011
- i0.ɵɵelementStart(0, "div", 35)(1, "div", 36)(2, "div", 62);
1012
- i0.ɵɵtext(3, " Review execution history, requests, and performance metrics for this agent. ");
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, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_4_Template, 6, 0, "div", 39)(5, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Conditional_5_Template, 4, 1, "div", 88);
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.executionHistoryCount === 0 ? 4 : 5);
1171
+ i0.ɵɵconditional(ctx_r1.learningCycleCount === 0 ? 4 : 5);
1020
1172
  } }
1021
- function AIAgentFormComponentExtended_form_2_Conditional_27_Template(rf, ctx) { if (rf & 1) {
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, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_1_Template, 2, 1, "ng-template", 26)(2, AIAgentFormComponentExtended_form_2_Conditional_27_ng_template_2_Template, 6, 1, "ng-template", 27);
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)(24, AIAgentFormComponentExtended_form_2_Conditional_24_Template, 3, 1, "kendo-panelbar-item", 24)(25, AIAgentFormComponentExtended_form_2_Conditional_25_Template, 3, 1, "kendo-panelbar-item", 24)(26, AIAgentFormComponentExtended_form_2_Conditional_26_Template, 3, 1, "kendo-panelbar-item", 24)(27, AIAgentFormComponentExtended_form_2_Conditional_27_Template, 3, 1, "kendo-panelbar-item", 24);
1057
- i0.ɵɵelementStart(28, "kendo-panelbar-item", 25);
1058
- i0.ɵɵtemplate(29, AIAgentFormComponentExtended_form_2_ng_template_29_Template, 2, 0, "ng-template", 26)(30, AIAgentFormComponentExtended_form_2_ng_template_30_Template, 3, 0, "ng-template", 27);
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.ɵɵconditional(ctx_r1.record.ID ? 24 : -1);
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], ngContentSelectors: _c0, 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"], ["title", "Details", 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-bolt"], [1, "panel-content"], [1, "section-header"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", "size", "small"], [1, "empty-state"], [1, "entity-list"], ["kendoButton", "", "themeColor", "primary", "size", "small", 3, "click"], [1, "fa-solid", "fa-plus"], ["kendoButton", "", "themeColor", "primary"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "entity-item", "action-item"], [1, "view-more-item"], [1, "entity-item", "action-item", 3, "click"], [1, "item-icon"], [1, "item-content"], [1, "item-title"], [1, "item-preview"], [1, "item-meta"], [1, "meta-tag"], [1, "status-tag"], [1, "fa-solid"], [1, "item-actions"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove action"], [1, "fa-solid", "fa-external-link"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove action", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "view-more-item", 3, "click"], [1, "section-description"], [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-comments"], [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"], ["name", "modelSelectionMode", "textField", "text", "valueField", "value", 1, "model-selection-dropdown", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], [1, "entity-item", "prompt-item"], [1, "entity-item", "prompt-item", 3, "click"], [1, "fa-solid", "fa-comment-dots"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove prompt"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove prompt", 3, "click"], [1, "fa-solid", "fa-brain"], [1, "entity-item", "learning-item"], [1, "entity-item", "learning-item", 3, "click"], [1, "fa-solid", "fa-calendar"], [1, "fa-solid", "fa-sticky-note"], [1, "entity-item", "note-item"], [1, "entity-item", "note-item", 3, "click"], [1, "fa-solid", "fa-history"], [1, "timeline-list"], [1, "timeline-item", 3, "expanded"], [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, "fa-solid", "fa-info-circle"], [1, "form-fields-grid"]], template: function AIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
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, 31, 14, "form", 3);
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() {