@memberjunction/ng-core-entity-forms 2.104.0 → 2.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.d.ts +60 -0
- package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js +790 -0
- package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +5 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +457 -433
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +218 -190
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +45 -44
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +3 -0
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +41 -21
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +53 -4
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js +59 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js +59 -0
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.js +176 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +22 -4
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +14 -5
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js +16 -7
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +22 -4
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Action/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Action/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Action/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js +34 -4
- package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.js +51 -4
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js +14 -4
- package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.js +22 -4
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js +59 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Authorization/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Authorization/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Authorization/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Collection/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Collection/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Collection/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js +6 -6
- package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Project/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Project/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Project/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Role/role.form.component.js +13 -3
- package/dist/lib/generated/Entities/Role/role.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Skill/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Skill/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Skill/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Tag/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Tag/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Tag/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/Task/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Task/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/Task/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.js +32 -12
- package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +342 -331
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +247 -166
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/package.json +15 -15
|
@@ -15,6 +15,7 @@ import { takeUntil } from 'rxjs/operators';
|
|
|
15
15
|
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
16
16
|
import { ActionEngineBase } from '@memberjunction/actions-base';
|
|
17
17
|
import { PromptSelectorDialogComponent } from './prompt-selector-dialog.component';
|
|
18
|
+
import { AgentPermissionsDialogComponent } from './agent-permissions-dialog.component';
|
|
18
19
|
import * as i0 from "@angular/core";
|
|
19
20
|
import * as i1 from "@memberjunction/ng-shared";
|
|
20
21
|
import * as i2 from "@angular/router";
|
|
@@ -46,7 +47,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_8_Template(rf, ctx) { i
|
|
|
46
47
|
} }
|
|
47
48
|
function AIAgentFormComponentExtended_form_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
48
49
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
49
|
-
i0.ɵɵelementStart(0, "kendo-textbox",
|
|
50
|
+
i0.ɵɵelementStart(0, "kendo-textbox", 30);
|
|
50
51
|
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_3_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); });
|
|
51
52
|
i0.ɵɵelementEnd();
|
|
52
53
|
} if (rf & 2) {
|
|
@@ -63,8 +64,8 @@ function AIAgentFormComponentExtended_form_3_Conditional_11_Template(rf, ctx) {
|
|
|
63
64
|
i0.ɵɵtextInterpolate(ctx_r1.record.Name || "Untitled AI Agent");
|
|
64
65
|
} }
|
|
65
66
|
function AIAgentFormComponentExtended_form_3_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
-
i0.ɵɵelementStart(0, "span",
|
|
67
|
-
i0.ɵɵelement(1, "i",
|
|
67
|
+
i0.ɵɵelementStart(0, "span", 31);
|
|
68
|
+
i0.ɵɵelement(1, "i", 32);
|
|
68
69
|
i0.ɵɵtext(2);
|
|
69
70
|
i0.ɵɵelementEnd();
|
|
70
71
|
} if (rf & 2) {
|
|
@@ -84,7 +85,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_14_Template(rf, ctx) {
|
|
|
84
85
|
} }
|
|
85
86
|
function AIAgentFormComponentExtended_form_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
86
87
|
i0.ɵɵelementStart(0, "span", 20);
|
|
87
|
-
i0.ɵɵelement(1, "i",
|
|
88
|
+
i0.ɵɵelement(1, "i", 33);
|
|
88
89
|
i0.ɵɵtext(2);
|
|
89
90
|
i0.ɵɵelementEnd();
|
|
90
91
|
} if (rf & 2) {
|
|
@@ -94,17 +95,22 @@ function AIAgentFormComponentExtended_form_3_Conditional_15_Template(rf, ctx) {
|
|
|
94
95
|
} }
|
|
95
96
|
function AIAgentFormComponentExtended_form_3_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
96
97
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
97
|
-
i0.ɵɵelementStart(0, "button",
|
|
98
|
+
i0.ɵɵelementStart(0, "button", 34);
|
|
98
99
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestHarness()); });
|
|
99
|
-
i0.ɵɵelement(1, "i",
|
|
100
|
+
i0.ɵɵelement(1, "i", 35);
|
|
100
101
|
i0.ɵɵtext(2, " Run ");
|
|
101
102
|
i0.ɵɵelementEnd();
|
|
103
|
+
i0.ɵɵelementStart(3, "button", 36);
|
|
104
|
+
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openPermissionsDialog()); });
|
|
105
|
+
i0.ɵɵelement(4, "i", 37);
|
|
106
|
+
i0.ɵɵtext(5, " Permissions ");
|
|
107
|
+
i0.ɵɵelementEnd();
|
|
102
108
|
} if (rf & 2) {
|
|
103
109
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
104
110
|
i0.ɵɵproperty("disabled", ctx_r1.record.Status !== "Active");
|
|
105
111
|
} }
|
|
106
112
|
function AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
-
i0.ɵɵelement(0, "i",
|
|
113
|
+
i0.ɵɵelement(0, "i", 39);
|
|
108
114
|
i0.ɵɵtext(1);
|
|
109
115
|
} if (rf & 2) {
|
|
110
116
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -112,7 +118,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_1_Templa
|
|
|
112
118
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.agentType.Name, " Configuration ");
|
|
113
119
|
} }
|
|
114
120
|
function AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
-
i0.ɵɵelementStart(0, "div",
|
|
121
|
+
i0.ɵɵelementStart(0, "div", 40);
|
|
116
122
|
i0.ɵɵelementContainer(1, null, 1);
|
|
117
123
|
i0.ɵɵelementEnd();
|
|
118
124
|
} if (rf & 2) {
|
|
@@ -120,17 +126,17 @@ function AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_2_Templa
|
|
|
120
126
|
} }
|
|
121
127
|
function AIAgentFormComponentExtended_form_3_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
122
128
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
123
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
129
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 38);
|
|
124
130
|
i0.ɵɵlistener("stateChange", function AIAgentFormComponentExtended_form_3_Conditional_22_Template_kendo_panelbar_item_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onCustomSectionStateChange($event)); });
|
|
125
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_1_Template, 2, 1, "ng-template",
|
|
131
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_1_Template, 2, 1, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_22_ng_template_2_Template, 3, 2, "ng-template", 29);
|
|
126
132
|
i0.ɵɵelementEnd();
|
|
127
133
|
} if (rf & 2) {
|
|
128
134
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
129
135
|
i0.ɵɵproperty("expanded", ctx_r1.agentType.UIFormSectionExpandedByDefault);
|
|
130
136
|
} }
|
|
131
137
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
132
|
-
i0.ɵɵelementStart(0, "span",
|
|
133
|
-
i0.ɵɵelement(1, "i",
|
|
138
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
139
|
+
i0.ɵɵelement(1, "i", 43);
|
|
134
140
|
i0.ɵɵelementEnd();
|
|
135
141
|
} }
|
|
136
142
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -152,17 +158,17 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Condit
|
|
|
152
158
|
i0.ɵɵconditional(ctx_r1.executionHistoryCount < ctx_r1.totalExecutionHistoryCount ? 2 : -1);
|
|
153
159
|
} }
|
|
154
160
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
155
|
-
i0.ɵɵelement(0, "i",
|
|
161
|
+
i0.ɵɵelement(0, "i", 41);
|
|
156
162
|
i0.ɵɵtext(1, " Execution History ");
|
|
157
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Conditional_2_Template, 2, 0, "span",
|
|
163
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Conditional_2_Template, 2, 0, "span", 42)(3, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Conditional_3_Template, 3, 2, "span");
|
|
158
164
|
} if (rf & 2) {
|
|
159
165
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
160
166
|
i0.ɵɵadvance(2);
|
|
161
167
|
i0.ɵɵconditional(ctx_r1.loadingStates.executionHistory ? 2 : ctx_r1.executionHistoryCount > 0 ? 3 : -1);
|
|
162
168
|
} }
|
|
163
169
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
-
i0.ɵɵelementStart(0, "div",
|
|
165
|
-
i0.ɵɵelement(1, "i",
|
|
170
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
171
|
+
i0.ɵɵelement(1, "i", 41);
|
|
166
172
|
i0.ɵɵelementStart(2, "h4");
|
|
167
173
|
i0.ɵɵtext(3, "No Execution History");
|
|
168
174
|
i0.ɵɵelementEnd();
|
|
@@ -171,12 +177,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
171
177
|
i0.ɵɵelementEnd()();
|
|
172
178
|
} }
|
|
173
179
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
174
|
-
i0.ɵɵelementStart(0, "div",
|
|
175
|
-
i0.ɵɵelement(1, "i",
|
|
176
|
-
i0.ɵɵelementStart(2, "span",
|
|
180
|
+
i0.ɵɵelementStart(0, "div", 59);
|
|
181
|
+
i0.ɵɵelement(1, "i", 64);
|
|
182
|
+
i0.ɵɵelementStart(2, "span", 65);
|
|
177
183
|
i0.ɵɵtext(3, "Config:");
|
|
178
184
|
i0.ɵɵelementEnd();
|
|
179
|
-
i0.ɵɵelementStart(4, "span",
|
|
185
|
+
i0.ɵɵelementStart(4, "span", 66);
|
|
180
186
|
i0.ɵɵtext(5);
|
|
181
187
|
i0.ɵɵelementEnd()();
|
|
182
188
|
} if (rf & 2) {
|
|
@@ -185,12 +191,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
185
191
|
i0.ɵɵtextInterpolate(execution_r7.Configuration);
|
|
186
192
|
} }
|
|
187
193
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
188
|
-
i0.ɵɵelementStart(0, "div",
|
|
189
|
-
i0.ɵɵelement(1, "i",
|
|
190
|
-
i0.ɵɵelementStart(2, "span",
|
|
194
|
+
i0.ɵɵelementStart(0, "div", 59);
|
|
195
|
+
i0.ɵɵelement(1, "i", 67);
|
|
196
|
+
i0.ɵɵelementStart(2, "span", 65);
|
|
191
197
|
i0.ɵɵtext(3, "Duration:");
|
|
192
198
|
i0.ɵɵelementEnd();
|
|
193
|
-
i0.ɵɵelementStart(4, "span",
|
|
199
|
+
i0.ɵɵelementStart(4, "span", 66);
|
|
194
200
|
i0.ɵɵtext(5);
|
|
195
201
|
i0.ɵɵelementEnd()();
|
|
196
202
|
} if (rf & 2) {
|
|
@@ -200,19 +206,19 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
200
206
|
i0.ɵɵtextInterpolate(ctx_r1.formatExecutionTimeFromDates(execution_r7.StartedAt, execution_r7.CompletedAt));
|
|
201
207
|
} }
|
|
202
208
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
-
i0.ɵɵelementStart(0, "div",
|
|
204
|
-
i0.ɵɵelement(1, "i",
|
|
205
|
-
i0.ɵɵelementStart(2, "span",
|
|
209
|
+
i0.ɵɵelementStart(0, "div", 59);
|
|
210
|
+
i0.ɵɵelement(1, "i", 68);
|
|
211
|
+
i0.ɵɵelementStart(2, "span", 65);
|
|
206
212
|
i0.ɵɵtext(3, "Running:");
|
|
207
213
|
i0.ɵɵelementEnd()();
|
|
208
214
|
} }
|
|
209
215
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
210
|
-
i0.ɵɵelementStart(0, "div",
|
|
211
|
-
i0.ɵɵelement(1, "i",
|
|
212
|
-
i0.ɵɵelementStart(2, "span",
|
|
216
|
+
i0.ɵɵelementStart(0, "div", 59);
|
|
217
|
+
i0.ɵɵelement(1, "i", 69);
|
|
218
|
+
i0.ɵɵelementStart(2, "span", 65);
|
|
213
219
|
i0.ɵɵtext(3, "Tokens:");
|
|
214
220
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵelementStart(4, "span",
|
|
221
|
+
i0.ɵɵelementStart(4, "span", 66);
|
|
216
222
|
i0.ɵɵtext(5);
|
|
217
223
|
i0.ɵɵelementEnd()();
|
|
218
224
|
} if (rf & 2) {
|
|
@@ -222,12 +228,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
222
228
|
i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r7.TotalTokensUsedRollup || execution_r7.TotalTokensUsed));
|
|
223
229
|
} }
|
|
224
230
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
225
|
-
i0.ɵɵelementStart(0, "div",
|
|
226
|
-
i0.ɵɵelement(1, "i",
|
|
227
|
-
i0.ɵɵelementStart(2, "span",
|
|
231
|
+
i0.ɵɵelementStart(0, "div", 59);
|
|
232
|
+
i0.ɵɵelement(1, "i", 70);
|
|
233
|
+
i0.ɵɵelementStart(2, "span", 65);
|
|
228
234
|
i0.ɵɵtext(3, "Cost:");
|
|
229
235
|
i0.ɵɵelementEnd();
|
|
230
|
-
i0.ɵɵelementStart(4, "span",
|
|
236
|
+
i0.ɵɵelementStart(4, "span", 66);
|
|
231
237
|
i0.ɵɵtext(5);
|
|
232
238
|
i0.ɵɵelementEnd()();
|
|
233
239
|
} if (rf & 2) {
|
|
@@ -237,12 +243,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
237
243
|
i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r7.TotalCostRollup || execution_r7.TotalCost), "");
|
|
238
244
|
} }
|
|
239
245
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
240
|
-
i0.ɵɵelementStart(0, "div",
|
|
241
|
-
i0.ɵɵelement(1, "i",
|
|
242
|
-
i0.ɵɵelementStart(2, "div",
|
|
246
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
247
|
+
i0.ɵɵelement(1, "i", 79);
|
|
248
|
+
i0.ɵɵelementStart(2, "div", 74)(3, "span", 75);
|
|
243
249
|
i0.ɵɵtext(4, "Completed");
|
|
244
250
|
i0.ɵɵelementEnd();
|
|
245
|
-
i0.ɵɵelementStart(5, "span",
|
|
251
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
246
252
|
i0.ɵɵtext(6);
|
|
247
253
|
i0.ɵɵpipe(7, "date");
|
|
248
254
|
i0.ɵɵelementEnd()()();
|
|
@@ -252,12 +258,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
252
258
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, execution_r7.CompletedAt, "medium"));
|
|
253
259
|
} }
|
|
254
260
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
255
|
-
i0.ɵɵelementStart(0, "div",
|
|
256
|
-
i0.ɵɵelement(1, "i",
|
|
257
|
-
i0.ɵɵelementStart(2, "div",
|
|
261
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
262
|
+
i0.ɵɵelement(1, "i", 69);
|
|
263
|
+
i0.ɵɵelementStart(2, "div", 74)(3, "span", 75);
|
|
258
264
|
i0.ɵɵtext(4, "Direct Tokens");
|
|
259
265
|
i0.ɵɵelementEnd();
|
|
260
|
-
i0.ɵɵelementStart(5, "span",
|
|
266
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
261
267
|
i0.ɵɵtext(6);
|
|
262
268
|
i0.ɵɵelementEnd()()();
|
|
263
269
|
} if (rf & 2) {
|
|
@@ -267,12 +273,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
267
273
|
i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r7.TotalTokensUsed));
|
|
268
274
|
} }
|
|
269
275
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
270
|
-
i0.ɵɵelementStart(0, "div",
|
|
271
|
-
i0.ɵɵelement(1, "i",
|
|
272
|
-
i0.ɵɵelementStart(2, "div",
|
|
276
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
277
|
+
i0.ɵɵelement(1, "i", 33);
|
|
278
|
+
i0.ɵɵelementStart(2, "div", 74)(3, "span", 75);
|
|
273
279
|
i0.ɵɵtext(4, "Total + Sub-agents");
|
|
274
280
|
i0.ɵɵelementEnd();
|
|
275
|
-
i0.ɵɵelementStart(5, "span",
|
|
281
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
276
282
|
i0.ɵɵtext(6);
|
|
277
283
|
i0.ɵɵelementEnd()()();
|
|
278
284
|
} if (rf & 2) {
|
|
@@ -282,12 +288,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
282
288
|
i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r7.TotalTokensUsedRollup));
|
|
283
289
|
} }
|
|
284
290
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
285
|
-
i0.ɵɵelementStart(0, "div",
|
|
286
|
-
i0.ɵɵelement(1, "i",
|
|
287
|
-
i0.ɵɵelementStart(2, "div",
|
|
291
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
292
|
+
i0.ɵɵelement(1, "i", 70);
|
|
293
|
+
i0.ɵɵelementStart(2, "div", 74)(3, "span", 75);
|
|
288
294
|
i0.ɵɵtext(4, "Direct Cost");
|
|
289
295
|
i0.ɵɵelementEnd();
|
|
290
|
-
i0.ɵɵelementStart(5, "span",
|
|
296
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
291
297
|
i0.ɵɵtext(6);
|
|
292
298
|
i0.ɵɵelementEnd()()();
|
|
293
299
|
} if (rf & 2) {
|
|
@@ -297,12 +303,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
297
303
|
i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r7.TotalCost), "");
|
|
298
304
|
} }
|
|
299
305
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
300
|
-
i0.ɵɵelementStart(0, "div",
|
|
301
|
-
i0.ɵɵelement(1, "i",
|
|
302
|
-
i0.ɵɵelementStart(2, "div",
|
|
306
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
307
|
+
i0.ɵɵelement(1, "i", 80);
|
|
308
|
+
i0.ɵɵelementStart(2, "div", 74)(3, "span", 75);
|
|
303
309
|
i0.ɵɵtext(4, "Total + Sub-agents");
|
|
304
310
|
i0.ɵɵelementEnd();
|
|
305
|
-
i0.ɵɵelementStart(5, "span",
|
|
311
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
306
312
|
i0.ɵɵtext(6);
|
|
307
313
|
i0.ɵɵelementEnd()()();
|
|
308
314
|
} if (rf & 2) {
|
|
@@ -312,12 +318,12 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
312
318
|
i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r7.TotalCostRollup), "");
|
|
313
319
|
} }
|
|
314
320
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
315
|
-
i0.ɵɵelementStart(0, "div",
|
|
316
|
-
i0.ɵɵelement(1, "i",
|
|
317
|
-
i0.ɵɵelementStart(2, "div",
|
|
321
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
322
|
+
i0.ɵɵelement(1, "i", 81);
|
|
323
|
+
i0.ɵɵelementStart(2, "div", 74)(3, "span", 75);
|
|
318
324
|
i0.ɵɵtext(4, "Conversation");
|
|
319
325
|
i0.ɵɵelementEnd();
|
|
320
|
-
i0.ɵɵelementStart(5, "span",
|
|
326
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
321
327
|
i0.ɵɵtext(6);
|
|
322
328
|
i0.ɵɵelementEnd()()();
|
|
323
329
|
} if (rf & 2) {
|
|
@@ -326,11 +332,11 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
326
332
|
i0.ɵɵtextInterpolate1("", execution_r7.ConversationID.substring(0, 8), "...");
|
|
327
333
|
} }
|
|
328
334
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
329
|
-
i0.ɵɵelementStart(0, "div",
|
|
330
|
-
i0.ɵɵelement(2, "i",
|
|
335
|
+
i0.ɵɵelementStart(0, "div", 77)(1, "h5");
|
|
336
|
+
i0.ɵɵelement(2, "i", 82);
|
|
331
337
|
i0.ɵɵtext(3, " Result");
|
|
332
338
|
i0.ɵɵelementEnd();
|
|
333
|
-
i0.ɵɵelement(4, "mj-code-editor",
|
|
339
|
+
i0.ɵɵelement(4, "mj-code-editor", 83);
|
|
334
340
|
i0.ɵɵelementEnd();
|
|
335
341
|
} if (rf & 2) {
|
|
336
342
|
const execution_r7 = i0.ɵɵnextContext(2).$implicit;
|
|
@@ -339,11 +345,11 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
339
345
|
i0.ɵɵproperty("value", ctx_r1.getExecutionResultPreview(execution_r7, false))("readonly", true)("lineWrapping", true);
|
|
340
346
|
} }
|
|
341
347
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
342
|
-
i0.ɵɵelementStart(0, "div",
|
|
343
|
-
i0.ɵɵelement(2, "i",
|
|
348
|
+
i0.ɵɵelementStart(0, "div", 78)(1, "h5");
|
|
349
|
+
i0.ɵɵelement(2, "i", 84);
|
|
344
350
|
i0.ɵɵtext(3, " Error");
|
|
345
351
|
i0.ɵɵelementEnd();
|
|
346
|
-
i0.ɵɵelementStart(4, "div",
|
|
352
|
+
i0.ɵɵelementStart(4, "div", 85);
|
|
347
353
|
i0.ɵɵtext(5);
|
|
348
354
|
i0.ɵɵelementEnd()();
|
|
349
355
|
} if (rf & 2) {
|
|
@@ -352,18 +358,18 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
352
358
|
i0.ɵɵtextInterpolate(execution_r7.ErrorMessage);
|
|
353
359
|
} }
|
|
354
360
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
355
|
-
i0.ɵɵelementStart(0, "div",
|
|
356
|
-
i0.ɵɵelement(4, "i",
|
|
357
|
-
i0.ɵɵelementStart(5, "div",
|
|
361
|
+
i0.ɵɵelementStart(0, "div", 63)(1, "div", 71)(2, "div", 72)(3, "div", 73);
|
|
362
|
+
i0.ɵɵelement(4, "i", 68);
|
|
363
|
+
i0.ɵɵelementStart(5, "div", 74)(6, "span", 75);
|
|
358
364
|
i0.ɵɵtext(7, "Started");
|
|
359
365
|
i0.ɵɵelementEnd();
|
|
360
|
-
i0.ɵɵelementStart(8, "span",
|
|
366
|
+
i0.ɵɵelementStart(8, "span", 76);
|
|
361
367
|
i0.ɵɵtext(9);
|
|
362
368
|
i0.ɵɵpipe(10, "date");
|
|
363
369
|
i0.ɵɵelementEnd()()();
|
|
364
|
-
i0.ɵɵtemplate(11, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_11_Template, 8, 4, "div",
|
|
370
|
+
i0.ɵɵtemplate(11, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_11_Template, 8, 4, "div", 73)(12, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_12_Template, 7, 1, "div", 73)(13, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_13_Template, 7, 1, "div", 73)(14, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_14_Template, 7, 1, "div", 73)(15, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_15_Template, 7, 1, "div", 73)(16, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_16_Template, 7, 1, "div", 73);
|
|
365
371
|
i0.ɵɵelementEnd()();
|
|
366
|
-
i0.ɵɵtemplate(17, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_17_Template, 5, 3, "div",
|
|
372
|
+
i0.ɵɵtemplate(17, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_17_Template, 5, 3, "div", 77)(18, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Conditional_18_Template, 6, 1, "div", 78);
|
|
367
373
|
i0.ɵɵelementEnd();
|
|
368
374
|
} if (rf & 2) {
|
|
369
375
|
const execution_r7 = i0.ɵɵnextContext().$implicit;
|
|
@@ -388,27 +394,27 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
388
394
|
} }
|
|
389
395
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
390
396
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
391
|
-
i0.ɵɵelementStart(0, "div",
|
|
397
|
+
i0.ɵɵelementStart(0, "div", 49)(1, "div", 50);
|
|
392
398
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Template_div_click_1_listener() { const execution_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.toggleExecutionExpanded(execution_r7.ID)); });
|
|
393
|
-
i0.ɵɵelementStart(2, "div",
|
|
399
|
+
i0.ɵɵelementStart(2, "div", 51)(3, "div", 52)(4, "div", 53);
|
|
394
400
|
i0.ɵɵelement(5, "i");
|
|
395
401
|
i0.ɵɵelementEnd();
|
|
396
|
-
i0.ɵɵelementStart(6, "div",
|
|
397
|
-
i0.ɵɵelement(8, "i",
|
|
402
|
+
i0.ɵɵelementStart(6, "div", 54)(7, "div", 55);
|
|
403
|
+
i0.ɵɵelement(8, "i", 56);
|
|
398
404
|
i0.ɵɵtext(9);
|
|
399
405
|
i0.ɵɵelementEnd();
|
|
400
|
-
i0.ɵɵelementStart(10, "div",
|
|
406
|
+
i0.ɵɵelementStart(10, "div", 57);
|
|
401
407
|
i0.ɵɵtext(11);
|
|
402
408
|
i0.ɵɵpipe(12, "date");
|
|
403
409
|
i0.ɵɵelementEnd()()();
|
|
404
|
-
i0.ɵɵelementStart(13, "div",
|
|
405
|
-
i0.ɵɵtemplate(14, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_14_Template, 6, 1, "div",
|
|
410
|
+
i0.ɵɵelementStart(13, "div", 58);
|
|
411
|
+
i0.ɵɵtemplate(14, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_14_Template, 6, 1, "div", 59)(15, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_15_Template, 6, 1, "div", 59)(16, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_16_Template, 4, 0, "div", 59)(17, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_17_Template, 6, 1, "div", 59)(18, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_18_Template, 6, 1, "div", 59);
|
|
406
412
|
i0.ɵɵelementEnd()();
|
|
407
|
-
i0.ɵɵelementStart(19, "div",
|
|
413
|
+
i0.ɵɵelementStart(19, "div", 60)(20, "button", 61);
|
|
408
414
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Template_button_click_20_listener($event) { const execution_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.openExecutionRecord(execution_r7.ID); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
409
|
-
i0.ɵɵelement(21, "i",
|
|
415
|
+
i0.ɵɵelement(21, "i", 62);
|
|
410
416
|
i0.ɵɵelementEnd()()();
|
|
411
|
-
i0.ɵɵtemplate(22, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Template, 19, 12, "div",
|
|
417
|
+
i0.ɵɵtemplate(22, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Conditional_22_Template, 19, 12, "div", 63);
|
|
412
418
|
i0.ɵɵelementEnd();
|
|
413
419
|
} if (rf & 2) {
|
|
414
420
|
const execution_r7 = ctx.$implicit;
|
|
@@ -437,7 +443,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
437
443
|
} }
|
|
438
444
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
439
445
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
440
|
-
i0.ɵɵelementStart(0, "div",
|
|
446
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
441
447
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Runs", "")); });
|
|
442
448
|
i0.ɵɵelementStart(1, "span");
|
|
443
449
|
i0.ɵɵtext(2);
|
|
@@ -448,9 +454,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
448
454
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.executionHistoryCount, " executions...");
|
|
449
455
|
} }
|
|
450
456
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
451
|
-
i0.ɵɵelementStart(0, "div",
|
|
452
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Template, 23, 18, "div",
|
|
453
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_Conditional_3_Template, 3, 1, "div",
|
|
457
|
+
i0.ɵɵelementStart(0, "div", 46);
|
|
458
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_For_2_Template, 23, 18, "div", 47, _forTrack0);
|
|
459
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_Conditional_3_Template, 3, 1, "div", 48);
|
|
454
460
|
i0.ɵɵelementEnd();
|
|
455
461
|
} if (rf & 2) {
|
|
456
462
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -460,8 +466,8 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Condit
|
|
|
460
466
|
i0.ɵɵconditional(ctx_r1.executionHistoryCount > ctx_r1.recentExecutions.length ? 3 : -1);
|
|
461
467
|
} }
|
|
462
468
|
function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
463
|
-
i0.ɵɵelementStart(0, "div",
|
|
464
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_1_Template, 6, 0, "div",
|
|
469
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
470
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_1_Template, 6, 0, "div", 45)(2, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Conditional_2_Template, 4, 1, "div", 46);
|
|
465
471
|
i0.ɵɵelementEnd();
|
|
466
472
|
} if (rf & 2) {
|
|
467
473
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -469,16 +475,16 @@ function AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Templa
|
|
|
469
475
|
i0.ɵɵconditional(ctx_r1.executionHistoryCount === 0 ? 1 : 2);
|
|
470
476
|
} }
|
|
471
477
|
function AIAgentFormComponentExtended_form_3_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
472
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
473
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Template, 4, 1, "ng-template",
|
|
478
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 27);
|
|
479
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_1_Template, 4, 1, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_23_ng_template_2_Template, 3, 1, "ng-template", 29);
|
|
474
480
|
i0.ɵɵelementEnd();
|
|
475
481
|
} if (rf & 2) {
|
|
476
482
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
477
483
|
i0.ɵɵproperty("expanded", false)("disabled", ctx_r1.loadingStates.executionHistory);
|
|
478
484
|
} }
|
|
479
485
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
480
|
-
i0.ɵɵelementStart(0, "span",
|
|
481
|
-
i0.ɵɵelement(1, "i",
|
|
486
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
487
|
+
i0.ɵɵelement(1, "i", 43);
|
|
482
488
|
i0.ɵɵelementEnd();
|
|
483
489
|
} }
|
|
484
490
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -491,47 +497,47 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Condit
|
|
|
491
497
|
i0.ɵɵtextInterpolate1(" (", ctx_r1.actionCount, ")");
|
|
492
498
|
} }
|
|
493
499
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
494
|
-
i0.ɵɵelement(0, "i",
|
|
500
|
+
i0.ɵɵelement(0, "i", 87);
|
|
495
501
|
i0.ɵɵtext(1, " Actions ");
|
|
496
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Conditional_2_Template, 2, 0, "span",
|
|
502
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Conditional_2_Template, 2, 0, "span", 42)(3, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
497
503
|
} if (rf & 2) {
|
|
498
504
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
499
505
|
i0.ɵɵadvance(2);
|
|
500
506
|
i0.ɵɵconditional(ctx_r1.loadingStates.actions ? 2 : ctx_r1.actionCount > 0 ? 3 : -1);
|
|
501
507
|
} }
|
|
502
508
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
503
|
-
i0.ɵɵelementStart(0, "div",
|
|
504
|
-
i0.ɵɵelement(1, "i",
|
|
509
|
+
i0.ɵɵelementStart(0, "div", 89);
|
|
510
|
+
i0.ɵɵelement(1, "i", 90);
|
|
505
511
|
i0.ɵɵelementStart(2, "p");
|
|
506
512
|
i0.ɵɵtext(3, "Loading actions...");
|
|
507
513
|
i0.ɵɵelementEnd()();
|
|
508
514
|
} }
|
|
509
515
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
510
516
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
511
|
-
i0.ɵɵelementStart(0, "button",
|
|
517
|
+
i0.ɵɵelementStart(0, "button", 95);
|
|
512
518
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
|
|
513
|
-
i0.ɵɵelement(1, "i",
|
|
519
|
+
i0.ɵɵelement(1, "i", 96);
|
|
514
520
|
i0.ɵɵtext(2, " Add Action ");
|
|
515
521
|
i0.ɵɵelementEnd();
|
|
516
522
|
} }
|
|
517
523
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
518
524
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
519
|
-
i0.ɵɵelementStart(0, "button",
|
|
525
|
+
i0.ɵɵelementStart(0, "button", 98);
|
|
520
526
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.configureActions()); });
|
|
521
|
-
i0.ɵɵelement(1, "i",
|
|
527
|
+
i0.ɵɵelement(1, "i", 96);
|
|
522
528
|
i0.ɵɵtext(2, " Configure First Action ");
|
|
523
529
|
i0.ɵɵelementEnd();
|
|
524
530
|
} }
|
|
525
531
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
526
|
-
i0.ɵɵelementStart(0, "div",
|
|
527
|
-
i0.ɵɵelement(1, "i",
|
|
532
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
533
|
+
i0.ɵɵelement(1, "i", 87);
|
|
528
534
|
i0.ɵɵelementStart(2, "h4");
|
|
529
535
|
i0.ɵɵtext(3, "No Actions Configured");
|
|
530
536
|
i0.ɵɵelementEnd();
|
|
531
537
|
i0.ɵɵelementStart(4, "p");
|
|
532
538
|
i0.ɵɵtext(5, "Add actions to enable this agent to perform specific tasks and operations.");
|
|
533
539
|
i0.ɵɵelementEnd();
|
|
534
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Conditional_6_Template, 3, 0, "button",
|
|
540
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Conditional_6_Template, 3, 0, "button", 97);
|
|
535
541
|
i0.ɵɵelementEnd();
|
|
536
542
|
} if (rf & 2) {
|
|
537
543
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
@@ -539,7 +545,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
539
545
|
i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanCreateActions ? 6 : -1);
|
|
540
546
|
} }
|
|
541
547
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
542
|
-
i0.ɵɵelementStart(0, "div",
|
|
548
|
+
i0.ɵɵelementStart(0, "div", 104);
|
|
543
549
|
i0.ɵɵtext(1);
|
|
544
550
|
i0.ɵɵelementEnd();
|
|
545
551
|
} if (rf & 2) {
|
|
@@ -548,7 +554,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
548
554
|
i0.ɵɵtextInterpolate(action_r12.Description);
|
|
549
555
|
} }
|
|
550
556
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
551
|
-
i0.ɵɵelementStart(0, "span",
|
|
557
|
+
i0.ɵɵelementStart(0, "span", 106);
|
|
552
558
|
i0.ɵɵtext(1);
|
|
553
559
|
i0.ɵɵelementEnd();
|
|
554
560
|
} if (rf & 2) {
|
|
@@ -558,31 +564,31 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
558
564
|
} }
|
|
559
565
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
560
566
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
561
|
-
i0.ɵɵelementStart(0, "button",
|
|
567
|
+
i0.ɵɵelementStart(0, "button", 112);
|
|
562
568
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const action_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.removeAction(action_r12, $event)); });
|
|
563
|
-
i0.ɵɵelement(1, "i",
|
|
569
|
+
i0.ɵɵelement(1, "i", 113);
|
|
564
570
|
i0.ɵɵelementEnd();
|
|
565
571
|
} }
|
|
566
572
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
567
573
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
568
|
-
i0.ɵɵelementStart(0, "div",
|
|
574
|
+
i0.ɵɵelementStart(0, "div", 100);
|
|
569
575
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Template_div_click_0_listener() { const action_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("Actions", action_r12.ID)); });
|
|
570
|
-
i0.ɵɵelementStart(1, "div",
|
|
576
|
+
i0.ɵɵelementStart(1, "div", 101);
|
|
571
577
|
i0.ɵɵelement(2, "i");
|
|
572
578
|
i0.ɵɵelementEnd();
|
|
573
|
-
i0.ɵɵelementStart(3, "div",
|
|
579
|
+
i0.ɵɵelementStart(3, "div", 102)(4, "div", 103);
|
|
574
580
|
i0.ɵɵtext(5);
|
|
575
581
|
i0.ɵɵelementEnd();
|
|
576
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_6_Template, 2, 1, "div",
|
|
577
|
-
i0.ɵɵelementStart(7, "div",
|
|
578
|
-
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_8_Template, 2, 1, "span",
|
|
579
|
-
i0.ɵɵelementStart(9, "span",
|
|
580
|
-
i0.ɵɵelement(10, "i",
|
|
582
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_6_Template, 2, 1, "div", 104);
|
|
583
|
+
i0.ɵɵelementStart(7, "div", 105);
|
|
584
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_8_Template, 2, 1, "span", 106);
|
|
585
|
+
i0.ɵɵelementStart(9, "span", 107);
|
|
586
|
+
i0.ɵɵelement(10, "i", 108);
|
|
581
587
|
i0.ɵɵtext(11);
|
|
582
588
|
i0.ɵɵelementEnd()()();
|
|
583
|
-
i0.ɵɵelementStart(12, "div",
|
|
584
|
-
i0.ɵɵtemplate(13, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_13_Template, 2, 0, "button",
|
|
585
|
-
i0.ɵɵelement(14, "i",
|
|
589
|
+
i0.ɵɵelementStart(12, "div", 109);
|
|
590
|
+
i0.ɵɵtemplate(13, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Conditional_13_Template, 2, 0, "button", 110);
|
|
591
|
+
i0.ɵɵelement(14, "i", 111);
|
|
586
592
|
i0.ɵɵelementEnd()();
|
|
587
593
|
} if (rf & 2) {
|
|
588
594
|
const action_r12 = ctx.$implicit;
|
|
@@ -606,7 +612,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
606
612
|
} }
|
|
607
613
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
608
614
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
609
|
-
i0.ɵɵelementStart(0, "div",
|
|
615
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
610
616
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Actions", "")); });
|
|
611
617
|
i0.ɵɵelementStart(1, "span");
|
|
612
618
|
i0.ɵɵtext(2);
|
|
@@ -617,9 +623,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
617
623
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.actionCount, " actions...");
|
|
618
624
|
} }
|
|
619
625
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
620
|
-
i0.ɵɵelementStart(0, "div",
|
|
621
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Template, 15, 15, "div",
|
|
622
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_Conditional_3_Template, 3, 1, "div",
|
|
626
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
627
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_For_2_Template, 15, 15, "div", 99, _forTrack0);
|
|
628
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_Conditional_3_Template, 3, 1, "div", 48);
|
|
623
629
|
i0.ɵɵelementEnd();
|
|
624
630
|
} if (rf & 2) {
|
|
625
631
|
const ctx_r1 = i0.ɵɵnextContext(5);
|
|
@@ -629,10 +635,10 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
629
635
|
i0.ɵɵconditional(ctx_r1.actionCount > ctx_r1.agentActions.length ? 3 : -1);
|
|
630
636
|
} }
|
|
631
637
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
632
|
-
i0.ɵɵelementStart(0, "div",
|
|
633
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_2_Template, 3, 0, "button",
|
|
638
|
+
i0.ɵɵelementStart(0, "div", 91)(1, "div", 92);
|
|
639
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_2_Template, 3, 0, "button", 93);
|
|
634
640
|
i0.ɵɵelementEnd()();
|
|
635
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Template, 7, 1, "div",
|
|
641
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_3_Template, 7, 1, "div", 45)(4, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Conditional_4_Template, 4, 1, "div", 94);
|
|
636
642
|
} if (rf & 2) {
|
|
637
643
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
638
644
|
i0.ɵɵadvance(2);
|
|
@@ -641,8 +647,8 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Condit
|
|
|
641
647
|
i0.ɵɵconditional(ctx_r1.actionCount === 0 ? 3 : 4);
|
|
642
648
|
} }
|
|
643
649
|
function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
644
|
-
i0.ɵɵelementStart(0, "div",
|
|
645
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_1_Template, 4, 0, "div",
|
|
650
|
+
i0.ɵɵelementStart(0, "div", 88);
|
|
651
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_1_Template, 4, 0, "div", 89)(2, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Conditional_2_Template, 5, 2);
|
|
646
652
|
i0.ɵɵelementEnd();
|
|
647
653
|
} if (rf & 2) {
|
|
648
654
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -650,16 +656,16 @@ function AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Templa
|
|
|
650
656
|
i0.ɵɵconditional(ctx_r1.loadingStates.actions ? 1 : 2);
|
|
651
657
|
} }
|
|
652
658
|
function AIAgentFormComponentExtended_form_3_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
653
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
654
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Template, 4, 1, "ng-template",
|
|
659
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 27);
|
|
660
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_1_Template, 4, 1, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_24_ng_template_2_Template, 3, 1, "ng-template", 29);
|
|
655
661
|
i0.ɵɵelementEnd();
|
|
656
662
|
} if (rf & 2) {
|
|
657
663
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
658
664
|
i0.ɵɵproperty("expanded", false)("disabled", ctx_r1.loadingStates.actions);
|
|
659
665
|
} }
|
|
660
666
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
661
|
-
i0.ɵɵelementStart(0, "span",
|
|
662
|
-
i0.ɵɵelement(1, "i",
|
|
667
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
668
|
+
i0.ɵɵelement(1, "i", 43);
|
|
663
669
|
i0.ɵɵelementEnd();
|
|
664
670
|
} }
|
|
665
671
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -672,9 +678,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Condit
|
|
|
672
678
|
i0.ɵɵtextInterpolate1(" (", ctx_r1.subAgentCount, ")");
|
|
673
679
|
} }
|
|
674
680
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
675
|
-
i0.ɵɵelement(0, "i",
|
|
681
|
+
i0.ɵɵelement(0, "i", 33);
|
|
676
682
|
i0.ɵɵtext(1, " Sub-Agents ");
|
|
677
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Conditional_2_Template, 2, 0, "span",
|
|
683
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Conditional_2_Template, 2, 0, "span", 42)(3, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
678
684
|
} if (rf & 2) {
|
|
679
685
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
680
686
|
i0.ɵɵadvance(2);
|
|
@@ -682,33 +688,33 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Templa
|
|
|
682
688
|
} }
|
|
683
689
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
684
690
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
685
|
-
i0.ɵɵelementStart(0, "button",
|
|
691
|
+
i0.ɵɵelementStart(0, "button", 95);
|
|
686
692
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addSubAgents()); });
|
|
687
|
-
i0.ɵɵelement(1, "i",
|
|
693
|
+
i0.ɵɵelement(1, "i", 96);
|
|
688
694
|
i0.ɵɵtext(2, " Add Subagent ");
|
|
689
695
|
i0.ɵɵelementEnd();
|
|
690
|
-
i0.ɵɵelementStart(3, "button",
|
|
696
|
+
i0.ɵɵelementStart(3, "button", 115);
|
|
691
697
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.createSubAgent()); });
|
|
692
|
-
i0.ɵɵelement(4, "i",
|
|
698
|
+
i0.ɵɵelement(4, "i", 96);
|
|
693
699
|
i0.ɵɵtext(5, " Create Sub-Agent ");
|
|
694
700
|
i0.ɵɵelementEnd();
|
|
695
701
|
} }
|
|
696
702
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
697
703
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
698
|
-
i0.ɵɵelementStart(0, "button",
|
|
704
|
+
i0.ɵɵelementStart(0, "button", 98);
|
|
699
705
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_6_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addSubAgents()); });
|
|
700
|
-
i0.ɵɵelement(1, "i",
|
|
706
|
+
i0.ɵɵelement(1, "i", 96);
|
|
701
707
|
i0.ɵɵtext(2, " Add Subagent ");
|
|
702
708
|
i0.ɵɵelementEnd();
|
|
703
|
-
i0.ɵɵelementStart(3, "button",
|
|
709
|
+
i0.ɵɵelementStart(3, "button", 116);
|
|
704
710
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_6_Conditional_6_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.createSubAgent()); });
|
|
705
|
-
i0.ɵɵelement(4, "i",
|
|
711
|
+
i0.ɵɵelement(4, "i", 96);
|
|
706
712
|
i0.ɵɵtext(5, " Create First Sub-Agent ");
|
|
707
713
|
i0.ɵɵelementEnd();
|
|
708
714
|
} }
|
|
709
715
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
710
|
-
i0.ɵɵelementStart(0, "div",
|
|
711
|
-
i0.ɵɵelement(1, "i",
|
|
716
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
717
|
+
i0.ɵɵelement(1, "i", 33);
|
|
712
718
|
i0.ɵɵelementStart(2, "h4");
|
|
713
719
|
i0.ɵɵtext(3, "No Sub-Agents");
|
|
714
720
|
i0.ɵɵelementEnd();
|
|
@@ -723,7 +729,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
723
729
|
i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanCreateSubAgents ? 6 : -1);
|
|
724
730
|
} }
|
|
725
731
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
726
|
-
i0.ɵɵelement(0, "img",
|
|
732
|
+
i0.ɵɵelement(0, "img", 119);
|
|
727
733
|
} if (rf & 2) {
|
|
728
734
|
const subAgent_r18 = i0.ɵɵnextContext().$implicit;
|
|
729
735
|
i0.ɵɵproperty("src", subAgent_r18.LogoURL, i0.ɵɵsanitizeUrl)("alt", subAgent_r18.Name + " logo");
|
|
@@ -736,7 +742,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
736
742
|
i0.ɵɵclassMap(ctx_r1.getSubAgentIcon(subAgent_r18));
|
|
737
743
|
} }
|
|
738
744
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
739
|
-
i0.ɵɵelementStart(0, "div",
|
|
745
|
+
i0.ɵɵelementStart(0, "div", 104);
|
|
740
746
|
i0.ɵɵtext(1);
|
|
741
747
|
i0.ɵɵelementEnd();
|
|
742
748
|
} if (rf & 2) {
|
|
@@ -745,7 +751,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
745
751
|
i0.ɵɵtextInterpolate(subAgent_r18.Description);
|
|
746
752
|
} }
|
|
747
753
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
748
|
-
i0.ɵɵelementStart(0, "span",
|
|
754
|
+
i0.ɵɵelementStart(0, "span", 107);
|
|
749
755
|
i0.ɵɵtext(1);
|
|
750
756
|
i0.ɵɵelementEnd();
|
|
751
757
|
} if (rf & 2) {
|
|
@@ -756,7 +762,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
756
762
|
i0.ɵɵtextInterpolate1(" ", subAgent_r18.Status, " ");
|
|
757
763
|
} }
|
|
758
764
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
759
|
-
i0.ɵɵelementStart(0, "span",
|
|
765
|
+
i0.ɵɵelementStart(0, "span", 106);
|
|
760
766
|
i0.ɵɵtext(1);
|
|
761
767
|
i0.ɵɵelementEnd();
|
|
762
768
|
} if (rf & 2) {
|
|
@@ -766,35 +772,35 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
766
772
|
} }
|
|
767
773
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
768
774
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
769
|
-
i0.ɵɵelementStart(0, "button",
|
|
775
|
+
i0.ɵɵelementStart(0, "button", 123);
|
|
770
776
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_12_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r19); const subAgent_r18 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openSubAgentAdvancedSettings(subAgent_r18, $event)); });
|
|
771
|
-
i0.ɵɵelement(1, "i",
|
|
777
|
+
i0.ɵɵelement(1, "i", 64);
|
|
772
778
|
i0.ɵɵelementEnd();
|
|
773
779
|
} }
|
|
774
780
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
775
781
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
776
|
-
i0.ɵɵelementStart(0, "button",
|
|
782
|
+
i0.ɵɵelementStart(0, "button", 124);
|
|
777
783
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r20); const subAgent_r18 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removeSubAgent(subAgent_r18, $event)); });
|
|
778
|
-
i0.ɵɵelement(1, "i",
|
|
784
|
+
i0.ɵɵelement(1, "i", 113);
|
|
779
785
|
i0.ɵɵelementEnd();
|
|
780
786
|
} }
|
|
781
787
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
782
788
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
783
|
-
i0.ɵɵelementStart(0, "div",
|
|
789
|
+
i0.ɵɵelementStart(0, "div", 118);
|
|
784
790
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Template_div_click_0_listener() { const subAgent_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agents", subAgent_r18.ID)); });
|
|
785
|
-
i0.ɵɵelementStart(1, "div",
|
|
786
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_2_Template, 1, 2, "img",
|
|
791
|
+
i0.ɵɵelementStart(1, "div", 101);
|
|
792
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_2_Template, 1, 2, "img", 119)(3, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_3_Template, 1, 2, "i", 13);
|
|
787
793
|
i0.ɵɵelementEnd();
|
|
788
|
-
i0.ɵɵelementStart(4, "div",
|
|
794
|
+
i0.ɵɵelementStart(4, "div", 102)(5, "div", 103);
|
|
789
795
|
i0.ɵɵtext(6);
|
|
790
796
|
i0.ɵɵelementEnd();
|
|
791
|
-
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_7_Template, 2, 1, "div",
|
|
792
|
-
i0.ɵɵelementStart(8, "div",
|
|
793
|
-
i0.ɵɵtemplate(9, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_9_Template, 2, 3, "span",
|
|
797
|
+
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_7_Template, 2, 1, "div", 104);
|
|
798
|
+
i0.ɵɵelementStart(8, "div", 105);
|
|
799
|
+
i0.ɵɵtemplate(9, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_9_Template, 2, 3, "span", 120)(10, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_10_Template, 2, 1, "span", 106);
|
|
794
800
|
i0.ɵɵelementEnd()();
|
|
795
|
-
i0.ɵɵelementStart(11, "div",
|
|
796
|
-
i0.ɵɵtemplate(12, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_12_Template, 2, 0, "button",
|
|
797
|
-
i0.ɵɵelement(14, "i",
|
|
801
|
+
i0.ɵɵelementStart(11, "div", 109);
|
|
802
|
+
i0.ɵɵtemplate(12, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_12_Template, 2, 0, "button", 121)(13, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Conditional_13_Template, 2, 0, "button", 122);
|
|
803
|
+
i0.ɵɵelement(14, "i", 111);
|
|
798
804
|
i0.ɵɵelementEnd()();
|
|
799
805
|
} if (rf & 2) {
|
|
800
806
|
const subAgent_r18 = ctx.$implicit;
|
|
@@ -816,7 +822,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
816
822
|
} }
|
|
817
823
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
818
824
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
819
|
-
i0.ɵɵelementStart(0, "div",
|
|
825
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
820
826
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agents", "")); });
|
|
821
827
|
i0.ɵɵelementStart(1, "span");
|
|
822
828
|
i0.ɵɵtext(2);
|
|
@@ -827,9 +833,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
827
833
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.subAgentCount, " sub-agents...");
|
|
828
834
|
} }
|
|
829
835
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
830
|
-
i0.ɵɵelementStart(0, "div",
|
|
831
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Template, 15, 7, "div",
|
|
832
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div",
|
|
836
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
837
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_For_2_Template, 15, 7, "div", 117, _forTrack0);
|
|
838
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div", 48);
|
|
833
839
|
i0.ɵɵelementEnd();
|
|
834
840
|
} if (rf & 2) {
|
|
835
841
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -839,13 +845,13 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Condit
|
|
|
839
845
|
i0.ɵɵconditional(ctx_r1.subAgentCount > ctx_r1.subAgents.length ? 3 : -1);
|
|
840
846
|
} }
|
|
841
847
|
function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
842
|
-
i0.ɵɵelementStart(0, "div",
|
|
848
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 114);
|
|
843
849
|
i0.ɵɵtext(3, " Manage hierarchical relationships with child agents that work under this agent. ");
|
|
844
850
|
i0.ɵɵelementEnd();
|
|
845
|
-
i0.ɵɵelementStart(4, "div",
|
|
851
|
+
i0.ɵɵelementStart(4, "div", 92);
|
|
846
852
|
i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_5_Template, 6, 0);
|
|
847
853
|
i0.ɵɵelementEnd()();
|
|
848
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_6_Template, 7, 1, "div",
|
|
854
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_6_Template, 7, 1, "div", 45)(7, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Conditional_7_Template, 4, 1, "div", 94);
|
|
849
855
|
i0.ɵɵelementEnd();
|
|
850
856
|
} if (rf & 2) {
|
|
851
857
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -855,16 +861,16 @@ function AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Templa
|
|
|
855
861
|
i0.ɵɵconditional(ctx_r1.subAgentCount === 0 ? 6 : 7);
|
|
856
862
|
} }
|
|
857
863
|
function AIAgentFormComponentExtended_form_3_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
858
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
859
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Template, 4, 1, "ng-template",
|
|
864
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 27);
|
|
865
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_1_Template, 4, 1, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_25_ng_template_2_Template, 8, 2, "ng-template", 29);
|
|
860
866
|
i0.ɵɵelementEnd();
|
|
861
867
|
} if (rf & 2) {
|
|
862
868
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
863
869
|
i0.ɵɵproperty("expanded", false)("disabled", ctx_r1.loadingStates.subAgents);
|
|
864
870
|
} }
|
|
865
871
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
866
|
-
i0.ɵɵelementStart(0, "span",
|
|
867
|
-
i0.ɵɵelement(1, "i",
|
|
872
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
873
|
+
i0.ɵɵelement(1, "i", 43);
|
|
868
874
|
i0.ɵɵelementEnd();
|
|
869
875
|
} }
|
|
870
876
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -877,9 +883,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Condit
|
|
|
877
883
|
i0.ɵɵtextInterpolate1(" (", ctx_r1.promptCount, ")");
|
|
878
884
|
} }
|
|
879
885
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
880
|
-
i0.ɵɵelement(0, "i",
|
|
886
|
+
i0.ɵɵelement(0, "i", 81);
|
|
881
887
|
i0.ɵɵtext(1, " Prompts ");
|
|
882
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Conditional_2_Template, 2, 0, "span",
|
|
888
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Conditional_2_Template, 2, 0, "span", 42)(3, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Conditional_3_Template, 2, 1, "span");
|
|
883
889
|
} if (rf & 2) {
|
|
884
890
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
885
891
|
i0.ɵɵadvance(2);
|
|
@@ -887,7 +893,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Templa
|
|
|
887
893
|
} }
|
|
888
894
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
889
895
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
890
|
-
i0.ɵɵelementStart(0, "kendo-dropdownlist",
|
|
896
|
+
i0.ɵɵelementStart(0, "kendo-dropdownlist", 131);
|
|
891
897
|
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_7_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.record.ModelSelectionMode, $event) || (ctx_r1.record.ModelSelectionMode = $event); return i0.ɵɵresetView($event); });
|
|
892
898
|
i0.ɵɵelementEnd();
|
|
893
899
|
} if (rf & 2) {
|
|
@@ -896,7 +902,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
896
902
|
i0.ɵɵproperty("data", ctx_r1.modelSelectionModes)("valuePrimitive", true);
|
|
897
903
|
} }
|
|
898
904
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
899
|
-
i0.ɵɵelementStart(0, "span",
|
|
905
|
+
i0.ɵɵelementStart(0, "span", 130);
|
|
900
906
|
i0.ɵɵtext(1);
|
|
901
907
|
i0.ɵɵelementEnd();
|
|
902
908
|
} if (rf & 2) {
|
|
@@ -906,30 +912,30 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
906
912
|
} }
|
|
907
913
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
908
914
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
909
|
-
i0.ɵɵelementStart(0, "button",
|
|
915
|
+
i0.ɵɵelementStart(0, "button", 95);
|
|
910
916
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
|
|
911
|
-
i0.ɵɵelement(1, "i",
|
|
917
|
+
i0.ɵɵelement(1, "i", 96);
|
|
912
918
|
i0.ɵɵtext(2, " Add Prompt ");
|
|
913
919
|
i0.ɵɵelementEnd();
|
|
914
920
|
} }
|
|
915
921
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
916
922
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
917
|
-
i0.ɵɵelementStart(0, "button",
|
|
923
|
+
i0.ɵɵelementStart(0, "button", 98);
|
|
918
924
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
|
|
919
|
-
i0.ɵɵelement(1, "i",
|
|
925
|
+
i0.ɵɵelement(1, "i", 96);
|
|
920
926
|
i0.ɵɵtext(2, " Create First Prompt ");
|
|
921
927
|
i0.ɵɵelementEnd();
|
|
922
928
|
} }
|
|
923
929
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
924
|
-
i0.ɵɵelementStart(0, "div",
|
|
925
|
-
i0.ɵɵelement(1, "i",
|
|
930
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
931
|
+
i0.ɵɵelement(1, "i", 81);
|
|
926
932
|
i0.ɵɵelementStart(2, "h4");
|
|
927
933
|
i0.ɵɵtext(3, "No Prompts Configured");
|
|
928
934
|
i0.ɵɵelementEnd();
|
|
929
935
|
i0.ɵɵelementStart(4, "p");
|
|
930
936
|
i0.ɵɵtext(5, "Add prompts to define how this agent processes requests and generates responses.");
|
|
931
937
|
i0.ɵɵelementEnd();
|
|
932
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Conditional_6_Template, 3, 0, "button",
|
|
938
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Conditional_6_Template, 3, 0, "button", 97);
|
|
933
939
|
i0.ɵɵelementEnd();
|
|
934
940
|
} if (rf & 2) {
|
|
935
941
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -937,7 +943,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
937
943
|
i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanCreateNewPrompts ? 6 : -1);
|
|
938
944
|
} }
|
|
939
945
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
940
|
-
i0.ɵɵelementStart(0, "div",
|
|
946
|
+
i0.ɵɵelementStart(0, "div", 104);
|
|
941
947
|
i0.ɵɵtext(1);
|
|
942
948
|
i0.ɵɵelementEnd();
|
|
943
949
|
} if (rf & 2) {
|
|
@@ -946,7 +952,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
946
952
|
i0.ɵɵtextInterpolate2("", prompt_r26.TemplateText.substring(0, 120), "", prompt_r26.TemplateText.length > 120 ? "..." : "", "");
|
|
947
953
|
} }
|
|
948
954
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
949
|
-
i0.ɵɵelementStart(0, "span",
|
|
955
|
+
i0.ɵɵelementStart(0, "span", 106);
|
|
950
956
|
i0.ɵɵtext(1);
|
|
951
957
|
i0.ɵɵelementEnd();
|
|
952
958
|
} if (rf & 2) {
|
|
@@ -956,35 +962,35 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
956
962
|
} }
|
|
957
963
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
958
964
|
const _r27 = i0.ɵɵgetCurrentView();
|
|
959
|
-
i0.ɵɵelementStart(0, "button",
|
|
965
|
+
i0.ɵɵelementStart(0, "button", 123);
|
|
960
966
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_10_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r27); const prompt_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openPromptAdvancedSettings(prompt_r26, $event)); });
|
|
961
|
-
i0.ɵɵelement(1, "i",
|
|
967
|
+
i0.ɵɵelement(1, "i", 64);
|
|
962
968
|
i0.ɵɵelementEnd();
|
|
963
969
|
} }
|
|
964
970
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
965
971
|
const _r28 = i0.ɵɵgetCurrentView();
|
|
966
|
-
i0.ɵɵelementStart(0, "button",
|
|
972
|
+
i0.ɵɵelementStart(0, "button", 136);
|
|
967
973
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r28); const prompt_r26 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removePrompt(prompt_r26, $event)); });
|
|
968
|
-
i0.ɵɵelement(1, "i",
|
|
974
|
+
i0.ɵɵelement(1, "i", 113);
|
|
969
975
|
i0.ɵɵelementEnd();
|
|
970
976
|
} }
|
|
971
977
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
972
978
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
973
|
-
i0.ɵɵelementStart(0, "div",
|
|
979
|
+
i0.ɵɵelementStart(0, "div", 133);
|
|
974
980
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Template_div_click_0_listener() { const prompt_r26 = i0.ɵɵrestoreView(_r25).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Prompts", prompt_r26.ID)); });
|
|
975
|
-
i0.ɵɵelementStart(1, "div",
|
|
976
|
-
i0.ɵɵelement(2, "i",
|
|
981
|
+
i0.ɵɵelementStart(1, "div", 101);
|
|
982
|
+
i0.ɵɵelement(2, "i", 134);
|
|
977
983
|
i0.ɵɵelementEnd();
|
|
978
|
-
i0.ɵɵelementStart(3, "div",
|
|
984
|
+
i0.ɵɵelementStart(3, "div", 102)(4, "div", 103);
|
|
979
985
|
i0.ɵɵtext(5);
|
|
980
986
|
i0.ɵɵelementEnd();
|
|
981
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_6_Template, 2, 2, "div",
|
|
982
|
-
i0.ɵɵelementStart(7, "div",
|
|
983
|
-
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_8_Template, 2, 1, "span",
|
|
987
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_6_Template, 2, 2, "div", 104);
|
|
988
|
+
i0.ɵɵelementStart(7, "div", 105);
|
|
989
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_8_Template, 2, 1, "span", 106);
|
|
984
990
|
i0.ɵɵelementEnd()();
|
|
985
|
-
i0.ɵɵelementStart(9, "div",
|
|
986
|
-
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_10_Template, 2, 0, "button",
|
|
987
|
-
i0.ɵɵelement(12, "i",
|
|
991
|
+
i0.ɵɵelementStart(9, "div", 109);
|
|
992
|
+
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_10_Template, 2, 0, "button", 121)(11, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Conditional_11_Template, 2, 0, "button", 135);
|
|
993
|
+
i0.ɵɵelement(12, "i", 111);
|
|
988
994
|
i0.ɵɵelementEnd()();
|
|
989
995
|
} if (rf & 2) {
|
|
990
996
|
const prompt_r26 = ctx.$implicit;
|
|
@@ -1002,7 +1008,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
1002
1008
|
} }
|
|
1003
1009
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1004
1010
|
const _r29 = i0.ɵɵgetCurrentView();
|
|
1005
|
-
i0.ɵɵelementStart(0, "div",
|
|
1011
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1006
1012
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Prompts", "")); });
|
|
1007
1013
|
i0.ɵɵelementStart(1, "span");
|
|
1008
1014
|
i0.ɵɵtext(2);
|
|
@@ -1013,9 +1019,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
1013
1019
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.promptCount, " prompts...");
|
|
1014
1020
|
} }
|
|
1015
1021
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
1016
|
-
i0.ɵɵelementStart(0, "div",
|
|
1017
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Template, 13, 5, "div",
|
|
1018
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_Conditional_3_Template, 3, 1, "div",
|
|
1022
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
1023
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_For_2_Template, 13, 5, "div", 132, _forTrack0);
|
|
1024
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_Conditional_3_Template, 3, 1, "div", 48);
|
|
1019
1025
|
i0.ɵɵelementEnd();
|
|
1020
1026
|
} if (rf & 2) {
|
|
1021
1027
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -1025,16 +1031,16 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Condit
|
|
|
1025
1031
|
i0.ɵɵconditional(ctx_r1.promptCount > ctx_r1.agentPrompts.length ? 3 : -1);
|
|
1026
1032
|
} }
|
|
1027
1033
|
function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1028
|
-
i0.ɵɵelementStart(0, "div",
|
|
1029
|
-
i0.ɵɵelement(5, "i",
|
|
1034
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 125)(3, "div", 126)(4, "label", 127);
|
|
1035
|
+
i0.ɵɵelement(5, "i", 128);
|
|
1030
1036
|
i0.ɵɵtext(6, " Model Selection: ");
|
|
1031
1037
|
i0.ɵɵelementEnd();
|
|
1032
|
-
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_7_Template, 1, 3, "kendo-dropdownlist",
|
|
1038
|
+
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_7_Template, 1, 3, "kendo-dropdownlist", 129)(8, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_8_Template, 2, 1, "span", 130);
|
|
1033
1039
|
i0.ɵɵelementEnd()();
|
|
1034
|
-
i0.ɵɵelementStart(9, "div",
|
|
1035
|
-
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_10_Template, 3, 0, "button",
|
|
1040
|
+
i0.ɵɵelementStart(9, "div", 92);
|
|
1041
|
+
i0.ɵɵtemplate(10, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_10_Template, 3, 0, "button", 93);
|
|
1036
1042
|
i0.ɵɵelementEnd()();
|
|
1037
|
-
i0.ɵɵtemplate(11, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Template, 7, 1, "div",
|
|
1043
|
+
i0.ɵɵtemplate(11, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_11_Template, 7, 1, "div", 45)(12, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Conditional_12_Template, 4, 1, "div", 94);
|
|
1038
1044
|
i0.ɵɵelementEnd();
|
|
1039
1045
|
} if (rf & 2) {
|
|
1040
1046
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -1046,22 +1052,22 @@ function AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Templa
|
|
|
1046
1052
|
i0.ɵɵconditional(ctx_r1.promptCount === 0 ? 11 : 12);
|
|
1047
1053
|
} }
|
|
1048
1054
|
function AIAgentFormComponentExtended_form_3_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
1049
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
1050
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Template, 4, 1, "ng-template",
|
|
1055
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 27);
|
|
1056
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_1_Template, 4, 1, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_26_ng_template_2_Template, 13, 3, "ng-template", 29);
|
|
1051
1057
|
i0.ɵɵelementEnd();
|
|
1052
1058
|
} if (rf & 2) {
|
|
1053
1059
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1054
1060
|
i0.ɵɵproperty("expanded", false)("disabled", ctx_r1.loadingStates.prompts);
|
|
1055
1061
|
} }
|
|
1056
1062
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1057
|
-
i0.ɵɵelementStart(0, "span",
|
|
1058
|
-
i0.ɵɵelement(1, "i",
|
|
1063
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
1064
|
+
i0.ɵɵelement(1, "i", 43);
|
|
1059
1065
|
i0.ɵɵelementEnd();
|
|
1060
1066
|
} }
|
|
1061
1067
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1062
|
-
i0.ɵɵelement(0, "i",
|
|
1068
|
+
i0.ɵɵelement(0, "i", 137);
|
|
1063
1069
|
i0.ɵɵtext(1);
|
|
1064
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Conditional_2_Template, 2, 0, "span",
|
|
1070
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Conditional_2_Template, 2, 0, "span", 42);
|
|
1065
1071
|
} if (rf & 2) {
|
|
1066
1072
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1067
1073
|
i0.ɵɵadvance();
|
|
@@ -1070,8 +1076,8 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Templa
|
|
|
1070
1076
|
i0.ɵɵconditional(ctx_r1.loadingStates.learningCycles ? 2 : -1);
|
|
1071
1077
|
} }
|
|
1072
1078
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
1073
|
-
i0.ɵɵelementStart(0, "div",
|
|
1074
|
-
i0.ɵɵelement(1, "i",
|
|
1079
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
1080
|
+
i0.ɵɵelement(1, "i", 137);
|
|
1075
1081
|
i0.ɵɵelementStart(2, "h4");
|
|
1076
1082
|
i0.ɵɵtext(3, "No Learning Cycles");
|
|
1077
1083
|
i0.ɵɵelementEnd();
|
|
@@ -1080,8 +1086,8 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Condit
|
|
|
1080
1086
|
i0.ɵɵelementEnd()();
|
|
1081
1087
|
} }
|
|
1082
1088
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1083
|
-
i0.ɵɵelementStart(0, "span",
|
|
1084
|
-
i0.ɵɵelement(1, "i",
|
|
1089
|
+
i0.ɵɵelementStart(0, "span", 106);
|
|
1090
|
+
i0.ɵɵelement(1, "i", 140);
|
|
1085
1091
|
i0.ɵɵtext(2);
|
|
1086
1092
|
i0.ɵɵpipe(3, "date");
|
|
1087
1093
|
i0.ɵɵelementEnd();
|
|
@@ -1091,7 +1097,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Condit
|
|
|
1091
1097
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r31.StartedAt, "short"), " ");
|
|
1092
1098
|
} }
|
|
1093
1099
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1094
|
-
i0.ɵɵelementStart(0, "span",
|
|
1100
|
+
i0.ɵɵelementStart(0, "span", 107);
|
|
1095
1101
|
i0.ɵɵtext(1);
|
|
1096
1102
|
i0.ɵɵelementEnd();
|
|
1097
1103
|
} if (rf & 2) {
|
|
@@ -1101,19 +1107,19 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Condit
|
|
|
1101
1107
|
} }
|
|
1102
1108
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1103
1109
|
const _r30 = i0.ɵɵgetCurrentView();
|
|
1104
|
-
i0.ɵɵelementStart(0, "div",
|
|
1110
|
+
i0.ɵɵelementStart(0, "div", 139);
|
|
1105
1111
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Template_div_click_0_listener() { const cycle_r31 = i0.ɵɵrestoreView(_r30).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Learning Cycles", cycle_r31.ID)); });
|
|
1106
|
-
i0.ɵɵelementStart(1, "div",
|
|
1107
|
-
i0.ɵɵelement(2, "i",
|
|
1112
|
+
i0.ɵɵelementStart(1, "div", 101);
|
|
1113
|
+
i0.ɵɵelement(2, "i", 137);
|
|
1108
1114
|
i0.ɵɵelementEnd();
|
|
1109
|
-
i0.ɵɵelementStart(3, "div",
|
|
1115
|
+
i0.ɵɵelementStart(3, "div", 102)(4, "div", 103);
|
|
1110
1116
|
i0.ɵɵtext(5);
|
|
1111
1117
|
i0.ɵɵelementEnd();
|
|
1112
|
-
i0.ɵɵelementStart(6, "div",
|
|
1113
|
-
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_7_Template, 4, 4, "span",
|
|
1118
|
+
i0.ɵɵelementStart(6, "div", 105);
|
|
1119
|
+
i0.ɵɵtemplate(7, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_7_Template, 4, 4, "span", 106)(8, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Conditional_8_Template, 2, 1, "span", 107);
|
|
1114
1120
|
i0.ɵɵelementEnd()();
|
|
1115
|
-
i0.ɵɵelementStart(9, "div",
|
|
1116
|
-
i0.ɵɵelement(10, "i",
|
|
1121
|
+
i0.ɵɵelementStart(9, "div", 109);
|
|
1122
|
+
i0.ɵɵelement(10, "i", 111);
|
|
1117
1123
|
i0.ɵɵelementEnd()();
|
|
1118
1124
|
} if (rf & 2) {
|
|
1119
1125
|
const cycle_r31 = ctx.$implicit;
|
|
@@ -1126,7 +1132,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Condit
|
|
|
1126
1132
|
} }
|
|
1127
1133
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1128
1134
|
const _r32 = i0.ɵɵgetCurrentView();
|
|
1129
|
-
i0.ɵɵelementStart(0, "div",
|
|
1135
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1130
1136
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Learning Cycles", "")); });
|
|
1131
1137
|
i0.ɵɵelementStart(1, "span");
|
|
1132
1138
|
i0.ɵɵtext(2);
|
|
@@ -1137,9 +1143,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Condit
|
|
|
1137
1143
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.learningCycleCount, " cycles...");
|
|
1138
1144
|
} }
|
|
1139
1145
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
1140
|
-
i0.ɵɵelementStart(0, "div",
|
|
1141
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Template, 11, 3, "div",
|
|
1142
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div",
|
|
1146
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
1147
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_For_2_Template, 11, 3, "div", 138, _forTrack0);
|
|
1148
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_Conditional_3_Template, 3, 1, "div", 48);
|
|
1143
1149
|
i0.ɵɵelementEnd();
|
|
1144
1150
|
} if (rf & 2) {
|
|
1145
1151
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -1149,10 +1155,10 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Condit
|
|
|
1149
1155
|
i0.ɵɵconditional(ctx_r1.learningCycleCount > ctx_r1.learningCycles.length ? 3 : -1);
|
|
1150
1156
|
} }
|
|
1151
1157
|
function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1152
|
-
i0.ɵɵelementStart(0, "div",
|
|
1158
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 114);
|
|
1153
1159
|
i0.ɵɵtext(3, " Monitor and manage learning cycles, training sessions, and performance analytics. ");
|
|
1154
1160
|
i0.ɵɵelementEnd()();
|
|
1155
|
-
i0.ɵɵtemplate(4, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_4_Template, 6, 0, "div",
|
|
1161
|
+
i0.ɵɵtemplate(4, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_4_Template, 6, 0, "div", 45)(5, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Conditional_5_Template, 4, 1, "div", 94);
|
|
1156
1162
|
i0.ɵɵelementEnd();
|
|
1157
1163
|
} if (rf & 2) {
|
|
1158
1164
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -1160,22 +1166,22 @@ function AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Templa
|
|
|
1160
1166
|
i0.ɵɵconditional(ctx_r1.learningCycleCount === 0 ? 4 : 5);
|
|
1161
1167
|
} }
|
|
1162
1168
|
function AIAgentFormComponentExtended_form_3_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
1163
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
1164
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Template, 3, 2, "ng-template",
|
|
1169
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 27);
|
|
1170
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_1_Template, 3, 2, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_27_ng_template_2_Template, 6, 1, "ng-template", 29);
|
|
1165
1171
|
i0.ɵɵelementEnd();
|
|
1166
1172
|
} if (rf & 2) {
|
|
1167
1173
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1168
1174
|
i0.ɵɵproperty("expanded", false)("disabled", ctx_r1.loadingStates.learningCycles);
|
|
1169
1175
|
} }
|
|
1170
1176
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1171
|
-
i0.ɵɵelementStart(0, "span",
|
|
1172
|
-
i0.ɵɵelement(1, "i",
|
|
1177
|
+
i0.ɵɵelementStart(0, "span", 42);
|
|
1178
|
+
i0.ɵɵelement(1, "i", 43);
|
|
1173
1179
|
i0.ɵɵelementEnd();
|
|
1174
1180
|
} }
|
|
1175
1181
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
1176
|
-
i0.ɵɵelement(0, "i",
|
|
1182
|
+
i0.ɵɵelement(0, "i", 141);
|
|
1177
1183
|
i0.ɵɵtext(1);
|
|
1178
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Conditional_2_Template, 2, 0, "span",
|
|
1184
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Conditional_2_Template, 2, 0, "span", 42);
|
|
1179
1185
|
} if (rf & 2) {
|
|
1180
1186
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1181
1187
|
i0.ɵɵadvance();
|
|
@@ -1185,30 +1191,30 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Templa
|
|
|
1185
1191
|
} }
|
|
1186
1192
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
1187
1193
|
const _r33 = i0.ɵɵgetCurrentView();
|
|
1188
|
-
i0.ɵɵelementStart(0, "button",
|
|
1194
|
+
i0.ɵɵelementStart(0, "button", 95);
|
|
1189
1195
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
|
|
1190
|
-
i0.ɵɵelement(1, "i",
|
|
1196
|
+
i0.ɵɵelement(1, "i", 96);
|
|
1191
1197
|
i0.ɵɵtext(2, " Add Note ");
|
|
1192
1198
|
i0.ɵɵelementEnd();
|
|
1193
1199
|
} }
|
|
1194
1200
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1195
1201
|
const _r34 = i0.ɵɵgetCurrentView();
|
|
1196
|
-
i0.ɵɵelementStart(0, "button",
|
|
1202
|
+
i0.ɵɵelementStart(0, "button", 98);
|
|
1197
1203
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.addNote()); });
|
|
1198
|
-
i0.ɵɵelement(1, "i",
|
|
1204
|
+
i0.ɵɵelement(1, "i", 96);
|
|
1199
1205
|
i0.ɵɵtext(2, " Create First Note ");
|
|
1200
1206
|
i0.ɵɵelementEnd();
|
|
1201
1207
|
} }
|
|
1202
1208
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1203
|
-
i0.ɵɵelementStart(0, "div",
|
|
1204
|
-
i0.ɵɵelement(1, "i",
|
|
1209
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
1210
|
+
i0.ɵɵelement(1, "i", 141);
|
|
1205
1211
|
i0.ɵɵelementStart(2, "h4");
|
|
1206
1212
|
i0.ɵɵtext(3, "No Notes");
|
|
1207
1213
|
i0.ɵɵelementEnd();
|
|
1208
1214
|
i0.ɵɵelementStart(4, "p");
|
|
1209
1215
|
i0.ɵɵtext(5, "Add notes to document important information, observations, or instructions for this agent.");
|
|
1210
1216
|
i0.ɵɵelementEnd();
|
|
1211
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template, 3, 0, "button",
|
|
1217
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Conditional_6_Template, 3, 0, "button", 97);
|
|
1212
1218
|
i0.ɵɵelementEnd();
|
|
1213
1219
|
} if (rf & 2) {
|
|
1214
1220
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -1216,7 +1222,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Condit
|
|
|
1216
1222
|
i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanCreateNotes ? 6 : -1);
|
|
1217
1223
|
} }
|
|
1218
1224
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
1219
|
-
i0.ɵɵelementStart(0, "div",
|
|
1225
|
+
i0.ɵɵelementStart(0, "div", 104);
|
|
1220
1226
|
i0.ɵɵtext(1);
|
|
1221
1227
|
i0.ɵɵelementEnd();
|
|
1222
1228
|
} if (rf & 2) {
|
|
@@ -1225,8 +1231,8 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Condit
|
|
|
1225
1231
|
i0.ɵɵtextInterpolate2("", note_r36.Note.substring(0, 100), "", note_r36.Note.length > 100 ? "..." : "", "");
|
|
1226
1232
|
} }
|
|
1227
1233
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1228
|
-
i0.ɵɵelementStart(0, "span",
|
|
1229
|
-
i0.ɵɵelement(1, "i",
|
|
1234
|
+
i0.ɵɵelementStart(0, "span", 106);
|
|
1235
|
+
i0.ɵɵelement(1, "i", 140);
|
|
1230
1236
|
i0.ɵɵtext(2);
|
|
1231
1237
|
i0.ɵɵpipe(3, "date");
|
|
1232
1238
|
i0.ɵɵelementEnd();
|
|
@@ -1237,20 +1243,20 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Condit
|
|
|
1237
1243
|
} }
|
|
1238
1244
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1239
1245
|
const _r35 = i0.ɵɵgetCurrentView();
|
|
1240
|
-
i0.ɵɵelementStart(0, "div",
|
|
1246
|
+
i0.ɵɵelementStart(0, "div", 143);
|
|
1241
1247
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Template_div_click_0_listener() { const note_r36 = i0.ɵɵrestoreView(_r35).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Notes", note_r36.ID)); });
|
|
1242
|
-
i0.ɵɵelementStart(1, "div",
|
|
1243
|
-
i0.ɵɵelement(2, "i",
|
|
1248
|
+
i0.ɵɵelementStart(1, "div", 101);
|
|
1249
|
+
i0.ɵɵelement(2, "i", 141);
|
|
1244
1250
|
i0.ɵɵelementEnd();
|
|
1245
|
-
i0.ɵɵelementStart(3, "div",
|
|
1251
|
+
i0.ɵɵelementStart(3, "div", 102)(4, "div", 103);
|
|
1246
1252
|
i0.ɵɵtext(5);
|
|
1247
1253
|
i0.ɵɵelementEnd();
|
|
1248
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_6_Template, 2, 2, "div",
|
|
1249
|
-
i0.ɵɵelementStart(7, "div",
|
|
1250
|
-
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_8_Template, 4, 4, "span",
|
|
1254
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_6_Template, 2, 2, "div", 104);
|
|
1255
|
+
i0.ɵɵelementStart(7, "div", 105);
|
|
1256
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Conditional_8_Template, 4, 4, "span", 106);
|
|
1251
1257
|
i0.ɵɵelementEnd()();
|
|
1252
|
-
i0.ɵɵelementStart(9, "div",
|
|
1253
|
-
i0.ɵɵelement(10, "i",
|
|
1258
|
+
i0.ɵɵelementStart(9, "div", 109);
|
|
1259
|
+
i0.ɵɵelement(10, "i", 111);
|
|
1254
1260
|
i0.ɵɵelementEnd()();
|
|
1255
1261
|
} if (rf & 2) {
|
|
1256
1262
|
const note_r36 = ctx.$implicit;
|
|
@@ -1263,7 +1269,7 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Condit
|
|
|
1263
1269
|
} }
|
|
1264
1270
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1265
1271
|
const _r37 = i0.ɵɵgetCurrentView();
|
|
1266
|
-
i0.ɵɵelementStart(0, "div",
|
|
1272
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1267
1273
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("AI Agent Notes", "")); });
|
|
1268
1274
|
i0.ɵɵelementStart(1, "span");
|
|
1269
1275
|
i0.ɵɵtext(2);
|
|
@@ -1274,9 +1280,9 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Condit
|
|
|
1274
1280
|
i0.ɵɵtextInterpolate1("View all ", ctx_r1.noteCount, " notes...");
|
|
1275
1281
|
} }
|
|
1276
1282
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1277
|
-
i0.ɵɵelementStart(0, "div",
|
|
1278
|
-
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Template, 11, 3, "div",
|
|
1279
|
-
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div",
|
|
1283
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
1284
|
+
i0.ɵɵrepeaterCreate(1, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_For_2_Template, 11, 3, "div", 142, _forTrack0);
|
|
1285
|
+
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_Conditional_3_Template, 3, 1, "div", 48);
|
|
1280
1286
|
i0.ɵɵelementEnd();
|
|
1281
1287
|
} if (rf & 2) {
|
|
1282
1288
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -1286,13 +1292,13 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Condit
|
|
|
1286
1292
|
i0.ɵɵconditional(ctx_r1.noteCount > ctx_r1.agentNotes.length ? 3 : -1);
|
|
1287
1293
|
} }
|
|
1288
1294
|
function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1289
|
-
i0.ɵɵelementStart(0, "div",
|
|
1295
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 114);
|
|
1290
1296
|
i0.ɵɵtext(3, " Manage notes, documentation, and annotations for this agent. ");
|
|
1291
1297
|
i0.ɵɵelementEnd();
|
|
1292
|
-
i0.ɵɵelementStart(4, "div",
|
|
1293
|
-
i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_5_Template, 3, 0, "button",
|
|
1298
|
+
i0.ɵɵelementStart(4, "div", 92);
|
|
1299
|
+
i0.ɵɵtemplate(5, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_5_Template, 3, 0, "button", 93);
|
|
1294
1300
|
i0.ɵɵelementEnd()();
|
|
1295
|
-
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Template, 7, 1, "div",
|
|
1301
|
+
i0.ɵɵtemplate(6, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_6_Template, 7, 1, "div", 45)(7, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Conditional_7_Template, 4, 1, "div", 94);
|
|
1296
1302
|
i0.ɵɵelementEnd();
|
|
1297
1303
|
} if (rf & 2) {
|
|
1298
1304
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -1302,36 +1308,36 @@ function AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Templa
|
|
|
1302
1308
|
i0.ɵɵconditional(ctx_r1.noteCount === 0 ? 6 : 7);
|
|
1303
1309
|
} }
|
|
1304
1310
|
function AIAgentFormComponentExtended_form_3_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
1305
|
-
i0.ɵɵelementStart(0, "kendo-panelbar-item",
|
|
1306
|
-
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Template, 3, 2, "ng-template",
|
|
1311
|
+
i0.ɵɵelementStart(0, "kendo-panelbar-item", 27);
|
|
1312
|
+
i0.ɵɵtemplate(1, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_1_Template, 3, 2, "ng-template", 28)(2, AIAgentFormComponentExtended_form_3_Conditional_28_ng_template_2_Template, 8, 2, "ng-template", 29);
|
|
1307
1313
|
i0.ɵɵelementEnd();
|
|
1308
1314
|
} if (rf & 2) {
|
|
1309
1315
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1310
1316
|
i0.ɵɵproperty("expanded", false)("disabled", ctx_r1.loadingStates.notes);
|
|
1311
1317
|
} }
|
|
1312
1318
|
function AIAgentFormComponentExtended_form_3_ng_template_30_Template(rf, ctx) { if (rf & 1) {
|
|
1313
|
-
i0.ɵɵelement(0, "i",
|
|
1319
|
+
i0.ɵɵelement(0, "i", 144);
|
|
1314
1320
|
i0.ɵɵtext(1, " Payload Management ");
|
|
1315
1321
|
} }
|
|
1316
1322
|
function AIAgentFormComponentExtended_form_3_ng_template_31_Template(rf, ctx) { if (rf & 1) {
|
|
1317
1323
|
const _r38 = i0.ɵɵgetCurrentView();
|
|
1318
|
-
i0.ɵɵelementStart(0, "div",
|
|
1324
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 114);
|
|
1319
1325
|
i0.ɵɵtext(3, " Configure how this agent handles data payloads, path routing, and validation between parent and child agents. ");
|
|
1320
1326
|
i0.ɵɵelementEnd()();
|
|
1321
|
-
i0.ɵɵelementStart(4, "div",
|
|
1322
|
-
i0.ɵɵelement(6, "i",
|
|
1327
|
+
i0.ɵɵelementStart(4, "div", 145)(5, "h3", 146);
|
|
1328
|
+
i0.ɵɵelement(6, "i", 147);
|
|
1323
1329
|
i0.ɵɵtext(7, " Payload Scope ");
|
|
1324
1330
|
i0.ɵɵelementEnd();
|
|
1325
|
-
i0.ɵɵelementStart(8, "div",
|
|
1331
|
+
i0.ɵɵelementStart(8, "div", 148)(9, "div", 149)(10, "label", 150);
|
|
1326
1332
|
i0.ɵɵtext(11, "Payload Scope Path");
|
|
1327
1333
|
i0.ɵɵelementEnd();
|
|
1328
|
-
i0.ɵɵelementStart(12, "p",
|
|
1334
|
+
i0.ɵɵelementStart(12, "p", 151);
|
|
1329
1335
|
i0.ɵɵtext(13, " Specify a path within the parent payload that this sub-agent should operate on. Leave empty to receive the entire payload. ");
|
|
1330
1336
|
i0.ɵɵelementEnd()();
|
|
1331
|
-
i0.ɵɵelementStart(14, "div",
|
|
1332
|
-
i0.ɵɵelement(15, "mj-form-field",
|
|
1333
|
-
i0.ɵɵelementStart(16, "div",
|
|
1334
|
-
i0.ɵɵelement(17, "i",
|
|
1337
|
+
i0.ɵɵelementStart(14, "div", 152);
|
|
1338
|
+
i0.ɵɵelement(15, "mj-form-field", 153);
|
|
1339
|
+
i0.ɵɵelementStart(16, "div", 154);
|
|
1340
|
+
i0.ɵɵelement(17, "i", 155);
|
|
1335
1341
|
i0.ɵɵelementStart(18, "span");
|
|
1336
1342
|
i0.ɵɵtext(19, "Example: ");
|
|
1337
1343
|
i0.ɵɵelementStart(20, "code");
|
|
@@ -1341,24 +1347,24 @@ function AIAgentFormComponentExtended_form_3_ng_template_31_Template(rf, ctx) {
|
|
|
1341
1347
|
i0.ɵɵelementStart(23, "code");
|
|
1342
1348
|
i0.ɵɵtext(24, "/analysis/results");
|
|
1343
1349
|
i0.ɵɵelementEnd()()()()()();
|
|
1344
|
-
i0.ɵɵelementStart(25, "div",
|
|
1345
|
-
i0.ɵɵelement(27, "i",
|
|
1350
|
+
i0.ɵɵelementStart(25, "div", 145)(26, "h3", 146);
|
|
1351
|
+
i0.ɵɵelement(27, "i", 156);
|
|
1346
1352
|
i0.ɵɵtext(28, " Path Configuration ");
|
|
1347
1353
|
i0.ɵɵelementEnd();
|
|
1348
|
-
i0.ɵɵelementStart(29, "div",
|
|
1349
|
-
i0.ɵɵelement(33, "i",
|
|
1354
|
+
i0.ɵɵelementStart(29, "div", 157)(30, "div", 158)(31, "div", 159)(32, "div", 160);
|
|
1355
|
+
i0.ɵɵelement(33, "i", 161);
|
|
1350
1356
|
i0.ɵɵelementEnd();
|
|
1351
|
-
i0.ɵɵelementStart(34, "div",
|
|
1357
|
+
i0.ɵɵelementStart(34, "div", 162)(35, "h4");
|
|
1352
1358
|
i0.ɵɵtext(36, "Downstream Paths");
|
|
1353
1359
|
i0.ɵɵelementEnd();
|
|
1354
1360
|
i0.ɵɵelementStart(37, "p");
|
|
1355
1361
|
i0.ɵɵtext(38, "JSON array of paths to pass to sub-agents");
|
|
1356
1362
|
i0.ɵɵelementEnd()()();
|
|
1357
|
-
i0.ɵɵelementStart(39, "div",
|
|
1363
|
+
i0.ɵɵelementStart(39, "div", 163)(40, "div", 164)(41, "mj-code-editor", 165);
|
|
1358
1364
|
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_3_ng_template_31_Template_mj_code_editor_valueChange_41_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadDownstreamPaths", $event)); });
|
|
1359
1365
|
i0.ɵɵelementEnd()();
|
|
1360
|
-
i0.ɵɵelementStart(42, "div",
|
|
1361
|
-
i0.ɵɵelement(43, "i",
|
|
1366
|
+
i0.ɵɵelementStart(42, "div", 166);
|
|
1367
|
+
i0.ɵɵelement(43, "i", 167);
|
|
1362
1368
|
i0.ɵɵtext(44, " Use ");
|
|
1363
1369
|
i0.ɵɵelementStart(45, "code");
|
|
1364
1370
|
i0.ɵɵtext(46, "[\"*\"]");
|
|
@@ -1367,86 +1373,86 @@ function AIAgentFormComponentExtended_form_3_ng_template_31_Template(rf, ctx) {
|
|
|
1367
1373
|
i0.ɵɵelementStart(48, "code");
|
|
1368
1374
|
i0.ɵɵtext(49, "[\"user.id\", \"order.*\"]");
|
|
1369
1375
|
i0.ɵɵelementEnd()()()();
|
|
1370
|
-
i0.ɵɵelementStart(50, "div",
|
|
1371
|
-
i0.ɵɵelement(53, "i",
|
|
1376
|
+
i0.ɵɵelementStart(50, "div", 158)(51, "div", 159)(52, "div", 168);
|
|
1377
|
+
i0.ɵɵelement(53, "i", 169);
|
|
1372
1378
|
i0.ɵɵelementEnd();
|
|
1373
|
-
i0.ɵɵelementStart(54, "div",
|
|
1379
|
+
i0.ɵɵelementStart(54, "div", 162)(55, "h4");
|
|
1374
1380
|
i0.ɵɵtext(56, "Upstream Paths");
|
|
1375
1381
|
i0.ɵɵelementEnd();
|
|
1376
1382
|
i0.ɵɵelementStart(57, "p");
|
|
1377
1383
|
i0.ɵɵtext(58, "JSON array of paths sub-agents can write back");
|
|
1378
1384
|
i0.ɵɵelementEnd()()();
|
|
1379
|
-
i0.ɵɵelementStart(59, "div",
|
|
1385
|
+
i0.ɵɵelementStart(59, "div", 163)(60, "div", 164)(61, "mj-code-editor", 165);
|
|
1380
1386
|
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_3_ng_template_31_Template_mj_code_editor_valueChange_61_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadUpstreamPaths", $event)); });
|
|
1381
1387
|
i0.ɵɵelementEnd()();
|
|
1382
|
-
i0.ɵɵelementStart(62, "div",
|
|
1383
|
-
i0.ɵɵelement(63, "i",
|
|
1388
|
+
i0.ɵɵelementStart(62, "div", 166);
|
|
1389
|
+
i0.ɵɵelement(63, "i", 167);
|
|
1384
1390
|
i0.ɵɵtext(64, " Use ");
|
|
1385
1391
|
i0.ɵɵelementStart(65, "code");
|
|
1386
1392
|
i0.ɵɵtext(66, "[\"*\"]");
|
|
1387
1393
|
i0.ɵɵelementEnd();
|
|
1388
1394
|
i0.ɵɵtext(67, " to allow all writes or limit to specific paths ");
|
|
1389
1395
|
i0.ɵɵelementEnd()()();
|
|
1390
|
-
i0.ɵɵelementStart(68, "div",
|
|
1391
|
-
i0.ɵɵelement(71, "i",
|
|
1396
|
+
i0.ɵɵelementStart(68, "div", 158)(69, "div", 159)(70, "div", 170);
|
|
1397
|
+
i0.ɵɵelement(71, "i", 171);
|
|
1392
1398
|
i0.ɵɵelementEnd();
|
|
1393
|
-
i0.ɵɵelementStart(72, "div",
|
|
1399
|
+
i0.ɵɵelementStart(72, "div", 162)(73, "h4");
|
|
1394
1400
|
i0.ɵɵtext(74, "Self Read Paths");
|
|
1395
1401
|
i0.ɵɵelementEnd();
|
|
1396
1402
|
i0.ɵɵelementStart(75, "p");
|
|
1397
1403
|
i0.ɵɵtext(76, "JSON array of paths this agent can read");
|
|
1398
1404
|
i0.ɵɵelementEnd()()();
|
|
1399
|
-
i0.ɵɵelementStart(77, "div",
|
|
1405
|
+
i0.ɵɵelementStart(77, "div", 163)(78, "div", 164)(79, "mj-code-editor", 165);
|
|
1400
1406
|
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_3_ng_template_31_Template_mj_code_editor_valueChange_79_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfReadPaths", $event)); });
|
|
1401
1407
|
i0.ɵɵelementEnd()();
|
|
1402
|
-
i0.ɵɵelementStart(80, "div",
|
|
1403
|
-
i0.ɵɵelement(81, "i",
|
|
1408
|
+
i0.ɵɵelementStart(80, "div", 166);
|
|
1409
|
+
i0.ɵɵelement(81, "i", 167);
|
|
1404
1410
|
i0.ɵɵtext(82, " Paths this agent's prompts can read from the payload ");
|
|
1405
1411
|
i0.ɵɵelementEnd()()();
|
|
1406
|
-
i0.ɵɵelementStart(83, "div",
|
|
1407
|
-
i0.ɵɵelement(86, "i",
|
|
1412
|
+
i0.ɵɵelementStart(83, "div", 158)(84, "div", 159)(85, "div", 172);
|
|
1413
|
+
i0.ɵɵelement(86, "i", 173);
|
|
1408
1414
|
i0.ɵɵelementEnd();
|
|
1409
|
-
i0.ɵɵelementStart(87, "div",
|
|
1415
|
+
i0.ɵɵelementStart(87, "div", 162)(88, "h4");
|
|
1410
1416
|
i0.ɵɵtext(89, "Self Write Paths");
|
|
1411
1417
|
i0.ɵɵelementEnd();
|
|
1412
1418
|
i0.ɵɵelementStart(90, "p");
|
|
1413
1419
|
i0.ɵɵtext(91, "JSON array of paths this agent can write to");
|
|
1414
1420
|
i0.ɵɵelementEnd()()();
|
|
1415
|
-
i0.ɵɵelementStart(92, "div",
|
|
1421
|
+
i0.ɵɵelementStart(92, "div", 163)(93, "div", 164)(94, "mj-code-editor", 165);
|
|
1416
1422
|
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_3_ng_template_31_Template_mj_code_editor_valueChange_94_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfWritePaths", $event)); });
|
|
1417
1423
|
i0.ɵɵelementEnd()();
|
|
1418
|
-
i0.ɵɵelementStart(95, "div",
|
|
1419
|
-
i0.ɵɵelement(96, "i",
|
|
1424
|
+
i0.ɵɵelementStart(95, "div", 166);
|
|
1425
|
+
i0.ɵɵelement(96, "i", 167);
|
|
1420
1426
|
i0.ɵɵtext(97, " Paths this agent's prompts can write back to the payload ");
|
|
1421
1427
|
i0.ɵɵelementEnd()()()()();
|
|
1422
|
-
i0.ɵɵelementStart(98, "div",
|
|
1423
|
-
i0.ɵɵelement(100, "i",
|
|
1428
|
+
i0.ɵɵelementStart(98, "div", 145)(99, "h3", 146);
|
|
1429
|
+
i0.ɵɵelement(100, "i", 174);
|
|
1424
1430
|
i0.ɵɵtext(101, " Final Payload Validation ");
|
|
1425
1431
|
i0.ɵɵelementEnd();
|
|
1426
|
-
i0.ɵɵelementStart(102, "div",
|
|
1432
|
+
i0.ɵɵelementStart(102, "div", 175)(103, "div", 176)(104, "div", 177)(105, "label", 178);
|
|
1427
1433
|
i0.ɵɵtext(106, "Validation Mode");
|
|
1428
1434
|
i0.ɵɵelementEnd();
|
|
1429
|
-
i0.ɵɵelementStart(107, "p",
|
|
1435
|
+
i0.ɵɵelementStart(107, "p", 179);
|
|
1430
1436
|
i0.ɵɵtext(108, "How to handle validation failures");
|
|
1431
1437
|
i0.ɵɵelementEnd();
|
|
1432
|
-
i0.ɵɵelement(109, "mj-form-field",
|
|
1438
|
+
i0.ɵɵelement(109, "mj-form-field", 180);
|
|
1433
1439
|
i0.ɵɵelementEnd();
|
|
1434
|
-
i0.ɵɵelementStart(110, "div",
|
|
1440
|
+
i0.ɵɵelementStart(110, "div", 177)(111, "label", 178);
|
|
1435
1441
|
i0.ɵɵtext(112, "Max Retries");
|
|
1436
1442
|
i0.ɵɵelementEnd();
|
|
1437
|
-
i0.ɵɵelementStart(113, "p",
|
|
1443
|
+
i0.ɵɵelementStart(113, "p", 179);
|
|
1438
1444
|
i0.ɵɵtext(114, "Maximum validation retry attempts");
|
|
1439
1445
|
i0.ɵɵelementEnd();
|
|
1440
|
-
i0.ɵɵelement(115, "mj-form-field",
|
|
1446
|
+
i0.ɵɵelement(115, "mj-form-field", 181);
|
|
1441
1447
|
i0.ɵɵelementEnd()();
|
|
1442
|
-
i0.ɵɵelementStart(116, "div",
|
|
1443
|
-
i0.ɵɵelement(118, "i",
|
|
1448
|
+
i0.ɵɵelementStart(116, "div", 182)(117, "label", 183);
|
|
1449
|
+
i0.ɵɵelement(118, "i", 184);
|
|
1444
1450
|
i0.ɵɵtext(119, " Validation Schema ");
|
|
1445
1451
|
i0.ɵɵelementEnd();
|
|
1446
|
-
i0.ɵɵelementStart(120, "p",
|
|
1452
|
+
i0.ɵɵelementStart(120, "p", 185);
|
|
1447
1453
|
i0.ɵɵtext(121, " JSON schema or validation rules for the final payload structure ");
|
|
1448
1454
|
i0.ɵɵelementEnd();
|
|
1449
|
-
i0.ɵɵelementStart(122, "div",
|
|
1455
|
+
i0.ɵɵelementStart(122, "div", 186)(123, "mj-code-editor", 187);
|
|
1450
1456
|
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_3_ng_template_31_Template_mj_code_editor_valueChange_123_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("FinalPayloadValidation", $event)); });
|
|
1451
1457
|
i0.ɵɵelementEnd()()()()()();
|
|
1452
1458
|
} if (rf & 2) {
|
|
@@ -1469,15 +1475,15 @@ function AIAgentFormComponentExtended_form_3_ng_template_31_Template(rf, ctx) {
|
|
|
1469
1475
|
i0.ɵɵproperty("value", ctx_r1.record.FinalPayloadValidation || "{}")("readonly", !ctx_r1.EditMode)("lineWrapping", true);
|
|
1470
1476
|
} }
|
|
1471
1477
|
function AIAgentFormComponentExtended_form_3_ng_template_33_Template(rf, ctx) { if (rf & 1) {
|
|
1472
|
-
i0.ɵɵelement(0, "i",
|
|
1478
|
+
i0.ɵɵelement(0, "i", 188);
|
|
1473
1479
|
i0.ɵɵtext(1, " Execution Guardrails ");
|
|
1474
1480
|
} }
|
|
1475
1481
|
function AIAgentFormComponentExtended_form_3_ng_template_34_Template(rf, ctx) { if (rf & 1) {
|
|
1476
|
-
i0.ɵɵelementStart(0, "div",
|
|
1482
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 114);
|
|
1477
1483
|
i0.ɵɵtext(3, " Set limits to prevent runaway agent executions and control resource usage. ");
|
|
1478
1484
|
i0.ɵɵelementEnd()();
|
|
1479
|
-
i0.ɵɵelementStart(4, "div",
|
|
1480
|
-
i0.ɵɵelement(5, "mj-form-field",
|
|
1485
|
+
i0.ɵɵelementStart(4, "div", 189);
|
|
1486
|
+
i0.ɵɵelement(5, "mj-form-field", 190)(6, "mj-form-field", 191)(7, "mj-form-field", 192)(8, "mj-form-field", 193);
|
|
1481
1487
|
i0.ɵɵelementEnd()();
|
|
1482
1488
|
} if (rf & 2) {
|
|
1483
1489
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -1491,12 +1497,12 @@ function AIAgentFormComponentExtended_form_3_ng_template_34_Template(rf, ctx) {
|
|
|
1491
1497
|
i0.ɵɵproperty("EditMode", ctx_r1.EditMode)("record", ctx_r1.record);
|
|
1492
1498
|
} }
|
|
1493
1499
|
function AIAgentFormComponentExtended_form_3_ng_template_36_Template(rf, ctx) { if (rf & 1) {
|
|
1494
|
-
i0.ɵɵelement(0, "i",
|
|
1500
|
+
i0.ɵɵelement(0, "i", 194);
|
|
1495
1501
|
i0.ɵɵtext(1, " Configuration ");
|
|
1496
1502
|
} }
|
|
1497
1503
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
1498
1504
|
const _r40 = i0.ɵɵgetCurrentView();
|
|
1499
|
-
i0.ɵɵelementStart(0, "kendo-dropdownlist",
|
|
1505
|
+
i0.ɵɵelementStart(0, "kendo-dropdownlist", 227);
|
|
1500
1506
|
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_19_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Status, $event) || (ctx_r1.record.Status = $event); return i0.ɵɵresetView($event); });
|
|
1501
1507
|
i0.ɵɵelementEnd();
|
|
1502
1508
|
} if (rf & 2) {
|
|
@@ -1505,7 +1511,7 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_19_Templ
|
|
|
1505
1511
|
i0.ɵɵproperty("data", ctx_r1.statusOptions)("valuePrimitive", true);
|
|
1506
1512
|
} }
|
|
1507
1513
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
1508
|
-
i0.ɵɵelementStart(0, "span",
|
|
1514
|
+
i0.ɵɵelementStart(0, "span", 206);
|
|
1509
1515
|
i0.ɵɵtext(1);
|
|
1510
1516
|
i0.ɵɵelementEnd();
|
|
1511
1517
|
} if (rf & 2) {
|
|
@@ -1515,7 +1521,7 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_20_Templ
|
|
|
1515
1521
|
} }
|
|
1516
1522
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
1517
1523
|
const _r41 = i0.ɵɵgetCurrentView();
|
|
1518
|
-
i0.ɵɵelementStart(0, "kendo-dropdownlist",
|
|
1524
|
+
i0.ɵɵelementStart(0, "kendo-dropdownlist", 228);
|
|
1519
1525
|
i0.ɵɵtwoWayListener("ngModelChange", function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_31_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.TypeID, $event) || (ctx_r1.record.TypeID = $event); return i0.ɵɵresetView($event); });
|
|
1520
1526
|
i0.ɵɵelementEnd();
|
|
1521
1527
|
} if (rf & 2) {
|
|
@@ -1524,7 +1530,7 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_31_Templ
|
|
|
1524
1530
|
i0.ɵɵproperty("data", ctx_r1.agentTypes)("valuePrimitive", true);
|
|
1525
1531
|
} }
|
|
1526
1532
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
1527
|
-
i0.ɵɵelementStart(0, "span",
|
|
1533
|
+
i0.ɵɵelementStart(0, "span", 206);
|
|
1528
1534
|
i0.ɵɵtext(1);
|
|
1529
1535
|
i0.ɵɵelementEnd();
|
|
1530
1536
|
} if (rf & 2) {
|
|
@@ -1533,7 +1539,7 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_32_Templ
|
|
|
1533
1539
|
i0.ɵɵtextInterpolate(ctx_r1.record.Type || "Not Set");
|
|
1534
1540
|
} }
|
|
1535
1541
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1536
|
-
i0.ɵɵelementStart(0, "span",
|
|
1542
|
+
i0.ɵɵelementStart(0, "span", 235);
|
|
1537
1543
|
i0.ɵɵtext(1);
|
|
1538
1544
|
i0.ɵɵelementEnd();
|
|
1539
1545
|
} if (rf & 2) {
|
|
@@ -1542,28 +1548,28 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Cond
|
|
|
1542
1548
|
i0.ɵɵtextInterpolate(ctx_r1.selectedContextCompressionPrompt.Name);
|
|
1543
1549
|
} }
|
|
1544
1550
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1545
|
-
i0.ɵɵelementStart(0, "span",
|
|
1551
|
+
i0.ɵɵelementStart(0, "span", 236);
|
|
1546
1552
|
i0.ɵɵtext(1, "No prompt selected");
|
|
1547
1553
|
i0.ɵɵelementEnd();
|
|
1548
1554
|
} }
|
|
1549
1555
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1550
1556
|
const _r43 = i0.ɵɵgetCurrentView();
|
|
1551
|
-
i0.ɵɵelementStart(0, "button",
|
|
1557
|
+
i0.ɵɵelementStart(0, "button", 241);
|
|
1552
1558
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.clearContextCompressionPrompt()); });
|
|
1553
|
-
i0.ɵɵelement(1, "i",
|
|
1559
|
+
i0.ɵɵelement(1, "i", 242);
|
|
1554
1560
|
i0.ɵɵelementEnd();
|
|
1555
1561
|
} }
|
|
1556
1562
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
1557
1563
|
const _r42 = i0.ɵɵgetCurrentView();
|
|
1558
|
-
i0.ɵɵelementStart(0, "div",
|
|
1559
|
-
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_2_Template, 2, 1, "span",
|
|
1564
|
+
i0.ɵɵelementStart(0, "div", 233)(1, "div", 234);
|
|
1565
|
+
i0.ɵɵtemplate(2, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_2_Template, 2, 1, "span", 235)(3, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_3_Template, 2, 0, "span", 236);
|
|
1560
1566
|
i0.ɵɵelementEnd();
|
|
1561
|
-
i0.ɵɵelementStart(4, "div",
|
|
1567
|
+
i0.ɵɵelementStart(4, "div", 237)(5, "button", 238);
|
|
1562
1568
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r42); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openContextCompressionPromptSelector()); });
|
|
1563
|
-
i0.ɵɵelement(6, "i",
|
|
1569
|
+
i0.ɵɵelement(6, "i", 239);
|
|
1564
1570
|
i0.ɵɵtext(7);
|
|
1565
1571
|
i0.ɵɵelementEnd();
|
|
1566
|
-
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_8_Template, 2, 0, "button",
|
|
1572
|
+
i0.ɵɵtemplate(8, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Conditional_8_Template, 2, 0, "button", 240);
|
|
1567
1573
|
i0.ɵɵelementEnd()();
|
|
1568
1574
|
} if (rf & 2) {
|
|
1569
1575
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -1575,7 +1581,7 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Cond
|
|
|
1575
1581
|
i0.ɵɵconditional(ctx_r1.selectedContextCompressionPrompt ? 8 : -1);
|
|
1576
1582
|
} }
|
|
1577
1583
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
1578
|
-
i0.ɵɵelementStart(0, "span",
|
|
1584
|
+
i0.ɵɵelementStart(0, "span", 206);
|
|
1579
1585
|
i0.ɵɵtext(1);
|
|
1580
1586
|
i0.ɵɵelementEnd();
|
|
1581
1587
|
} if (rf & 2) {
|
|
@@ -1584,41 +1590,41 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Cond
|
|
|
1584
1590
|
i0.ɵɵtextInterpolate((ctx_r1.selectedContextCompressionPrompt == null ? null : ctx_r1.selectedContextCompressionPrompt.Name) || ctx_r1.record.ContextCompressionPrompt || "Not Set");
|
|
1585
1591
|
} }
|
|
1586
1592
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Template(rf, ctx) { if (rf & 1) {
|
|
1587
|
-
i0.ɵɵelementStart(0, "div",
|
|
1588
|
-
i0.ɵɵelement(3, "i",
|
|
1593
|
+
i0.ɵɵelementStart(0, "div", 199)(1, "div", 200)(2, "div", 201);
|
|
1594
|
+
i0.ɵɵelement(3, "i", 229);
|
|
1589
1595
|
i0.ɵɵelementEnd();
|
|
1590
|
-
i0.ɵɵelementStart(4, "div",
|
|
1596
|
+
i0.ɵɵelementStart(4, "div", 203)(5, "h4");
|
|
1591
1597
|
i0.ɵɵtext(6, "Message Threshold");
|
|
1592
1598
|
i0.ɵɵelementEnd();
|
|
1593
1599
|
i0.ɵɵelementStart(7, "p");
|
|
1594
1600
|
i0.ɵɵtext(8, "Messages before compression triggers");
|
|
1595
1601
|
i0.ɵɵelementEnd()()();
|
|
1596
|
-
i0.ɵɵelementStart(9, "div",
|
|
1597
|
-
i0.ɵɵelement(10, "mj-form-field",
|
|
1602
|
+
i0.ɵɵelementStart(9, "div", 204);
|
|
1603
|
+
i0.ɵɵelement(10, "mj-form-field", 230);
|
|
1598
1604
|
i0.ɵɵelementEnd()();
|
|
1599
|
-
i0.ɵɵelementStart(11, "div",
|
|
1600
|
-
i0.ɵɵelement(14, "i",
|
|
1605
|
+
i0.ɵɵelementStart(11, "div", 199)(12, "div", 200)(13, "div", 201);
|
|
1606
|
+
i0.ɵɵelement(14, "i", 231);
|
|
1601
1607
|
i0.ɵɵelementEnd();
|
|
1602
|
-
i0.ɵɵelementStart(15, "div",
|
|
1608
|
+
i0.ɵɵelementStart(15, "div", 203)(16, "h4");
|
|
1603
1609
|
i0.ɵɵtext(17, "Messages to Keep");
|
|
1604
1610
|
i0.ɵɵelementEnd();
|
|
1605
1611
|
i0.ɵɵelementStart(18, "p");
|
|
1606
1612
|
i0.ɵɵtext(19, "Recent messages to retain uncompressed");
|
|
1607
1613
|
i0.ɵɵelementEnd()()();
|
|
1608
|
-
i0.ɵɵelementStart(20, "div",
|
|
1609
|
-
i0.ɵɵelement(21, "mj-form-field",
|
|
1614
|
+
i0.ɵɵelementStart(20, "div", 204);
|
|
1615
|
+
i0.ɵɵelement(21, "mj-form-field", 232);
|
|
1610
1616
|
i0.ɵɵelementEnd()();
|
|
1611
|
-
i0.ɵɵelementStart(22, "div",
|
|
1612
|
-
i0.ɵɵelement(25, "i",
|
|
1617
|
+
i0.ɵɵelementStart(22, "div", 199)(23, "div", 200)(24, "div", 201);
|
|
1618
|
+
i0.ɵɵelement(25, "i", 134);
|
|
1613
1619
|
i0.ɵɵelementEnd();
|
|
1614
|
-
i0.ɵɵelementStart(26, "div",
|
|
1620
|
+
i0.ɵɵelementStart(26, "div", 203)(27, "h4");
|
|
1615
1621
|
i0.ɵɵtext(28, "Compression Prompt");
|
|
1616
1622
|
i0.ɵɵelementEnd();
|
|
1617
1623
|
i0.ɵɵelementStart(29, "p");
|
|
1618
1624
|
i0.ɵɵtext(30, "Prompt used for summarization");
|
|
1619
1625
|
i0.ɵɵelementEnd()()();
|
|
1620
|
-
i0.ɵɵelementStart(31, "div",
|
|
1621
|
-
i0.ɵɵtemplate(32, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Template, 9, 3, "div",
|
|
1626
|
+
i0.ɵɵelementStart(31, "div", 204);
|
|
1627
|
+
i0.ɵɵtemplate(32, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_32_Template, 9, 3, "div", 233)(33, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Conditional_33_Template, 2, 1, "span", 206);
|
|
1622
1628
|
i0.ɵɵelementEnd()();
|
|
1623
1629
|
} if (rf & 2) {
|
|
1624
1630
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -1631,166 +1637,166 @@ function AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Temp
|
|
|
1631
1637
|
} }
|
|
1632
1638
|
function AIAgentFormComponentExtended_form_3_ng_template_37_Template(rf, ctx) { if (rf & 1) {
|
|
1633
1639
|
const _r39 = i0.ɵɵgetCurrentView();
|
|
1634
|
-
i0.ɵɵelementStart(0, "div",
|
|
1640
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "div", 91)(2, "div", 114);
|
|
1635
1641
|
i0.ɵɵtext(3, " Configure agent behavior, execution settings, and advanced features. ");
|
|
1636
1642
|
i0.ɵɵelementEnd()();
|
|
1637
|
-
i0.ɵɵelementStart(4, "div",
|
|
1638
|
-
i0.ɵɵelement(6, "i",
|
|
1643
|
+
i0.ɵɵelementStart(4, "div", 195)(5, "h3", 196);
|
|
1644
|
+
i0.ɵɵelement(6, "i", 197);
|
|
1639
1645
|
i0.ɵɵtext(7, " Identity & Behavior ");
|
|
1640
1646
|
i0.ɵɵelementEnd();
|
|
1641
|
-
i0.ɵɵelementStart(8, "div",
|
|
1642
|
-
i0.ɵɵelement(12, "i",
|
|
1647
|
+
i0.ɵɵelementStart(8, "div", 198)(9, "div", 199)(10, "div", 200)(11, "div", 201);
|
|
1648
|
+
i0.ɵɵelement(12, "i", 202);
|
|
1643
1649
|
i0.ɵɵelementEnd();
|
|
1644
|
-
i0.ɵɵelementStart(13, "div",
|
|
1650
|
+
i0.ɵɵelementStart(13, "div", 203)(14, "h4");
|
|
1645
1651
|
i0.ɵɵtext(15, "Agent Status");
|
|
1646
1652
|
i0.ɵɵelementEnd();
|
|
1647
1653
|
i0.ɵɵelementStart(16, "p");
|
|
1648
1654
|
i0.ɵɵtext(17, "Current availability and operational status");
|
|
1649
1655
|
i0.ɵɵelementEnd()()();
|
|
1650
|
-
i0.ɵɵelementStart(18, "div",
|
|
1651
|
-
i0.ɵɵtemplate(19, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_19_Template, 1, 3, "kendo-dropdownlist",
|
|
1656
|
+
i0.ɵɵelementStart(18, "div", 204);
|
|
1657
|
+
i0.ɵɵtemplate(19, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_19_Template, 1, 3, "kendo-dropdownlist", 205)(20, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_20_Template, 2, 1, "span", 206);
|
|
1652
1658
|
i0.ɵɵelementEnd()();
|
|
1653
|
-
i0.ɵɵelementStart(21, "div",
|
|
1654
|
-
i0.ɵɵelement(24, "i",
|
|
1659
|
+
i0.ɵɵelementStart(21, "div", 199)(22, "div", 200)(23, "div", 201);
|
|
1660
|
+
i0.ɵɵelement(24, "i", 33);
|
|
1655
1661
|
i0.ɵɵelementEnd();
|
|
1656
|
-
i0.ɵɵelementStart(25, "div",
|
|
1662
|
+
i0.ɵɵelementStart(25, "div", 203)(26, "h4");
|
|
1657
1663
|
i0.ɵɵtext(27, "Agent Type");
|
|
1658
1664
|
i0.ɵɵelementEnd();
|
|
1659
1665
|
i0.ɵɵelementStart(28, "p");
|
|
1660
1666
|
i0.ɵɵtext(29, "Category and system-level behavior");
|
|
1661
1667
|
i0.ɵɵelementEnd()()();
|
|
1662
|
-
i0.ɵɵelementStart(30, "div",
|
|
1663
|
-
i0.ɵɵtemplate(31, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_31_Template, 1, 3, "kendo-dropdownlist",
|
|
1668
|
+
i0.ɵɵelementStart(30, "div", 204);
|
|
1669
|
+
i0.ɵɵtemplate(31, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_31_Template, 1, 3, "kendo-dropdownlist", 207)(32, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_32_Template, 2, 1, "span", 206);
|
|
1664
1670
|
i0.ɵɵelementEnd()();
|
|
1665
|
-
i0.ɵɵelementStart(33, "div",
|
|
1666
|
-
i0.ɵɵelement(36, "i",
|
|
1671
|
+
i0.ɵɵelementStart(33, "div", 199)(34, "div", 200)(35, "div", 201);
|
|
1672
|
+
i0.ɵɵelement(36, "i", 87);
|
|
1667
1673
|
i0.ɵɵelementEnd();
|
|
1668
|
-
i0.ɵɵelementStart(37, "div",
|
|
1674
|
+
i0.ɵɵelementStart(37, "div", 203)(38, "h4");
|
|
1669
1675
|
i0.ɵɵtext(39, "Expose as Action");
|
|
1670
1676
|
i0.ɵɵelementEnd();
|
|
1671
1677
|
i0.ɵɵelementStart(40, "p");
|
|
1672
1678
|
i0.ɵɵtext(41, "Make available as an action for other agents");
|
|
1673
1679
|
i0.ɵɵelementEnd()()();
|
|
1674
|
-
i0.ɵɵelementStart(42, "div",
|
|
1675
|
-
i0.ɵɵelement(43, "mj-form-field",
|
|
1680
|
+
i0.ɵɵelementStart(42, "div", 204);
|
|
1681
|
+
i0.ɵɵelement(43, "mj-form-field", 208);
|
|
1676
1682
|
i0.ɵɵelementEnd()();
|
|
1677
|
-
i0.ɵɵelementStart(44, "div",
|
|
1678
|
-
i0.ɵɵelement(47, "i",
|
|
1683
|
+
i0.ɵɵelementStart(44, "div", 209)(45, "div", 200)(46, "div", 201);
|
|
1684
|
+
i0.ɵɵelement(47, "i", 210);
|
|
1679
1685
|
i0.ɵɵelementEnd();
|
|
1680
|
-
i0.ɵɵelementStart(48, "div",
|
|
1686
|
+
i0.ɵɵelementStart(48, "div", 203)(49, "h4");
|
|
1681
1687
|
i0.ɵɵtext(50, "Description");
|
|
1682
1688
|
i0.ɵɵelementEnd();
|
|
1683
1689
|
i0.ɵɵelementStart(51, "p");
|
|
1684
1690
|
i0.ɵɵtext(52, "Detailed agent description and purpose");
|
|
1685
1691
|
i0.ɵɵelementEnd()()();
|
|
1686
|
-
i0.ɵɵelementStart(53, "div",
|
|
1687
|
-
i0.ɵɵelement(54, "mj-form-field",
|
|
1692
|
+
i0.ɵɵelementStart(53, "div", 204);
|
|
1693
|
+
i0.ɵɵelement(54, "mj-form-field", 211);
|
|
1688
1694
|
i0.ɵɵelementEnd()()()();
|
|
1689
|
-
i0.ɵɵelementStart(55, "div",
|
|
1690
|
-
i0.ɵɵelement(57, "i",
|
|
1695
|
+
i0.ɵɵelementStart(55, "div", 195)(56, "h3", 196);
|
|
1696
|
+
i0.ɵɵelement(57, "i", 35);
|
|
1691
1697
|
i0.ɵɵtext(58, " Execution Settings ");
|
|
1692
1698
|
i0.ɵɵelementEnd();
|
|
1693
|
-
i0.ɵɵelementStart(59, "div",
|
|
1694
|
-
i0.ɵɵelement(63, "i",
|
|
1699
|
+
i0.ɵɵelementStart(59, "div", 198)(60, "div", 199)(61, "div", 200)(62, "div", 201);
|
|
1700
|
+
i0.ɵɵelement(63, "i", 212);
|
|
1695
1701
|
i0.ɵɵelementEnd();
|
|
1696
|
-
i0.ɵɵelementStart(64, "div",
|
|
1702
|
+
i0.ɵɵelementStart(64, "div", 203)(65, "h4");
|
|
1697
1703
|
i0.ɵɵtext(66, "Execution Mode");
|
|
1698
1704
|
i0.ɵɵelementEnd();
|
|
1699
1705
|
i0.ɵɵelementStart(67, "p");
|
|
1700
1706
|
i0.ɵɵtext(68, "How sub-agents are executed");
|
|
1701
1707
|
i0.ɵɵelementEnd()()();
|
|
1702
|
-
i0.ɵɵelementStart(69, "div",
|
|
1703
|
-
i0.ɵɵelement(70, "mj-form-field",
|
|
1708
|
+
i0.ɵɵelementStart(69, "div", 204);
|
|
1709
|
+
i0.ɵɵelement(70, "mj-form-field", 213);
|
|
1704
1710
|
i0.ɵɵelementEnd()();
|
|
1705
|
-
i0.ɵɵelementStart(71, "div",
|
|
1706
|
-
i0.ɵɵelement(74, "i",
|
|
1711
|
+
i0.ɵɵelementStart(71, "div", 199)(72, "div", 200)(73, "div", 201);
|
|
1712
|
+
i0.ɵɵelement(74, "i", 214);
|
|
1707
1713
|
i0.ɵɵelementEnd();
|
|
1708
|
-
i0.ɵɵelementStart(75, "div",
|
|
1714
|
+
i0.ɵɵelementStart(75, "div", 203)(76, "h4");
|
|
1709
1715
|
i0.ɵɵtext(77, "Execution Order");
|
|
1710
1716
|
i0.ɵɵelementEnd();
|
|
1711
1717
|
i0.ɵɵelementStart(78, "p");
|
|
1712
1718
|
i0.ɵɵtext(79, "Order when run with siblings");
|
|
1713
1719
|
i0.ɵɵelementEnd()()();
|
|
1714
|
-
i0.ɵɵelementStart(80, "div",
|
|
1715
|
-
i0.ɵɵelement(81, "mj-form-field",
|
|
1720
|
+
i0.ɵɵelementStart(80, "div", 204);
|
|
1721
|
+
i0.ɵɵelement(81, "mj-form-field", 215);
|
|
1716
1722
|
i0.ɵɵelementEnd()();
|
|
1717
|
-
i0.ɵɵelementStart(82, "div",
|
|
1718
|
-
i0.ɵɵelement(85, "i",
|
|
1723
|
+
i0.ɵɵelementStart(82, "div", 199)(83, "div", 200)(84, "div", 201);
|
|
1724
|
+
i0.ɵɵelement(85, "i", 216);
|
|
1719
1725
|
i0.ɵɵelementEnd();
|
|
1720
|
-
i0.ɵɵelementStart(86, "div",
|
|
1726
|
+
i0.ɵɵelementStart(86, "div", 203)(87, "h4");
|
|
1721
1727
|
i0.ɵɵtext(88, "Default Effort Level");
|
|
1722
1728
|
i0.ɵɵelementEnd();
|
|
1723
1729
|
i0.ɵɵelementStart(89, "p");
|
|
1724
1730
|
i0.ɵɵtext(90, "Default effort level for all prompts (1-100)");
|
|
1725
1731
|
i0.ɵɵelementEnd()()();
|
|
1726
|
-
i0.ɵɵelementStart(91, "div",
|
|
1727
|
-
i0.ɵɵelement(92, "mj-form-field",
|
|
1728
|
-
i0.ɵɵelementStart(93, "div",
|
|
1729
|
-
i0.ɵɵelement(94, "i",
|
|
1732
|
+
i0.ɵɵelementStart(91, "div", 204);
|
|
1733
|
+
i0.ɵɵelement(92, "mj-form-field", 217);
|
|
1734
|
+
i0.ɵɵelementStart(93, "div", 218);
|
|
1735
|
+
i0.ɵɵelement(94, "i", 167);
|
|
1730
1736
|
i0.ɵɵtext(95, " Higher values request more thorough reasoning (1=minimal, 100=maximum) ");
|
|
1731
1737
|
i0.ɵɵelementEnd()()();
|
|
1732
|
-
i0.ɵɵelementStart(96, "div",
|
|
1733
|
-
i0.ɵɵelement(99, "i",
|
|
1738
|
+
i0.ɵɵelementStart(96, "div", 199)(97, "div", 200)(98, "div", 201);
|
|
1739
|
+
i0.ɵɵelement(99, "i", 184);
|
|
1734
1740
|
i0.ɵɵelementEnd();
|
|
1735
|
-
i0.ɵɵelementStart(100, "div",
|
|
1741
|
+
i0.ɵɵelementStart(100, "div", 203)(101, "h4");
|
|
1736
1742
|
i0.ɵɵtext(102, "Driver Class");
|
|
1737
1743
|
i0.ɵɵelementEnd();
|
|
1738
1744
|
i0.ɵɵelementStart(103, "p");
|
|
1739
1745
|
i0.ɵɵtext(104, "Custom implementation class");
|
|
1740
1746
|
i0.ɵɵelementEnd()()();
|
|
1741
|
-
i0.ɵɵelementStart(105, "div",
|
|
1742
|
-
i0.ɵɵelement(106, "mj-form-field",
|
|
1747
|
+
i0.ɵɵelementStart(105, "div", 204);
|
|
1748
|
+
i0.ɵɵelement(106, "mj-form-field", 219);
|
|
1743
1749
|
i0.ɵɵelementEnd()()()();
|
|
1744
|
-
i0.ɵɵelementStart(107, "div",
|
|
1745
|
-
i0.ɵɵelement(109, "i",
|
|
1750
|
+
i0.ɵɵelementStart(107, "div", 195)(108, "h3", 196);
|
|
1751
|
+
i0.ɵɵelement(109, "i", 220);
|
|
1746
1752
|
i0.ɵɵtext(110, " Visual Identity ");
|
|
1747
1753
|
i0.ɵɵelementEnd();
|
|
1748
|
-
i0.ɵɵelementStart(111, "div",
|
|
1749
|
-
i0.ɵɵelement(115, "i",
|
|
1754
|
+
i0.ɵɵelementStart(111, "div", 198)(112, "div", 199)(113, "div", 200)(114, "div", 201);
|
|
1755
|
+
i0.ɵɵelement(115, "i", 221);
|
|
1750
1756
|
i0.ɵɵelementEnd();
|
|
1751
|
-
i0.ɵɵelementStart(116, "div",
|
|
1757
|
+
i0.ɵɵelementStart(116, "div", 203)(117, "h4");
|
|
1752
1758
|
i0.ɵɵtext(118, "Icon Class");
|
|
1753
1759
|
i0.ɵɵelementEnd();
|
|
1754
1760
|
i0.ɵɵelementStart(119, "p");
|
|
1755
1761
|
i0.ɵɵtext(120, "Font Awesome icon class");
|
|
1756
1762
|
i0.ɵɵelementEnd()()();
|
|
1757
|
-
i0.ɵɵelementStart(121, "div",
|
|
1758
|
-
i0.ɵɵelement(122, "mj-form-field",
|
|
1759
|
-
i0.ɵɵelementStart(123, "div",
|
|
1760
|
-
i0.ɵɵelement(124, "i",
|
|
1763
|
+
i0.ɵɵelementStart(121, "div", 204);
|
|
1764
|
+
i0.ɵɵelement(122, "mj-form-field", 222);
|
|
1765
|
+
i0.ɵɵelementStart(123, "div", 218);
|
|
1766
|
+
i0.ɵɵelement(124, "i", 167);
|
|
1761
1767
|
i0.ɵɵtext(125, " Example: ");
|
|
1762
1768
|
i0.ɵɵelementStart(126, "code");
|
|
1763
1769
|
i0.ɵɵtext(127, "fa-solid fa-robot");
|
|
1764
1770
|
i0.ɵɵelementEnd()()()();
|
|
1765
|
-
i0.ɵɵelementStart(128, "div",
|
|
1766
|
-
i0.ɵɵelement(131, "i",
|
|
1771
|
+
i0.ɵɵelementStart(128, "div", 199)(129, "div", 200)(130, "div", 201);
|
|
1772
|
+
i0.ɵɵelement(131, "i", 223);
|
|
1767
1773
|
i0.ɵɵelementEnd();
|
|
1768
|
-
i0.ɵɵelementStart(132, "div",
|
|
1774
|
+
i0.ɵɵelementStart(132, "div", 203)(133, "h4");
|
|
1769
1775
|
i0.ɵɵtext(134, "Logo URL");
|
|
1770
1776
|
i0.ɵɵelementEnd();
|
|
1771
1777
|
i0.ɵɵelementStart(135, "p");
|
|
1772
1778
|
i0.ɵɵtext(136, "URL for agent logo image");
|
|
1773
1779
|
i0.ɵɵelementEnd()()();
|
|
1774
|
-
i0.ɵɵelementStart(137, "div",
|
|
1775
|
-
i0.ɵɵelement(138, "mj-form-field",
|
|
1776
|
-
i0.ɵɵelementStart(139, "div",
|
|
1777
|
-
i0.ɵɵelement(140, "i",
|
|
1780
|
+
i0.ɵɵelementStart(137, "div", 204);
|
|
1781
|
+
i0.ɵɵelement(138, "mj-form-field", 224);
|
|
1782
|
+
i0.ɵɵelementStart(139, "div", 218);
|
|
1783
|
+
i0.ɵɵelement(140, "i", 167);
|
|
1778
1784
|
i0.ɵɵtext(141, " Takes precedence over Icon Class ");
|
|
1779
1785
|
i0.ɵɵelementEnd()()()()();
|
|
1780
|
-
i0.ɵɵelementStart(142, "div",
|
|
1781
|
-
i0.ɵɵelement(144, "i",
|
|
1786
|
+
i0.ɵɵelementStart(142, "div", 195)(143, "h3", 196);
|
|
1787
|
+
i0.ɵɵelement(144, "i", 225);
|
|
1782
1788
|
i0.ɵɵtext(145, " Context Compression ");
|
|
1783
1789
|
i0.ɵɵelementEnd();
|
|
1784
|
-
i0.ɵɵelementStart(146, "div",
|
|
1785
|
-
i0.ɵɵelement(150, "i",
|
|
1790
|
+
i0.ɵɵelementStart(146, "div", 198)(147, "div", 209)(148, "div", 200)(149, "div", 201);
|
|
1791
|
+
i0.ɵɵelement(150, "i", 202);
|
|
1786
1792
|
i0.ɵɵelementEnd();
|
|
1787
|
-
i0.ɵɵelementStart(151, "div",
|
|
1793
|
+
i0.ɵɵelementStart(151, "div", 203)(152, "h4");
|
|
1788
1794
|
i0.ɵɵtext(153, "Enable Context Compression");
|
|
1789
1795
|
i0.ɵɵelementEnd();
|
|
1790
1796
|
i0.ɵɵelementStart(154, "p");
|
|
1791
1797
|
i0.ɵɵtext(155, "Automatically compress conversation context when message threshold is reached");
|
|
1792
1798
|
i0.ɵɵelementEnd()()();
|
|
1793
|
-
i0.ɵɵelementStart(156, "div",
|
|
1799
|
+
i0.ɵɵelementStart(156, "div", 204)(157, "mj-form-field", 226);
|
|
1794
1800
|
i0.ɵɵlistener("valueChange", function AIAgentFormComponentExtended_form_3_ng_template_37_Template_mj_form_field_valueChange_157_listener($event) { i0.ɵɵrestoreView(_r39); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContextCompressionToggle($event)); });
|
|
1795
1801
|
i0.ɵɵelementEnd()()();
|
|
1796
1802
|
i0.ɵɵtemplate(158, AIAgentFormComponentExtended_form_3_ng_template_37_Conditional_158_Template, 34, 5);
|
|
@@ -1835,21 +1841,21 @@ function AIAgentFormComponentExtended_form_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
1835
1841
|
i0.ɵɵtemplate(13, AIAgentFormComponentExtended_form_3_Conditional_13_Template, 3, 3, "span", 18)(14, AIAgentFormComponentExtended_form_3_Conditional_14_Template, 2, 1, "span", 19)(15, AIAgentFormComponentExtended_form_3_Conditional_15_Template, 3, 1, "span", 20);
|
|
1836
1842
|
i0.ɵɵelementEnd()()();
|
|
1837
1843
|
i0.ɵɵelementStart(16, "div", 21);
|
|
1838
|
-
i0.ɵɵtemplate(17, AIAgentFormComponentExtended_form_3_Conditional_17_Template,
|
|
1839
|
-
i0.ɵɵelementStart(18, "button",
|
|
1844
|
+
i0.ɵɵtemplate(17, AIAgentFormComponentExtended_form_3_Conditional_17_Template, 6, 1);
|
|
1845
|
+
i0.ɵɵelementStart(18, "button", 22);
|
|
1840
1846
|
i0.ɵɵlistener("click", function AIAgentFormComponentExtended_form_3_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshRelatedData()); });
|
|
1841
|
-
i0.ɵɵelement(19, "i",
|
|
1847
|
+
i0.ɵɵelement(19, "i", 23);
|
|
1842
1848
|
i0.ɵɵelementEnd()()()();
|
|
1843
|
-
i0.ɵɵelementStart(20, "div",
|
|
1844
|
-
i0.ɵɵtemplate(22, AIAgentFormComponentExtended_form_3_Conditional_22_Template, 3, 1, "kendo-panelbar-item",
|
|
1845
|
-
i0.ɵɵelementStart(29, "kendo-panelbar-item",
|
|
1846
|
-
i0.ɵɵtemplate(30, AIAgentFormComponentExtended_form_3_ng_template_30_Template, 2, 0, "ng-template",
|
|
1849
|
+
i0.ɵɵelementStart(20, "div", 24)(21, "kendo-panelbar", 25);
|
|
1850
|
+
i0.ɵɵtemplate(22, AIAgentFormComponentExtended_form_3_Conditional_22_Template, 3, 1, "kendo-panelbar-item", 26)(23, AIAgentFormComponentExtended_form_3_Conditional_23_Template, 3, 2, "kendo-panelbar-item", 27)(24, AIAgentFormComponentExtended_form_3_Conditional_24_Template, 3, 2, "kendo-panelbar-item", 27)(25, AIAgentFormComponentExtended_form_3_Conditional_25_Template, 3, 2, "kendo-panelbar-item", 27)(26, AIAgentFormComponentExtended_form_3_Conditional_26_Template, 3, 2, "kendo-panelbar-item", 27)(27, AIAgentFormComponentExtended_form_3_Conditional_27_Template, 3, 2, "kendo-panelbar-item", 27)(28, AIAgentFormComponentExtended_form_3_Conditional_28_Template, 3, 2, "kendo-panelbar-item", 27);
|
|
1851
|
+
i0.ɵɵelementStart(29, "kendo-panelbar-item", 26);
|
|
1852
|
+
i0.ɵɵtemplate(30, AIAgentFormComponentExtended_form_3_ng_template_30_Template, 2, 0, "ng-template", 28)(31, AIAgentFormComponentExtended_form_3_ng_template_31_Template, 124, 21, "ng-template", 29);
|
|
1847
1853
|
i0.ɵɵelementEnd();
|
|
1848
|
-
i0.ɵɵelementStart(32, "kendo-panelbar-item",
|
|
1849
|
-
i0.ɵɵtemplate(33, AIAgentFormComponentExtended_form_3_ng_template_33_Template, 2, 0, "ng-template",
|
|
1854
|
+
i0.ɵɵelementStart(32, "kendo-panelbar-item", 26);
|
|
1855
|
+
i0.ɵɵtemplate(33, AIAgentFormComponentExtended_form_3_ng_template_33_Template, 2, 0, "ng-template", 28)(34, AIAgentFormComponentExtended_form_3_ng_template_34_Template, 9, 8, "ng-template", 29);
|
|
1850
1856
|
i0.ɵɵelementEnd();
|
|
1851
|
-
i0.ɵɵelementStart(35, "kendo-panelbar-item",
|
|
1852
|
-
i0.ɵɵtemplate(36, AIAgentFormComponentExtended_form_3_ng_template_36_Template, 2, 0, "ng-template",
|
|
1857
|
+
i0.ɵɵelementStart(35, "kendo-panelbar-item", 26);
|
|
1858
|
+
i0.ɵɵtemplate(36, AIAgentFormComponentExtended_form_3_ng_template_36_Template, 2, 0, "ng-template", 28)(37, AIAgentFormComponentExtended_form_3_ng_template_37_Template, 159, 21, "ng-template", 29);
|
|
1853
1859
|
i0.ɵɵelementEnd()()()();
|
|
1854
1860
|
} if (rf & 2) {
|
|
1855
1861
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -2509,6 +2515,24 @@ let AIAgentFormComponentExtended = class AIAgentFormComponentExtended extends AI
|
|
|
2509
2515
|
// Don't pass viewContainerRef so window is top-level
|
|
2510
2516
|
this.testHarnessService.openForAgent(this.record.ID);
|
|
2511
2517
|
}
|
|
2518
|
+
/**
|
|
2519
|
+
* Opens the permissions management dialog for this agent.
|
|
2520
|
+
* Allows viewing and editing user/role-based permissions for the agent.
|
|
2521
|
+
*/
|
|
2522
|
+
openPermissionsDialog() {
|
|
2523
|
+
if (!this.record?.ID) {
|
|
2524
|
+
MJNotificationService.Instance.CreateSimpleNotification('Please save the AI agent before managing permissions', 'warning', 4000);
|
|
2525
|
+
return;
|
|
2526
|
+
}
|
|
2527
|
+
const dialogRef = this.dialogService.open({
|
|
2528
|
+
content: AgentPermissionsDialogComponent,
|
|
2529
|
+
width: 900,
|
|
2530
|
+
height: 600
|
|
2531
|
+
});
|
|
2532
|
+
const dialog = dialogRef.content.instance;
|
|
2533
|
+
dialog.agent = this.record;
|
|
2534
|
+
dialog.dialogRef = dialogRef;
|
|
2535
|
+
}
|
|
2512
2536
|
/**
|
|
2513
2537
|
* Returns the appropriate color for the agent status badge.
|
|
2514
2538
|
* Uses standard color coding: green for active, yellow for pending, gray for disabled.
|
|
@@ -3759,7 +3783,7 @@ let AIAgentFormComponentExtended = class AIAgentFormComponentExtended extends AI
|
|
|
3759
3783
|
} if (rf & 2) {
|
|
3760
3784
|
let _t;
|
|
3761
3785
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customSectionContainer = _t.first);
|
|
3762
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 1, consts: [["form", "ngForm"], ["customSectionContainer", ""], [1, "record-form-container"], ["kendoDialogContainer", ""], ["kendoWindowContainer", ""], ["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, "keepItemContent"], [3, "expanded"], [3, "expanded", "disabled"], ["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"], [3, "stateChange", "expanded"], [1, "fa-solid", "fa-puzzle-piece"], [1, "panel-content", "custom-agent-type-section"], [1, "fa-solid", "fa-history"], [2, "margin-left", "8px"], [1, "fa-solid", "fa-spinner", "fa-spin", 2, "font-size", "12px"], [1, "panel-content", "execution-history-panel"], [1, "empty-state"], [1, "execution-history-list"], [1, "execution-card", 3, "expanded"], [1, "view-more-item"], [1, "execution-card"], [1, "execution-header", 3, "click"], [1, "execution-left-section"], [1, "execution-status"], [1, "status-indicator"], [1, "execution-info"], [1, "execution-title"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "execution-date"], [1, "execution-metrics"], [1, "metric-item"], [1, "execution-actions"], ["title", "View details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "execution-expanded-content"], [1, "fa-solid", "fa-cog"], [1, "metric-label"], [1, "metric-value"], [1, "fa-solid", "fa-stopwatch"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-microchip"], [1, "fa-solid", "fa-dollar-sign"], [1, "detailed-metrics"], [1, "metrics-grid"], [1, "metric-detail"], [1, "metric-info"], [1, "metric-title"], [1, "metric-data"], [1, "result-section"], [1, "error-section"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-calculator"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-file-text"], ["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-bolt"], [1, "panel-content"], [1, "loading-state"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "section-header"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", "size", "small"], [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, "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, "section-description"], ["kendoButton", "", "themeColor", "secondary", "size", "small", 3, "click"], ["kendoButton", "", "themeColor", "secondary", 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"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Advanced settings"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove sub-agent"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Advanced settings", 3, "click"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove sub-agent", 3, "click"], [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-exchange-alt"], [1, "payload-section"], [1, "payload-section-title"], [1, "fa-solid", "fa-target"], [1, "payload-field-container"], [1, "payload-field-info"], [1, "payload-field-label"], [1, "payload-field-description"], [1, "payload-field-input"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], [1, "payload-field-example"], [1, "fa-solid", "fa-lightbulb"], [1, "fa-solid", "fa-route"], [1, "payload-paths-grid"], [1, "payload-path-card"], [1, "payload-path-header"], [1, "payload-path-icon", "downstream"], [1, "fa-solid", "fa-arrow-down"], [1, "payload-path-info"], [1, "payload-path-content"], [1, "json-editor-container"], ["language", "json", 2, "height", "100px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "payload-path-hint"], [1, "fa-solid", "fa-info-circle"], [1, "payload-path-icon", "upstream"], [1, "fa-solid", "fa-arrow-up"], [1, "payload-path-icon", "self-read"], [1, "fa-solid", "fa-eye"], [1, "payload-path-icon", "self-write"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-shield-check"], [1, "payload-validation-container"], [1, "payload-validation-settings"], [1, "validation-field-group"], [1, "validation-field-label"], [1, "validation-field-description"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], [1, "payload-validation-schema"], [1, "validation-schema-label"], [1, "fa-solid", "fa-code"], [1, "validation-schema-description"], [1, "validation-schema-editor"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [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"], [1, "fa-solid", "fa-cogs"], [1, "config-section"], [1, "config-section-title"], [1, "fa-solid", "fa-id-card"], [1, "config-grid"], [1, "config-card"], [1, "config-card-header"], [1, "config-card-icon"], [1, "fa-solid", "fa-toggle-on"], [1, "config-card-info"], [1, "config-card-content"], ["textField", "text", "valueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModel", "data", "valuePrimitive"], [1, "config-field-display"], ["textField", "Name", "valueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModel", "data", "valuePrimitive"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "", 3, "EditMode", "record"], [1, "config-card", "full-width"], [1, "fa-solid", "fa-align-left"], ["FieldName", "Description", "Type", "textarea", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], [1, "fa-solid", "fa-layer-group"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-sort-numeric-down"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-tachometer-alt"], ["FieldName", "DefaultPromptEffortLevel", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "config-card-hint"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-palette"], [1, "fa-solid", "fa-icons"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-image"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "", 3, "valueChange", "EditMode", "record"], ["textField", "text", "valueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], ["textField", "Name", "valueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], [1, "fa-solid", "fa-hashtag"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-save"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "prompt-selector-container"], [1, "prompt-display"], [1, "prompt-name"], [1, "no-prompt"], [1, "prompt-actions"], ["type", "button", "kendoButton", "", "fillMode", "outline", "size", "small", 1, "prompt-select-btn", 3, "click"], [1, "fa-solid", "fa-search"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Clear selection", 1, "prompt-clear-btn"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Clear selection", 1, "prompt-clear-btn", 3, "click"], [1, "fa-solid", "fa-times"]], template: function AIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
3786
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 1, consts: [["form", "ngForm"], ["customSectionContainer", ""], [1, "record-form-container"], ["kendoDialogContainer", ""], ["kendoWindowContainer", ""], ["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", "", "fillMode", "outline", "size", "small", "title", "Refresh all data", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "form-content"], [3, "keepItemContent"], [3, "expanded"], [3, "expanded", "disabled"], ["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"], ["kendoButton", "", "size", "large", "title", "Manage permissions", 3, "click"], [1, "fa-solid", "fa-lock"], [3, "stateChange", "expanded"], [1, "fa-solid", "fa-puzzle-piece"], [1, "panel-content", "custom-agent-type-section"], [1, "fa-solid", "fa-history"], [2, "margin-left", "8px"], [1, "fa-solid", "fa-spinner", "fa-spin", 2, "font-size", "12px"], [1, "panel-content", "execution-history-panel"], [1, "empty-state"], [1, "execution-history-list"], [1, "execution-card", 3, "expanded"], [1, "view-more-item"], [1, "execution-card"], [1, "execution-header", 3, "click"], [1, "execution-left-section"], [1, "execution-status"], [1, "status-indicator"], [1, "execution-info"], [1, "execution-title"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], [1, "execution-date"], [1, "execution-metrics"], [1, "metric-item"], [1, "execution-actions"], ["title", "View details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "execution-expanded-content"], [1, "fa-solid", "fa-cog"], [1, "metric-label"], [1, "metric-value"], [1, "fa-solid", "fa-stopwatch"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-microchip"], [1, "fa-solid", "fa-dollar-sign"], [1, "detailed-metrics"], [1, "metrics-grid"], [1, "metric-detail"], [1, "metric-info"], [1, "metric-title"], [1, "metric-data"], [1, "result-section"], [1, "error-section"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-calculator"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-file-text"], ["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-bolt"], [1, "panel-content"], [1, "loading-state"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "section-header"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", "size", "small"], [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, "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, "section-description"], ["kendoButton", "", "themeColor", "secondary", "size", "small", 3, "click"], ["kendoButton", "", "themeColor", "secondary", 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"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Advanced settings"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove sub-agent"], ["kendoButton", "", "fillMode", "flat", "themeColor", "primary", "size", "small", "title", "Advanced settings", 3, "click"], ["kendoButton", "", "fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove sub-agent", 3, "click"], [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-exchange-alt"], [1, "payload-section"], [1, "payload-section-title"], [1, "fa-solid", "fa-target"], [1, "payload-field-container"], [1, "payload-field-info"], [1, "payload-field-label"], [1, "payload-field-description"], [1, "payload-field-input"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], [1, "payload-field-example"], [1, "fa-solid", "fa-lightbulb"], [1, "fa-solid", "fa-route"], [1, "payload-paths-grid"], [1, "payload-path-card"], [1, "payload-path-header"], [1, "payload-path-icon", "downstream"], [1, "fa-solid", "fa-arrow-down"], [1, "payload-path-info"], [1, "payload-path-content"], [1, "json-editor-container"], ["language", "json", 2, "height", "100px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "payload-path-hint"], [1, "fa-solid", "fa-info-circle"], [1, "payload-path-icon", "upstream"], [1, "fa-solid", "fa-arrow-up"], [1, "payload-path-icon", "self-read"], [1, "fa-solid", "fa-eye"], [1, "payload-path-icon", "self-write"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-shield-check"], [1, "payload-validation-container"], [1, "payload-validation-settings"], [1, "validation-field-group"], [1, "validation-field-label"], [1, "validation-field-description"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], [1, "payload-validation-schema"], [1, "validation-schema-label"], [1, "fa-solid", "fa-code"], [1, "validation-schema-description"], [1, "validation-schema-editor"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [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"], [1, "fa-solid", "fa-cogs"], [1, "config-section"], [1, "config-section-title"], [1, "fa-solid", "fa-id-card"], [1, "config-grid"], [1, "config-card"], [1, "config-card-header"], [1, "config-card-icon"], [1, "fa-solid", "fa-toggle-on"], [1, "config-card-info"], [1, "config-card-content"], ["textField", "text", "valueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModel", "data", "valuePrimitive"], [1, "config-field-display"], ["textField", "Name", "valueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModel", "data", "valuePrimitive"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "", 3, "EditMode", "record"], [1, "config-card", "full-width"], [1, "fa-solid", "fa-align-left"], ["FieldName", "Description", "Type", "textarea", "Caption", "", 2, "width", "100%", 3, "EditMode", "record"], [1, "fa-solid", "fa-layer-group"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-sort-numeric-down"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-tachometer-alt"], ["FieldName", "DefaultPromptEffortLevel", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "config-card-hint"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-palette"], [1, "fa-solid", "fa-icons"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-image"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "", 3, "valueChange", "EditMode", "record"], ["textField", "text", "valueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], ["textField", "Name", "valueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModelChange", "ngModel", "data", "valuePrimitive"], [1, "fa-solid", "fa-hashtag"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "fa-solid", "fa-save"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "record"], [1, "prompt-selector-container"], [1, "prompt-display"], [1, "prompt-name"], [1, "no-prompt"], [1, "prompt-actions"], ["type", "button", "kendoButton", "", "fillMode", "outline", "size", "small", 1, "prompt-select-btn", 3, "click"], [1, "fa-solid", "fa-search"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Clear selection", 1, "prompt-clear-btn"], ["type", "button", "kendoButton", "", "fillMode", "flat", "size", "small", "title", "Clear selection", 1, "prompt-clear-btn", 3, "click"], [1, "fa-solid", "fa-times"]], template: function AIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
3763
3787
|
i0.ɵɵelementStart(0, "div", 2);
|
|
3764
3788
|
i0.ɵɵelement(1, "div", 3)(2, "div", 4);
|
|
3765
3789
|
i0.ɵɵtemplate(3, AIAgentFormComponentExtended_form_3_Template, 38, 18, "form", 5);
|
|
@@ -3775,12 +3799,12 @@ AIAgentFormComponentExtended = __decorate([
|
|
|
3775
3799
|
export { AIAgentFormComponentExtended };
|
|
3776
3800
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentFormComponentExtended, [{
|
|
3777
3801
|
type: Component,
|
|
3778
|
-
args: [{ selector: 'mj-ai-agent-form', template: "<div class=\"record-form-container\">\n <!-- Dialog container for Kendo dialogs -->\n <div kendoDialogContainer></div>\n <!-- Window container for Kendo windows -->\n <div kendoWindowContainer></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.Type) {\n <span class=\"execution-mode\">\n Agent Type: {{ record.Type }}\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 [keepItemContent]=\"true\">\n <!-- Custom Agent Type Section (if defined) -->\n @if (record.ID && agentType && agentType.UIFormSectionKey) {\n <kendo-panelbar-item \n [expanded]=\"agentType.UIFormSectionExpandedByDefault\" \n (stateChange)=\"onCustomSectionStateChange($event)\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-puzzle-piece\"></i> {{ agentType.Name }} Configuration\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content custom-agent-type-section\" [style.display]=\"'block'\">\n <ng-container #customSectionContainer></ng-container>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Requests & History -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.executionHistory\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History\n @if (loadingStates.executionHistory) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (executionHistoryCount > 0) {\n <span> ({{ executionHistoryCount }})@if(executionHistoryCount < totalExecutionHistoryCount){ of {{ totalExecutionHistoryCount }} }</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content execution-history-panel\">\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=\"execution-history-list\">\n @for (execution of recentExecutions; track execution.ID) {\n <div class=\"execution-card\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-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 </div>\n <div class=\"execution-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n \n <div class=\"execution-metrics\">\n @if (execution.Configuration) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <span class=\"metric-label\">Config:</span>\n <span class=\"metric-value\">{{ execution.Configuration }}</span>\n </div>\n }\n \n @if (execution.CompletedAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}</span>\n </div>\n } @else if (execution.Status === 'Running') {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metric-label\">Running:</span>\n <!-- <span class=\"metric-value\">{{ execution.StartedAt | runningTime }}</span> -->\n </div>\n }\n \n @if (execution.TotalTokensUsedRollup || execution.TotalTokensUsed) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-microchip\"></i>\n <span class=\"metric-label\">Tokens:</span>\n <span class=\"metric-value\">{{ formatTokenCount(execution.TotalTokensUsedRollup || execution.TotalTokensUsed) }}</span>\n </div>\n }\n \n @if (execution.TotalCostRollup || execution.TotalCost) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <span class=\"metric-label\">Cost:</span>\n <span class=\"metric-value\">${{ formatCost(execution.TotalCostRollup || execution.TotalCost) }}</span>\n </div>\n }\n </div>\n </div>\n \n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\" title=\"View details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"execution-expanded-content\">\n <!-- Detailed Metrics -->\n <div class=\"detailed-metrics\">\n <div class=\"metrics-grid\">\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Started</span>\n <span class=\"metric-data\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n </div>\n \n @if (execution.CompletedAt) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Completed</span>\n <span class=\"metric-data\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-microchip\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Tokens</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsed) }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalTokensUsedRollup && execution.TotalTokensUsedRollup !== execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsedRollup) }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Cost</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCost) }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalCostRollup && execution.TotalCostRollup !== execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-calculator\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCostRollup) }}</span>\n </div>\n </div>\n }\n \n @if (execution.ConversationID) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-comments\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Conversation</span>\n <span class=\"metric-data\">{{ execution.ConversationID.substring(0, 8) }}...</span>\n </div>\n </div>\n }\n </div>\n </div>\n \n @if (execution.Result) {\n <div class=\"result-section\">\n <h5><i class=\"fa-solid fa-file-text\"></i> 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 \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>\n }\n </div>\n }\n @if (executionHistoryCount > recentExecutions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: 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 <!-- Actions -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.actions\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions\n @if (loadingStates.actions) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (actionCount > 0) {\n <span> ({{ actionCount }})</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (loadingStates.actions) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading actions...</p>\n </div>\n } @else {\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateActions) {\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 && UserCanCreateActions) {\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 && UserCanDeleteActions) {\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 }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Sub-Agents -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.subAgents\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents\n @if (loadingStates.subAgents) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (subAgentCount > 0) {\n <span> ({{ subAgentCount }})</span>\n }\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 && UserCanCreateSubAgents) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addSubAgents()\">\n <i class=\"fa-solid fa-plus\"></i> Add Subagent\n </button>\n <button kendoButton themeColor=\"secondary\" size=\"small\" (click)=\"createSubAgent()\">\n <i class=\"fa-solid fa-plus\"></i> Create 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 && UserCanCreateSubAgents) {\n <button kendoButton themeColor=\"primary\" (click)=\"addSubAgents()\">\n <i class=\"fa-solid fa-plus\"></i> Add Subagent\n </button>\n <button kendoButton themeColor=\"secondary\" (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 @if (EditMode && UserCanCreateSubAgents) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"primary\" \n size=\"small\"\n (click)=\"openSubAgentAdvancedSettings(subAgent, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeleteSubAgents) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"error\" \n size=\"small\"\n (click)=\"removeSubAgent(subAgent, $event)\"\n title=\"Remove sub-agent\">\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 (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 (With Model Selection) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.prompts\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts\n @if (loadingStates.prompts) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (promptCount > 0) {\n <span> ({{ promptCount }})</span>\n }\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 && UserCanCreateNewPrompts) {\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 && UserCanCreateNewPrompts) {\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 && UserCanCreatePrompts) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"primary\" \n size=\"small\"\n (click)=\"openPromptAdvancedSettings(prompt, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeletePrompts) {\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\" [disabled]=\"loadingStates.learningCycles\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles{{ learningCycleCount > 0 ? ' (' + learningCycleCount + ')' : '' }}\n @if (loadingStates.learningCycles) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n }\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\" [disabled]=\"loadingStates.notes\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes{{ noteCount > 0 ? ' (' + noteCount + ')' : '' }}\n @if (loadingStates.notes) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n }\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 && UserCanCreateNotes) {\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 && UserCanCreateNotes) {\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\n\n <!-- Payload -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-exchange-alt\"></i> Payload Management\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, path routing, and validation between parent and child agents.\n </div>\n </div>\n \n <!-- Payload Scope Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-target\"></i>\n Payload Scope\n </h3>\n \n <div class=\"payload-field-container\">\n <div class=\"payload-field-info\">\n <label class=\"payload-field-label\">Payload Scope Path</label>\n <p class=\"payload-field-description\">\n Specify a path within the parent payload that this sub-agent should operate on. \n Leave empty to receive the entire payload.\n </p>\n </div>\n \n <div class=\"payload-field-input\">\n <mj-form-field \n FieldName=\"PayloadScope\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n <div class=\"payload-field-example\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Example: <code>/customer/profile</code> or <code>/analysis/results</code></span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Path Configuration Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-route\"></i>\n Path Configuration\n </h3>\n \n <div class=\"payload-paths-grid\">\n <!-- Downstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon downstream\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Downstream Paths</h4>\n <p>JSON array of paths to pass to sub-agents</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadDownstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to pass entire payload or specify paths like <code>[\"user.id\", \"order.*\"]</code>\n </div>\n </div>\n </div>\n\n <!-- Upstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon upstream\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Upstream Paths</h4>\n <p>JSON array of paths sub-agents can write back</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadUpstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to allow all writes or limit to specific paths\n </div>\n </div>\n </div>\n\n <!-- Self Read Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-read\">\n <i class=\"fa-solid fa-eye\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Read Paths</h4>\n <p>JSON array of paths this agent can read</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can read from the payload\n </div>\n </div>\n </div>\n\n <!-- Self Write Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-write\">\n <i class=\"fa-solid fa-pen\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Write Paths</h4>\n <p>JSON array of paths this agent can write to</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can write back to the payload\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Validation Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Final Payload Validation\n </h3>\n \n <div class=\"payload-validation-container\">\n <div class=\"payload-validation-settings\">\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Validation Mode</label>\n <p class=\"validation-field-description\">How to handle validation failures</p>\n <mj-form-field \n FieldName=\"FinalPayloadValidationMode\" \n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n \n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Max Retries</label>\n <p class=\"validation-field-description\">Maximum validation retry attempts</p>\n <mj-form-field \n FieldName=\"FinalPayloadValidationMaxRetries\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n \n <div class=\"payload-validation-schema\">\n <label class=\"validation-schema-label\">\n <i class=\"fa-solid fa-code\"></i>\n Validation Schema\n </label>\n <p class=\"validation-schema-description\">\n JSON schema or validation rules for the final payload structure\n </p>\n <div class=\"validation-schema-editor\">\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 </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\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-cogs\"></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 Configure agent behavior, execution settings, and advanced features.\n </div>\n </div>\n \n <!-- Identity & Behavior Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-id-card\"></i>\n Identity & Behavior\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Status</h4>\n <p>Current availability and operational status</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <kendo-dropdownlist \n [(ngModel)]=\"record.Status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n name=\"agentStatus\"\n class=\"config-field-input\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"config-field-display\">{{ record.Status || 'Not Set' }}</span>\n }\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Type</h4>\n <p>Category and system-level behavior</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <kendo-dropdownlist \n [(ngModel)]=\"record.TypeID\"\n [data]=\"agentTypes\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n name=\"agentTypeID\"\n class=\"config-field-input\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"config-field-display\">{{ record.Type || 'Not Set' }}</span>\n }\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-bolt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Expose as Action</h4>\n <p>Make available as an action for other agents</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ExposeAsAction\" \n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-align-left\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Description</h4>\n <p>Detailed agent description and purpose</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"Description\" \n Type=\"textarea\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Execution Settings Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Settings\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Mode</h4>\n <p>How sub-agents are executed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ExecutionMode\" \n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sort-numeric-down\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Order</h4>\n <p>Order when run with siblings</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ExecutionOrder\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Default Effort Level</h4>\n <p>Default effort level for all prompts (1-100)</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"DefaultPromptEffortLevel\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Higher values request more thorough reasoning (1=minimal, 100=maximum)\n </div>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-code\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Driver Class</h4>\n <p>Custom implementation class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"DriverClass\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Visual Identity Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-palette\"></i>\n Visual Identity\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-icons\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Icon Class</h4>\n <p>Font Awesome icon class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"IconClass\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Example: <code>fa-solid fa-robot</code>\n </div>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-image\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Logo URL</h4>\n <p>URL for agent logo image</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"LogoURL\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Takes precedence over Icon Class\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Context Compression Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-compress\"></i>\n Context Compression\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Enable Context Compression</h4>\n <p>Automatically compress conversation context when message threshold is reached</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"EnableContextCompression\" \n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n (valueChange)=\"onContextCompressionToggle($event)\">\n </mj-form-field>\n </div>\n </div>\n\n @if (record.EnableContextCompression) {\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-hashtag\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Message Threshold</h4>\n <p>Messages before compression triggers</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ContextCompressionMessageThreshold\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-save\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Messages to Keep</h4>\n <p>Recent messages to retain uncompressed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ContextCompressionMessageRetentionCount\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Compression Prompt</h4>\n <p>Prompt used for summarization</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <div class=\"prompt-selector-container\">\n <div class=\"prompt-display\">\n @if (selectedContextCompressionPrompt) {\n <span class=\"prompt-name\">{{ selectedContextCompressionPrompt.Name }}</span>\n } @else {\n <span class=\"no-prompt\">No prompt selected</span>\n }\n </div>\n <div class=\"prompt-actions\">\n <button type=\"button\" \n kendoButton \n fillMode=\"outline\" \n size=\"small\"\n (click)=\"openContextCompressionPromptSelector()\"\n class=\"prompt-select-btn\">\n <i class=\"fa-solid fa-search\"></i>\n {{ selectedContextCompressionPrompt ? 'Change' : 'Select' }} Prompt\n </button>\n @if (selectedContextCompressionPrompt) {\n <button type=\"button\" \n kendoButton \n fillMode=\"flat\" \n size=\"small\"\n (click)=\"clearContextCompressionPrompt()\"\n class=\"prompt-clear-btn\"\n title=\"Clear selection\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n } @else {\n <span class=\"config-field-display\">{{ selectedContextCompressionPrompt?.Name || record.ContextCompressionPrompt || 'Not Set' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\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.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/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 20px;\n color: #64748b;\n}\n\n.loading-state i {\n font-size: 36px;\n color: #2196f3;\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 14px;\n color: #94a3b8;\n}\n\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/* New Execution History Card Design */\n.execution-history-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.execution-card {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.1);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded {\n border-color: #2196f3;\n box-shadow: 0 6px 20px rgba(33, 150, 243, 0.15);\n}\n\n.execution-header {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.status-indicator i {\n color: white;\n font-size: 14px;\n}\n\n.execution-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date {\n font-size: 12px;\n color: #6c757d;\n}\n\n.execution-metrics {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; /* Align with execution title text, accounting for status indicator + gap */\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: #f8f9fa;\n padding: 6px 10px;\n border-radius: 6px;\n color: #495057;\n white-space: nowrap;\n}\n\n.metric-item i {\n color: #6c757d;\n font-size: 12px;\n}\n\n.metric-label {\n font-weight: 500;\n}\n\n.metric-value {\n font-weight: 600;\n color: #2c3e50;\n}\n\n.execution-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: #f8f9fa;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.action-btn:hover {\n background: #2196f3;\n color: white;\n transform: translateY(-1px);\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n.expand-icon {\n transition: transform 0.2s ease;\n color: #6c757d;\n margin-right: 4px;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n/* Execution Expanded Content */\n.execution-expanded-content {\n padding: 16px;\n border-top: 1px solid #f0f4f8;\n background: #fafbfc;\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics {\n margin-bottom: 20px;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n}\n\n.metric-detail i {\n color: #2196f3;\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title {\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data {\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.result-section {\n margin-top: 16px;\n}\n\n.result-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.error-content {\n background: #f8d7da;\n border: 1px solid #f5c6cb;\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: #721c24;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n/* Responsive adjustments for execution history */\n@media (max-width: 768px) {\n .execution-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .execution-left-section {\n width: 100%;\n }\n \n .execution-metrics {\n margin-left: 0; /* Remove left margin on mobile */\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n \n .metric-item {\n font-size: 11px;\n padding: 4px 8px;\n }\n \n .metrics-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* === PAYLOAD MANAGEMENT SECTION === */\n.payload-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 12px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.payload-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title i {\n color: #2196f3;\n font-size: 1.2rem;\n}\n\n/* Payload Scope Styling */\n.payload-field-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label {\n font-weight: 600;\n color: #495057;\n font-size: 0.95rem;\n}\n\n.payload-field-description {\n color: #6c757d;\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: #6c757d;\n background: #f8f9fa;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n}\n\n.payload-field-example i {\n color: #ffc107;\n font-size: 0.9rem;\n}\n\n.payload-field-example code {\n background: #e9ecef;\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: #495057;\n}\n\n/* Path Configuration Grid */\n.payload-paths-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n}\n\n.payload-path-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n}\n\n.payload-path-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream {\n background: linear-gradient(135deg, #28a745, #20c997);\n}\n\n.payload-path-icon.upstream {\n background: linear-gradient(135deg, #007bff, #6610f2);\n}\n\n.payload-path-icon.self-read {\n background: linear-gradient(135deg, #17a2b8, #20c997);\n}\n\n.payload-path-icon.self-write {\n background: linear-gradient(135deg, #ffc107, #fd7e14);\n}\n\n.payload-path-icon i {\n color: white;\n font-size: 1.2rem;\n}\n\n.payload-path-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: #495057;\n}\n\n.payload-path-info p {\n margin: 0;\n font-size: 0.85rem;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.payload-path-content {\n padding: 1rem;\n}\n\n.json-editor-container {\n border: 1px solid #dee2e6;\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container:hover {\n border-color: #2196f3;\n}\n\n.payload-path-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.payload-path-hint i {\n color: #17a2b8;\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint code {\n background: #e9ecef;\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: #495057;\n}\n\n/* Payload Validation Container */\n.payload-validation-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label {\n font-weight: 600;\n color: #495057;\n font-size: 0.95rem;\n}\n\n.validation-field-description {\n color: #6c757d;\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label {\n font-weight: 600;\n color: #495057;\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label i {\n color: #2196f3;\n}\n\n.validation-schema-description {\n color: #6c757d;\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor {\n border: 1px solid #dee2e6;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor:hover {\n border-color: #2196f3;\n}\n\n/* === CONFIGURATION SECTION === */\n.config-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 12px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.config-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title i {\n color: #2196f3;\n font-size: 1.2rem;\n}\n\n.config-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n}\n\n.config-card.full-width {\n grid-column: 1 / -1;\n}\n\n.config-card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n}\n\n.config-card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon i {\n color: white;\n font-size: 1.2rem;\n}\n\n.config-card-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: #495057;\n}\n\n.config-card-info p {\n margin: 0;\n font-size: 0.85rem;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.config-card-content {\n padding: 1rem;\n}\n\n/* Custom field styling for config cards */\n.config-field-input {\n width: 100%;\n min-width: 250px;\n}\n\n/* Fix numeric textbox cutoff issue */\n.config-card-content ::ng-deep kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-card-content ::ng-deep mj-form-field {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-field-display {\n color: #495057;\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n/* Prompt selector styling */\n.prompt-selector-container {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 6px;\n}\n\n.prompt-name {\n color: #495057;\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt {\n color: #6c757d;\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn {\n white-space: nowrap;\n}\n\n.prompt-clear-btn {\n min-width: 32px;\n}\n\n.config-card-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: #6c757d;\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint i {\n color: #17a2b8;\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint code {\n background: #e9ecef;\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: #495057;\n}\n\n\n/* === RESPONSIVE DESIGN === */\n@media (max-width: 768px) {\n .payload-field-container,\n .payload-validation-container {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n \n .payload-paths-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .config-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .payload-section-title,\n .config-section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .payload-path-header,\n .config-card-header {\n padding: 0.75rem;\n }\n \n .payload-path-content,\n .config-card-content {\n padding: 0.75rem;\n }\n \n .payload-field-container,\n .payload-validation-container {\n padding: 1rem;\n }\n}\n\n"] }]
|
|
3802
|
+
args: [{ selector: 'mj-ai-agent-form', template: "<div class=\"record-form-container\">\n <!-- Dialog container for Kendo dialogs -->\n <div kendoDialogContainer></div>\n <!-- Window container for Kendo windows -->\n <div kendoWindowContainer></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.Type) {\n <span class=\"execution-mode\">\n Agent Type: {{ record.Type }}\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 <button kendoButton size=\"large\" \n (click)=\"openPermissionsDialog()\" \n title=\"Manage permissions\"\n >\n <i class=\"fa-solid fa-lock\"></i>\n Permissions\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 [keepItemContent]=\"true\">\n <!-- Custom Agent Type Section (if defined) -->\n @if (record.ID && agentType && agentType.UIFormSectionKey) {\n <kendo-panelbar-item \n [expanded]=\"agentType.UIFormSectionExpandedByDefault\" \n (stateChange)=\"onCustomSectionStateChange($event)\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-puzzle-piece\"></i> {{ agentType.Name }} Configuration\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content custom-agent-type-section\" [style.display]=\"'block'\">\n <ng-container #customSectionContainer></ng-container>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Requests & History -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.executionHistory\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History\n @if (loadingStates.executionHistory) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (executionHistoryCount > 0) {\n <span> ({{ executionHistoryCount }})@if(executionHistoryCount < totalExecutionHistoryCount){ of {{ totalExecutionHistoryCount }} }</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content execution-history-panel\">\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=\"execution-history-list\">\n @for (execution of recentExecutions; track execution.ID) {\n <div class=\"execution-card\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-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 </div>\n <div class=\"execution-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n \n <div class=\"execution-metrics\">\n @if (execution.Configuration) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <span class=\"metric-label\">Config:</span>\n <span class=\"metric-value\">{{ execution.Configuration }}</span>\n </div>\n }\n \n @if (execution.CompletedAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}</span>\n </div>\n } @else if (execution.Status === 'Running') {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metric-label\">Running:</span>\n <!-- <span class=\"metric-value\">{{ execution.StartedAt | runningTime }}</span> -->\n </div>\n }\n \n @if (execution.TotalTokensUsedRollup || execution.TotalTokensUsed) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-microchip\"></i>\n <span class=\"metric-label\">Tokens:</span>\n <span class=\"metric-value\">{{ formatTokenCount(execution.TotalTokensUsedRollup || execution.TotalTokensUsed) }}</span>\n </div>\n }\n \n @if (execution.TotalCostRollup || execution.TotalCost) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <span class=\"metric-label\">Cost:</span>\n <span class=\"metric-value\">${{ formatCost(execution.TotalCostRollup || execution.TotalCost) }}</span>\n </div>\n }\n </div>\n </div>\n \n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\" title=\"View details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"execution-expanded-content\">\n <!-- Detailed Metrics -->\n <div class=\"detailed-metrics\">\n <div class=\"metrics-grid\">\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Started</span>\n <span class=\"metric-data\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n </div>\n \n @if (execution.CompletedAt) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Completed</span>\n <span class=\"metric-data\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-microchip\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Tokens</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsed) }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalTokensUsedRollup && execution.TotalTokensUsedRollup !== execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsedRollup) }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Cost</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCost) }}</span>\n </div>\n </div>\n }\n \n @if (execution.TotalCostRollup && execution.TotalCostRollup !== execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-calculator\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCostRollup) }}</span>\n </div>\n </div>\n }\n \n @if (execution.ConversationID) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-comments\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Conversation</span>\n <span class=\"metric-data\">{{ execution.ConversationID.substring(0, 8) }}...</span>\n </div>\n </div>\n }\n </div>\n </div>\n \n @if (execution.Result) {\n <div class=\"result-section\">\n <h5><i class=\"fa-solid fa-file-text\"></i> 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 \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>\n }\n </div>\n }\n @if (executionHistoryCount > recentExecutions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: 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 <!-- Actions -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.actions\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions\n @if (loadingStates.actions) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (actionCount > 0) {\n <span> ({{ actionCount }})</span>\n }\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (loadingStates.actions) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading actions...</p>\n </div>\n } @else {\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateActions) {\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 && UserCanCreateActions) {\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 && UserCanDeleteActions) {\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 }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Sub-Agents -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.subAgents\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents\n @if (loadingStates.subAgents) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (subAgentCount > 0) {\n <span> ({{ subAgentCount }})</span>\n }\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 && UserCanCreateSubAgents) {\n <button kendoButton themeColor=\"primary\" size=\"small\" (click)=\"addSubAgents()\">\n <i class=\"fa-solid fa-plus\"></i> Add Subagent\n </button>\n <button kendoButton themeColor=\"secondary\" size=\"small\" (click)=\"createSubAgent()\">\n <i class=\"fa-solid fa-plus\"></i> Create 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 && UserCanCreateSubAgents) {\n <button kendoButton themeColor=\"primary\" (click)=\"addSubAgents()\">\n <i class=\"fa-solid fa-plus\"></i> Add Subagent\n </button>\n <button kendoButton themeColor=\"secondary\" (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 @if (EditMode && UserCanCreateSubAgents) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"primary\" \n size=\"small\"\n (click)=\"openSubAgentAdvancedSettings(subAgent, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeleteSubAgents) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"error\" \n size=\"small\"\n (click)=\"removeSubAgent(subAgent, $event)\"\n title=\"Remove sub-agent\">\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 (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 (With Model Selection) -->\n @if (record.ID) {\n <kendo-panelbar-item [expanded]=\"false\" [disabled]=\"loadingStates.prompts\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts\n @if (loadingStates.prompts) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n } @else if (promptCount > 0) {\n <span> ({{ promptCount }})</span>\n }\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 && UserCanCreateNewPrompts) {\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 && UserCanCreateNewPrompts) {\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 && UserCanCreatePrompts) {\n <button kendoButton\n fillMode=\"flat\" \n themeColor=\"primary\" \n size=\"small\"\n (click)=\"openPromptAdvancedSettings(prompt, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeletePrompts) {\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\" [disabled]=\"loadingStates.learningCycles\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles{{ learningCycleCount > 0 ? ' (' + learningCycleCount + ')' : '' }}\n @if (loadingStates.learningCycles) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n }\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\" [disabled]=\"loadingStates.notes\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes{{ noteCount > 0 ? ' (' + noteCount + ')' : '' }}\n @if (loadingStates.notes) {\n <span style=\"margin-left: 8px;\"><i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 12px;\"></i></span>\n }\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 && UserCanCreateNotes) {\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 && UserCanCreateNotes) {\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\n\n <!-- Payload -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <i class=\"fa-solid fa-exchange-alt\"></i> Payload Management\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, path routing, and validation between parent and child agents.\n </div>\n </div>\n \n <!-- Payload Scope Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-target\"></i>\n Payload Scope\n </h3>\n \n <div class=\"payload-field-container\">\n <div class=\"payload-field-info\">\n <label class=\"payload-field-label\">Payload Scope Path</label>\n <p class=\"payload-field-description\">\n Specify a path within the parent payload that this sub-agent should operate on. \n Leave empty to receive the entire payload.\n </p>\n </div>\n \n <div class=\"payload-field-input\">\n <mj-form-field \n FieldName=\"PayloadScope\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n <div class=\"payload-field-example\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Example: <code>/customer/profile</code> or <code>/analysis/results</code></span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Path Configuration Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-route\"></i>\n Path Configuration\n </h3>\n \n <div class=\"payload-paths-grid\">\n <!-- Downstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon downstream\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Downstream Paths</h4>\n <p>JSON array of paths to pass to sub-agents</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadDownstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to pass entire payload or specify paths like <code>[\"user.id\", \"order.*\"]</code>\n </div>\n </div>\n </div>\n\n <!-- Upstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon upstream\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Upstream Paths</h4>\n <p>JSON array of paths sub-agents can write back</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadUpstreamPaths || '["*"]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to allow all writes or limit to specific paths\n </div>\n </div>\n </div>\n\n <!-- Self Read Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-read\">\n <i class=\"fa-solid fa-eye\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Read Paths</h4>\n <p>JSON array of paths this agent can read</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can read from the payload\n </div>\n </div>\n </div>\n\n <!-- Self Write Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-write\">\n <i class=\"fa-solid fa-pen\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Write Paths</h4>\n <p>JSON array of paths this agent can write to</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor \n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can write back to the payload\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Validation Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Final Payload Validation\n </h3>\n \n <div class=\"payload-validation-container\">\n <div class=\"payload-validation-settings\">\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Validation Mode</label>\n <p class=\"validation-field-description\">How to handle validation failures</p>\n <mj-form-field \n FieldName=\"FinalPayloadValidationMode\" \n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n \n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Max Retries</label>\n <p class=\"validation-field-description\">Maximum validation retry attempts</p>\n <mj-form-field \n FieldName=\"FinalPayloadValidationMaxRetries\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n \n <div class=\"payload-validation-schema\">\n <label class=\"validation-schema-label\">\n <i class=\"fa-solid fa-code\"></i>\n Validation Schema\n </label>\n <p class=\"validation-schema-description\">\n JSON schema or validation rules for the final payload structure\n </p>\n <div class=\"validation-schema-editor\">\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 </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\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-cogs\"></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 Configure agent behavior, execution settings, and advanced features.\n </div>\n </div>\n \n <!-- Identity & Behavior Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-id-card\"></i>\n Identity & Behavior\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Status</h4>\n <p>Current availability and operational status</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <kendo-dropdownlist \n [(ngModel)]=\"record.Status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n name=\"agentStatus\"\n class=\"config-field-input\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"config-field-display\">{{ record.Status || 'Not Set' }}</span>\n }\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Type</h4>\n <p>Category and system-level behavior</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <kendo-dropdownlist \n [(ngModel)]=\"record.TypeID\"\n [data]=\"agentTypes\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n name=\"agentTypeID\"\n class=\"config-field-input\">\n </kendo-dropdownlist>\n } @else {\n <span class=\"config-field-display\">{{ record.Type || 'Not Set' }}</span>\n }\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-bolt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Expose as Action</h4>\n <p>Make available as an action for other agents</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ExposeAsAction\" \n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-align-left\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Description</h4>\n <p>Detailed agent description and purpose</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"Description\" \n Type=\"textarea\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Execution Settings Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Settings\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Mode</h4>\n <p>How sub-agents are executed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ExecutionMode\" \n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sort-numeric-down\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Order</h4>\n <p>Order when run with siblings</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ExecutionOrder\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Default Effort Level</h4>\n <p>Default effort level for all prompts (1-100)</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"DefaultPromptEffortLevel\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Higher values request more thorough reasoning (1=minimal, 100=maximum)\n </div>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-code\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Driver Class</h4>\n <p>Custom implementation class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"DriverClass\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Visual Identity Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-palette\"></i>\n Visual Identity\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-icons\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Icon Class</h4>\n <p>Font Awesome icon class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"IconClass\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Example: <code>fa-solid fa-robot</code>\n </div>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-image\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Logo URL</h4>\n <p>URL for agent logo image</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"LogoURL\" \n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Takes precedence over Icon Class\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Context Compression Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-compress\"></i>\n Context Compression\n </h3>\n \n <div class=\"config-grid\">\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Enable Context Compression</h4>\n <p>Automatically compress conversation context when message threshold is reached</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"EnableContextCompression\" \n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\"\n (valueChange)=\"onContextCompressionToggle($event)\">\n </mj-form-field>\n </div>\n </div>\n\n @if (record.EnableContextCompression) {\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-hashtag\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Message Threshold</h4>\n <p>Messages before compression triggers</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ContextCompressionMessageThreshold\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-save\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Messages to Keep</h4>\n <p>Recent messages to retain uncompressed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field \n FieldName=\"ContextCompressionMessageRetentionCount\" \n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Compression Prompt</h4>\n <p>Prompt used for summarization</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <div class=\"prompt-selector-container\">\n <div class=\"prompt-display\">\n @if (selectedContextCompressionPrompt) {\n <span class=\"prompt-name\">{{ selectedContextCompressionPrompt.Name }}</span>\n } @else {\n <span class=\"no-prompt\">No prompt selected</span>\n }\n </div>\n <div class=\"prompt-actions\">\n <button type=\"button\" \n kendoButton \n fillMode=\"outline\" \n size=\"small\"\n (click)=\"openContextCompressionPromptSelector()\"\n class=\"prompt-select-btn\">\n <i class=\"fa-solid fa-search\"></i>\n {{ selectedContextCompressionPrompt ? 'Change' : 'Select' }} Prompt\n </button>\n @if (selectedContextCompressionPrompt) {\n <button type=\"button\" \n kendoButton \n fillMode=\"flat\" \n size=\"small\"\n (click)=\"clearContextCompressionPrompt()\"\n class=\"prompt-clear-btn\"\n title=\"Clear selection\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n } @else {\n <span class=\"config-field-display\">{{ selectedContextCompressionPrompt?.Name || record.ContextCompressionPrompt || 'Not Set' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\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.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/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 20px;\n color: #64748b;\n}\n\n.loading-state i {\n font-size: 36px;\n color: #2196f3;\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 14px;\n color: #94a3b8;\n}\n\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/* New Execution History Card Design */\n.execution-history-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.execution-card {\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.1);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded {\n border-color: #2196f3;\n box-shadow: 0 6px 20px rgba(33, 150, 243, 0.15);\n}\n\n.execution-header {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.status-indicator i {\n color: white;\n font-size: 14px;\n}\n\n.execution-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title {\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date {\n font-size: 12px;\n color: #6c757d;\n}\n\n.execution-metrics {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; /* Align with execution title text, accounting for status indicator + gap */\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: #f8f9fa;\n padding: 6px 10px;\n border-radius: 6px;\n color: #495057;\n white-space: nowrap;\n}\n\n.metric-item i {\n color: #6c757d;\n font-size: 12px;\n}\n\n.metric-label {\n font-weight: 500;\n}\n\n.metric-value {\n font-weight: 600;\n color: #2c3e50;\n}\n\n.execution-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: #f8f9fa;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.action-btn:hover {\n background: #2196f3;\n color: white;\n transform: translateY(-1px);\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n.expand-icon {\n transition: transform 0.2s ease;\n color: #6c757d;\n margin-right: 4px;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n/* Execution Expanded Content */\n.execution-expanded-content {\n padding: 16px;\n border-top: 1px solid #f0f4f8;\n background: #fafbfc;\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics {\n margin-bottom: 20px;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: white;\n border: 1px solid #e0e6ed;\n border-radius: 8px;\n}\n\n.metric-detail i {\n color: #2196f3;\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title {\n font-size: 11px;\n font-weight: 600;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data {\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.result-section {\n margin-top: 16px;\n}\n\n.result-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.error-content {\n background: #f8d7da;\n border: 1px solid #f5c6cb;\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: #721c24;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n/* Responsive adjustments for execution history */\n@media (max-width: 768px) {\n .execution-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n \n .execution-left-section {\n width: 100%;\n }\n \n .execution-metrics {\n margin-left: 0; /* Remove left margin on mobile */\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n \n .metric-item {\n font-size: 11px;\n padding: 4px 8px;\n }\n \n .metrics-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* === PAYLOAD MANAGEMENT SECTION === */\n.payload-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 12px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.payload-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title i {\n color: #2196f3;\n font-size: 1.2rem;\n}\n\n/* Payload Scope Styling */\n.payload-field-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label {\n font-weight: 600;\n color: #495057;\n font-size: 0.95rem;\n}\n\n.payload-field-description {\n color: #6c757d;\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: #6c757d;\n background: #f8f9fa;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid #e9ecef;\n}\n\n.payload-field-example i {\n color: #ffc107;\n font-size: 0.9rem;\n}\n\n.payload-field-example code {\n background: #e9ecef;\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: #495057;\n}\n\n/* Path Configuration Grid */\n.payload-paths-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n}\n\n.payload-path-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n}\n\n.payload-path-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream {\n background: linear-gradient(135deg, #28a745, #20c997);\n}\n\n.payload-path-icon.upstream {\n background: linear-gradient(135deg, #007bff, #6610f2);\n}\n\n.payload-path-icon.self-read {\n background: linear-gradient(135deg, #17a2b8, #20c997);\n}\n\n.payload-path-icon.self-write {\n background: linear-gradient(135deg, #ffc107, #fd7e14);\n}\n\n.payload-path-icon i {\n color: white;\n font-size: 1.2rem;\n}\n\n.payload-path-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: #495057;\n}\n\n.payload-path-info p {\n margin: 0;\n font-size: 0.85rem;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.payload-path-content {\n padding: 1rem;\n}\n\n.json-editor-container {\n border: 1px solid #dee2e6;\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container:hover {\n border-color: #2196f3;\n}\n\n.payload-path-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.payload-path-hint i {\n color: #17a2b8;\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint code {\n background: #e9ecef;\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: #495057;\n}\n\n/* Payload Validation Container */\n.payload-validation-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label {\n font-weight: 600;\n color: #495057;\n font-size: 0.95rem;\n}\n\n.validation-field-description {\n color: #6c757d;\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label {\n font-weight: 600;\n color: #495057;\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label i {\n color: #2196f3;\n}\n\n.validation-schema-description {\n color: #6c757d;\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor {\n border: 1px solid #dee2e6;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor:hover {\n border-color: #2196f3;\n}\n\n/* === CONFIGURATION SECTION === */\n.config-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 12px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.config-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title i {\n color: #2196f3;\n font-size: 1.2rem;\n}\n\n.config-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n}\n\n.config-card.full-width {\n grid-column: 1 / -1;\n}\n\n.config-card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n border-bottom: 1px solid #e0e0e0;\n}\n\n.config-card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon i {\n color: white;\n font-size: 1.2rem;\n}\n\n.config-card-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: #495057;\n}\n\n.config-card-info p {\n margin: 0;\n font-size: 0.85rem;\n color: #6c757d;\n line-height: 1.4;\n}\n\n.config-card-content {\n padding: 1rem;\n}\n\n/* Custom field styling for config cards */\n.config-field-input {\n width: 100%;\n min-width: 250px;\n}\n\n/* Fix numeric textbox cutoff issue */\n.config-card-content ::ng-deep kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-card-content ::ng-deep mj-form-field {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox .k-numerictextbox {\n width: 100% !important;\n}\n\n.config-card-content ::ng-deep mj-form-field kendo-numerictextbox .k-input {\n width: 100% !important;\n min-width: 200px !important;\n}\n\n.config-field-display {\n color: #495057;\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n/* Prompt selector styling */\n.prompt-selector-container {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #dee2e6;\n border-radius: 6px;\n}\n\n.prompt-name {\n color: #495057;\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt {\n color: #6c757d;\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn {\n white-space: nowrap;\n}\n\n.prompt-clear-btn {\n min-width: 32px;\n}\n\n.config-card-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: #6c757d;\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint i {\n color: #17a2b8;\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint code {\n background: #e9ecef;\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: #495057;\n}\n\n\n/* === RESPONSIVE DESIGN === */\n@media (max-width: 768px) {\n .payload-field-container,\n .payload-validation-container {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n \n .payload-paths-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .config-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .payload-section-title,\n .config-section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .payload-path-header,\n .config-card-header {\n padding: 0.75rem;\n }\n \n .payload-path-content,\n .config-card-content {\n padding: 0.75rem;\n }\n \n .payload-field-container,\n .payload-validation-container {\n padding: 1rem;\n }\n}\n\n"] }]
|
|
3779
3803
|
}], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.DialogService }, { type: i0.ViewContainerRef }, { type: i4.AIAgentManagementService }, { type: i5.AITestHarnessDialogService }], { customSectionContainer: [{
|
|
3780
3804
|
type: ViewChild,
|
|
3781
3805
|
args: ['customSectionContainer', { read: ViewContainerRef }]
|
|
3782
3806
|
}] }); })();
|
|
3783
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentFormComponentExtended, { className: "AIAgentFormComponentExtended", filePath: "src/lib/custom/AIAgents/ai-agent-form.component.ts", lineNumber:
|
|
3807
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentFormComponentExtended, { className: "AIAgentFormComponentExtended", filePath: "src/lib/custom/AIAgents/ai-agent-form.component.ts", lineNumber: 59 }); })();
|
|
3784
3808
|
export function LoadAIAgentFormComponentExtended() {
|
|
3785
3809
|
// This function is called to ensure the component is loaded and registered
|
|
3786
3810
|
}
|