@memberjunction/ng-dashboards 2.47.0 → 2.49.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/README.md +105 -2
- package/dist/AI/ai-dashboard.component.d.ts +2 -0
- package/dist/AI/ai-dashboard.component.d.ts.map +1 -1
- package/dist/AI/ai-dashboard.component.js +66 -43
- package/dist/AI/ai-dashboard.component.js.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +45 -58
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +6 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +368 -366
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +83 -85
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
- package/dist/AI/components/charts/performance-heatmap.component.d.ts +66 -0
- package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -0
- package/dist/AI/components/charts/performance-heatmap.component.js +428 -0
- package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -0
- package/dist/AI/components/charts/time-series-chart.component.d.ts +66 -0
- package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -0
- package/dist/AI/components/charts/time-series-chart.component.js +547 -0
- package/dist/AI/components/charts/time-series-chart.component.js.map +1 -0
- package/dist/AI/components/execution-monitoring.component.d.ts +157 -5
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +2032 -20
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +211 -237
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +208 -226
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +97 -99
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +381 -424
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +173 -191
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +85 -87
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +86 -99
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/widgets/kpi-card.component.d.ts +25 -0
- package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -0
- package/dist/AI/components/widgets/kpi-card.component.js +163 -0
- package/dist/AI/components/widgets/kpi-card.component.js.map +1 -0
- package/dist/AI/components/widgets/live-execution-widget.component.d.ts +25 -0
- package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -0
- package/dist/AI/components/widgets/live-execution-widget.component.js +298 -0
- package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -0
- package/dist/AI/index.d.ts +7 -0
- package/dist/AI/index.d.ts.map +1 -0
- package/dist/AI/index.js +9 -0
- package/dist/AI/index.js.map +1 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts +109 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -0
- package/dist/AI/services/ai-instrumentation.service.js +490 -0
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -0
- package/dist/Actions/actions-management-dashboard.component.js +40 -41
- package/dist/Actions/actions-management-dashboard.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +117 -134
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +274 -296
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +12 -14
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.js +12 -14
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +12 -14
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +238 -256
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +12 -14
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +12 -14
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +12 -14
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/EntityAdmin/components/entity-details.component.js +105 -107
- package/dist/EntityAdmin/components/entity-details.component.js.map +1 -1
- package/dist/EntityAdmin/components/entity-filter-panel.component.js +100 -102
- package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -1
- package/dist/EntityAdmin/components/erd-composite.component.js +84 -100
- package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -1
- package/dist/EntityAdmin/components/erd-diagram.component.js +50 -50
- package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +45 -49
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/generic/base-dashboard.js +28 -40
- package/dist/generic/base-dashboard.js.map +1 -1
- package/dist/module.d.ts +16 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +36 -15
- package/dist/module.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { Component, Output, EventEmitter } from '@angular/core';
|
|
11
2
|
import { RunView } from '@memberjunction/core';
|
|
12
3
|
import * as i0 from "@angular/core";
|
|
@@ -18,7 +9,7 @@ const _forTrack0 = ($index, $item) => $item.ID;
|
|
|
18
9
|
function AgentConfigurationComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
10
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
20
11
|
i0.ɵɵelementStart(0, "mj-agent-editor", 2);
|
|
21
|
-
i0.ɵɵlistener("close", function AgentConfigurationComponent_Conditional_1_Template_mj_agent_editor_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeAgentEditor()); })("openAgent", function AgentConfigurationComponent_Conditional_1_Template_mj_agent_editor_openAgent_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOpenAgentFromEditor($event)); });
|
|
12
|
+
i0.ɵɵlistener("close", function AgentConfigurationComponent_Conditional_1_Template_mj_agent_editor_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeAgentEditor()); })("openAgent", function AgentConfigurationComponent_Conditional_1_Template_mj_agent_editor_openAgent_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOpenAgentFromEditor($event)); })("openEntityRecord", function AgentConfigurationComponent_Conditional_1_Template_mj_agent_editor_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onOpenRecord($event.entityName, $event.recordId)); });
|
|
22
13
|
i0.ɵɵelementEnd();
|
|
23
14
|
} if (rf & 2) {
|
|
24
15
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -185,45 +176,41 @@ function AgentConfigurationComponent_Conditional_2_Template(rf, ctx) { if (rf &
|
|
|
185
176
|
i0.ɵɵconditional(!ctx_r1.isLoading ? 19 : -1);
|
|
186
177
|
} }
|
|
187
178
|
export class AgentConfigurationComponent {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
};
|
|
202
|
-
}
|
|
179
|
+
openEntityRecord = new EventEmitter();
|
|
180
|
+
stateChange = new EventEmitter();
|
|
181
|
+
isLoading = false;
|
|
182
|
+
filterPanelVisible = true;
|
|
183
|
+
showEditor = false;
|
|
184
|
+
selectedAgentId = null;
|
|
185
|
+
agents = [];
|
|
186
|
+
filteredAgents = [];
|
|
187
|
+
currentFilters = {
|
|
188
|
+
searchTerm: '',
|
|
189
|
+
executionMode: 'all',
|
|
190
|
+
exposeAsAction: 'all'
|
|
191
|
+
};
|
|
203
192
|
ngOnInit() {
|
|
204
193
|
this.loadAgents();
|
|
205
194
|
}
|
|
206
|
-
loadAgents() {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
});
|
|
195
|
+
async loadAgents() {
|
|
196
|
+
try {
|
|
197
|
+
this.isLoading = true;
|
|
198
|
+
const rv = new RunView();
|
|
199
|
+
const result = await rv.RunView({
|
|
200
|
+
EntityName: 'AI Agents',
|
|
201
|
+
ExtraFilter: '',
|
|
202
|
+
OrderBy: 'Name',
|
|
203
|
+
MaxRows: 1000
|
|
204
|
+
});
|
|
205
|
+
this.agents = result.Results;
|
|
206
|
+
this.filteredAgents = [...this.agents];
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
console.error('Error loading AI agents:', error);
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
this.isLoading = false;
|
|
213
|
+
}
|
|
227
214
|
}
|
|
228
215
|
toggleFilterPanel() {
|
|
229
216
|
this.filterPanelVisible = !this.filterPanelVisible;
|
|
@@ -233,7 +220,7 @@ export class AgentConfigurationComponent {
|
|
|
233
220
|
this.emitStateChange();
|
|
234
221
|
}
|
|
235
222
|
onFiltersChange(filters) {
|
|
236
|
-
this.currentFilters =
|
|
223
|
+
this.currentFilters = { ...filters };
|
|
237
224
|
this.applyFilters();
|
|
238
225
|
}
|
|
239
226
|
onFilterChange() {
|
|
@@ -302,20 +289,20 @@ export class AgentConfigurationComponent {
|
|
|
302
289
|
this.selectedAgentId = agentId;
|
|
303
290
|
// Editor stays open, just switches to different agent
|
|
304
291
|
}
|
|
292
|
+
static ɵfac = function AgentConfigurationComponent_Factory(t) { return new (t || AgentConfigurationComponent)(); };
|
|
293
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentConfigurationComponent, selectors: [["app-agent-configuration"]], outputs: { openEntityRecord: "openEntityRecord", stateChange: "stateChange" }, decls: 3, vars: 3, consts: [["mjFillContainer", "", 1, "agent-configuration-container", 3, "rightMargin", "bottomMargin"], ["mjFillContainer", "", 3, "agentId"], ["mjFillContainer", "", 3, "close", "openAgent", "openEntityRecord", "agentId"], [1, "dashboard-header"], [1, "header-info"], ["type", "button", "title", "Toggle Filters", 1, "filter-toggle-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "agent-count"], [1, "header-controls"], ["type", "button", "title", "Create New Agent", 1, "control-btn"], [1, "fa-solid", "fa-plus"], ["mjFillContainer", "", 1, "main-content"], ["orientation", "horizontal", "mjFillContainer", "", 1, "main-splitter", 3, "layoutChange"], [3, "size", "collapsible", "resizable", "scrollable", "hidden"], [3, "filtersChange", "filterChange", "resetFilters", "closePanel", "agents", "filteredAgents", "filters"], [3, "resizable", "scrollable"], [1, "agents-content"], [1, "loading-container"], [1, "loading-content"], [1, "loading-spinner"], [1, "spinner-ring"], [1, "loading-text"], [1, "empty-state"], [1, "agents-grid"], [1, "fa-solid", "fa-robot"], [1, "agent-card"], [1, "agent-card", 3, "click"], [1, "card-header"], [1, "agent-info"], [1, "agent-icon"], [1, "agent-details"], [1, "agent-name"], [1, "agent-meta"], [1, "agent-type"], [1, "agent-category"], [1, "card-body"], [1, "agent-description"], [1, "agent-description", "text-muted"], [1, "agent-parent"], [1, "card-actions", 3, "click"], ["type", "button", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-eye"], ["type", "button", 1, "action-btn", "action-btn-primary", 3, "click"], [1, "fa-solid", "fa-edit"], [1, "fa-solid", "fa-link"]], template: function AgentConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
294
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
295
|
+
i0.ɵɵtemplate(1, AgentConfigurationComponent_Conditional_1_Template, 1, 1, "mj-agent-editor", 1)(2, AgentConfigurationComponent_Conditional_2_Template, 20, 14);
|
|
296
|
+
i0.ɵɵelementEnd();
|
|
297
|
+
} if (rf & 2) {
|
|
298
|
+
i0.ɵɵproperty("rightMargin", 8)("bottomMargin", 8);
|
|
299
|
+
i0.ɵɵadvance();
|
|
300
|
+
i0.ɵɵconditional(ctx.showEditor && ctx.selectedAgentId ? 1 : 2);
|
|
301
|
+
} }, dependencies: [i1.SplitterComponent, i1.SplitterPaneComponent, i2.FillContainer, i3.AgentFilterPanelComponent, i4.AgentEditorComponent], styles: [".agent-configuration-container[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 12px;\n }\n \n .filter-toggle-btn {\n padding: 6px 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n color: #555;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n color: #2196f3;\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n \n .agent-count {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n .fa-solid {\n font-size: 11px;\n }\n }\n }\n}\n\n.main-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n}\n\n.main-splitter[_ngcontent-%COMP%] {\n height: 100%;\n \n .k-pane {\n overflow: hidden;\n }\n}\n\n.agents-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 0 16px;\n}\n\n.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n \n .spinner-ring {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #2196f3;\n animation: _ngcontent-%COMP%_loading-pulse 1.5s ease-in-out infinite;\n \n &:nth-child(2) {\n animation-delay: 0.2s;\n }\n \n &:nth-child(3) {\n animation-delay: 0.4s;\n }\n }\n}\n\n@keyframes _ngcontent-%COMP%_loading-pulse {\n 0%, 80%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 40% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.loading-text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n text-align: center;\n background: #fafafa;\n border-radius: 6px;\n margin: 24px 0;\n \n .fa-solid {\n font-size: 48px;\n color: #ddd;\n margin-bottom: 16px;\n }\n \n h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 500;\n color: #666;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n color: #999;\n max-width: 400px;\n line-height: 1.4;\n }\n}\n\n.agents-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\n gap: 16px;\n padding: 16px 0;\n}\n\n.agent-card[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 16px;\n transition: all 0.2s ease;\n height: fit-content;\n cursor: pointer;\n \n &:hover {\n border-color: #2196f3;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);\n transform: translateY(-1px);\n }\n \n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 12px;\n \n .agent-info {\n display: flex;\n gap: 12px;\n flex: 1;\n min-width: 0;\n \n .agent-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: rgba(33, 150, 243, 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n .fa-solid {\n font-size: 14px;\n color: #2196f3;\n }\n }\n \n .agent-details {\n flex: 1;\n min-width: 0;\n \n .agent-name {\n margin: 0 0 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #333;\n line-height: 1.3;\n }\n \n .agent-meta {\n font-size: 11px;\n color: #666;\n \n .agent-type {\n font-weight: 500;\n }\n \n .agent-category {\n color: #999;\n }\n }\n }\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n flex-shrink: 0;\n \n &.status-active {\n background: #e8f5e8;\n color: #2e7d32;\n }\n \n &.status-training {\n background: #fff3e0;\n color: #f57c00;\n }\n \n &.status-disabled {\n background: #ffebee;\n color: #c62828;\n }\n \n &.status-draft {\n background: #f5f5f5;\n color: #666;\n }\n }\n }\n \n .card-body {\n margin-bottom: 16px;\n \n .agent-description {\n margin: 0;\n font-size: 12px;\n color: #666;\n line-height: 1.4;\n \n &.text-muted {\n font-style: italic;\n color: #999;\n }\n }\n }\n \n .card-actions {\n border-top: 1px solid #f0f0f0;\n padding-top: 12px;\n display: flex;\n gap: 8px;\n \n .action-btn {\n padding: 6px 12px;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f5f5f5;\n border-color: #bbb;\n }\n \n &.action-btn-primary {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n \n &:hover {\n background-color: #1976d2;\n }\n }\n \n &.action-btn-danger {\n background-color: #f44336;\n border-color: #f44336;\n color: white;\n \n &:hover {\n background-color: #d32f2f;\n }\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n }\n}"] });
|
|
305
302
|
}
|
|
306
|
-
AgentConfigurationComponent.ɵfac = function AgentConfigurationComponent_Factory(t) { return new (t || AgentConfigurationComponent)(); };
|
|
307
|
-
AgentConfigurationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentConfigurationComponent, selectors: [["app-agent-configuration"]], outputs: { openEntityRecord: "openEntityRecord", stateChange: "stateChange" }, decls: 3, vars: 3, consts: [["mjFillContainer", "", 1, "agent-configuration-container", 3, "rightMargin", "bottomMargin"], ["mjFillContainer", "", 3, "agentId"], ["mjFillContainer", "", 3, "close", "openAgent", "agentId"], [1, "dashboard-header"], [1, "header-info"], ["type", "button", "title", "Toggle Filters", 1, "filter-toggle-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "agent-count"], [1, "header-controls"], ["type", "button", "title", "Create New Agent", 1, "control-btn"], [1, "fa-solid", "fa-plus"], ["mjFillContainer", "", 1, "main-content"], ["orientation", "horizontal", "mjFillContainer", "", 1, "main-splitter", 3, "layoutChange"], [3, "size", "collapsible", "resizable", "scrollable", "hidden"], [3, "filtersChange", "filterChange", "resetFilters", "closePanel", "agents", "filteredAgents", "filters"], [3, "resizable", "scrollable"], [1, "agents-content"], [1, "loading-container"], [1, "loading-content"], [1, "loading-spinner"], [1, "spinner-ring"], [1, "loading-text"], [1, "empty-state"], [1, "agents-grid"], [1, "fa-solid", "fa-robot"], [1, "agent-card"], [1, "agent-card", 3, "click"], [1, "card-header"], [1, "agent-info"], [1, "agent-icon"], [1, "agent-details"], [1, "agent-name"], [1, "agent-meta"], [1, "agent-type"], [1, "agent-category"], [1, "card-body"], [1, "agent-description"], [1, "agent-description", "text-muted"], [1, "agent-parent"], [1, "card-actions", 3, "click"], ["type", "button", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-eye"], ["type", "button", 1, "action-btn", "action-btn-primary", 3, "click"], [1, "fa-solid", "fa-edit"], [1, "fa-solid", "fa-link"]], template: function AgentConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
308
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
309
|
-
i0.ɵɵtemplate(1, AgentConfigurationComponent_Conditional_1_Template, 1, 1, "mj-agent-editor", 1)(2, AgentConfigurationComponent_Conditional_2_Template, 20, 14);
|
|
310
|
-
i0.ɵɵelementEnd();
|
|
311
|
-
} if (rf & 2) {
|
|
312
|
-
i0.ɵɵproperty("rightMargin", 8)("bottomMargin", 8);
|
|
313
|
-
i0.ɵɵadvance();
|
|
314
|
-
i0.ɵɵconditional(ctx.showEditor && ctx.selectedAgentId ? 1 : 2);
|
|
315
|
-
} }, dependencies: [i1.SplitterComponent, i1.SplitterPaneComponent, i2.FillContainer, i3.AgentFilterPanelComponent, i4.AgentEditorComponent], styles: [".agent-configuration-container[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 12px;\n }\n \n .filter-toggle-btn {\n padding: 6px 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n color: #555;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n color: #2196f3;\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n \n .agent-count {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n .fa-solid {\n font-size: 11px;\n }\n }\n }\n}\n\n.main-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n}\n\n.main-splitter[_ngcontent-%COMP%] {\n height: 100%;\n \n .k-pane {\n overflow: hidden;\n }\n}\n\n.agents-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 0 16px;\n}\n\n.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n \n .spinner-ring {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #2196f3;\n animation: _ngcontent-%COMP%_loading-pulse 1.5s ease-in-out infinite;\n \n &:nth-child(2) {\n animation-delay: 0.2s;\n }\n \n &:nth-child(3) {\n animation-delay: 0.4s;\n }\n }\n}\n\n@keyframes _ngcontent-%COMP%_loading-pulse {\n 0%, 80%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 40% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.loading-text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n text-align: center;\n background: #fafafa;\n border-radius: 6px;\n margin: 24px 0;\n \n .fa-solid {\n font-size: 48px;\n color: #ddd;\n margin-bottom: 16px;\n }\n \n h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 500;\n color: #666;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n color: #999;\n max-width: 400px;\n line-height: 1.4;\n }\n}\n\n.agents-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\n gap: 16px;\n padding: 16px 0;\n}\n\n.agent-card[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 16px;\n transition: all 0.2s ease;\n height: fit-content;\n cursor: pointer;\n \n &:hover {\n border-color: #2196f3;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);\n transform: translateY(-1px);\n }\n \n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 12px;\n \n .agent-info {\n display: flex;\n gap: 12px;\n flex: 1;\n min-width: 0;\n \n .agent-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: rgba(33, 150, 243, 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n .fa-solid {\n font-size: 14px;\n color: #2196f3;\n }\n }\n \n .agent-details {\n flex: 1;\n min-width: 0;\n \n .agent-name {\n margin: 0 0 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #333;\n line-height: 1.3;\n }\n \n .agent-meta {\n font-size: 11px;\n color: #666;\n \n .agent-type {\n font-weight: 500;\n }\n \n .agent-category {\n color: #999;\n }\n }\n }\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n flex-shrink: 0;\n \n &.status-active {\n background: #e8f5e8;\n color: #2e7d32;\n }\n \n &.status-training {\n background: #fff3e0;\n color: #f57c00;\n }\n \n &.status-disabled {\n background: #ffebee;\n color: #c62828;\n }\n \n &.status-draft {\n background: #f5f5f5;\n color: #666;\n }\n }\n }\n \n .card-body {\n margin-bottom: 16px;\n \n .agent-description {\n margin: 0;\n font-size: 12px;\n color: #666;\n line-height: 1.4;\n \n &.text-muted {\n font-style: italic;\n color: #999;\n }\n }\n }\n \n .card-actions {\n border-top: 1px solid #f0f0f0;\n padding-top: 12px;\n display: flex;\n gap: 8px;\n \n .action-btn {\n padding: 6px 12px;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f5f5f5;\n border-color: #bbb;\n }\n \n &.action-btn-primary {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n \n &:hover {\n background-color: #1976d2;\n }\n }\n \n &.action-btn-danger {\n background-color: #f44336;\n border-color: #f44336;\n color: white;\n \n &:hover {\n background-color: #d32f2f;\n }\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n }\n}"] });
|
|
316
303
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentConfigurationComponent, [{
|
|
317
304
|
type: Component,
|
|
318
|
-
args: [{ selector: 'app-agent-configuration', template: "<div class=\"agent-configuration-container\" mjFillContainer [rightMargin]=\"8\" [bottomMargin]=\"8\">\n \n <!-- Agent Editor Modal -->\n @if (showEditor && selectedAgentId) {\n <mj-agent-editor\n [agentId]=\"selectedAgentId\"\n (close)=\"closeAgentEditor()\"\n (openAgent)=\"onOpenAgentFromEditor($event)\"\n mjFillContainer>\n </mj-agent-editor>\n } @else {\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <button \n type=\"button\" \n class=\"filter-toggle-btn\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (filterPanelVisible) {\n Hide Filters\n } @else {\n Show Filters\n }\n </button>\n <span class=\"agent-count\">{{ filteredAgents.length }} agents</span>\n </div>\n \n <div class=\"header-controls\">\n <button \n type=\"button\" \n class=\"control-btn\"\n title=\"Create New Agent\">\n <i class=\"fa-solid fa-plus\"></i>\n New Agent\n </button>\n </div>\n </div>\n\n <!-- Main Content with Splitter -->\n <div class=\"main-content\" mjFillContainer>\n <kendo-splitter \n class=\"main-splitter\"\n orientation=\"horizontal\"\n (layoutChange)=\"onMainSplitterChange($event)\"\n mjFillContainer>\n \n <!-- Filter Panel (Left) -->\n <kendo-splitter-pane \n [size]=\"filterPanelVisible ? '320px' : '0px'\"\n [collapsible]=\"false\"\n [resizable]=\"filterPanelVisible\"\n [scrollable]=\"false\"\n [hidden]=\"!filterPanelVisible\">\n <mj-agent-filter-panel\n [agents]=\"agents\"\n [filteredAgents]=\"filteredAgents\"\n [filters]=\"currentFilters\"\n (filtersChange)=\"onFiltersChange($event)\"\n (filterChange)=\"onFilterChange()\"\n (resetFilters)=\"onResetFilters()\"\n (closePanel)=\"toggleFilterPanel()\">\n </mj-agent-filter-panel>\n </kendo-splitter-pane>\n \n <!-- Agents List Panel -->\n <kendo-splitter-pane \n [resizable]=\"true\"\n [scrollable]=\"false\">\n <div class=\"agents-content\">\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <div class=\"loading-content\">\n <div class=\"loading-spinner\">\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n </div>\n <div class=\"loading-text\">Loading agents...</div>\n </div>\n </div>\n }\n\n <!-- Agents List -->\n @if (!isLoading) {\n @if (filteredAgents.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-robot\"></i>\n <h3>No agents found</h3>\n <p>No agents match your current filters. Try adjusting your search criteria or create a new agent.</p>\n </div>\n } @else {\n <div class=\"agents-grid\">\n @for (agent of filteredAgents; track agent.ID) {\n <div class=\"agent-card\" (click)=\"openAgentEditor(agent.ID)\">\n <!-- Card Header -->\n <div class=\"card-header\">\n <div class=\"agent-info\">\n <div class=\"agent-icon\">\n <i [class]=\"getExecutionModeIcon(agent.ExecutionMode)\"></i>\n </div>\n <div class=\"agent-details\">\n <h4 class=\"agent-name\">{{ agent.Name }}</h4>\n <div class=\"agent-meta\">\n <span class=\"agent-type\">{{ agent.ExecutionMode }}</span>\n @if (agent.ExposeAsAction) {\n <span class=\"agent-category\">\u2022 Exposed as Action</span>\n }\n </div>\n </div>\n </div>\n \n <div class=\"status-badge execution-mode-{{ agent.ExecutionMode.toLowerCase() }}\">\n {{ agent.ExecutionMode }}\n </div>\n </div>\n\n <!-- Card Body -->\n <div class=\"card-body\">\n @if (agent.Description) {\n <p class=\"agent-description\">{{ agent.Description }}</p>\n } @else {\n <p class=\"agent-description text-muted\">No description provided</p>\n }\n \n @if (agent.Parent) {\n <div class=\"agent-parent\">\n <span class=\"fa-solid fa-link\"></span>\n Parent: {{ agent.Parent }}\n </div>\n }\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <button \n type=\"button\" \n class=\"action-btn\"\n (click)=\"openAgentEditor(agent.ID)\">\n <i class=\"fa-solid fa-eye\"></i>\n View\n </button>\n \n <button \n type=\"button\" \n class=\"action-btn action-btn-primary\"\n (click)=\"openAgentEditor(agent.ID)\">\n <i class=\"fa-solid fa-edit\"></i>\n Configure\n </button>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n }\n</div>", styles: [".agent-configuration-container {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 12px;\n }\n \n .filter-toggle-btn {\n padding: 6px 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n color: #555;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n color: #2196f3;\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n \n .agent-count {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n .fa-solid {\n font-size: 11px;\n }\n }\n }\n}\n\n.main-content {\n flex: 1;\n overflow: hidden;\n}\n\n.main-splitter {\n height: 100%;\n \n .k-pane {\n overflow: hidden;\n }\n}\n\n.agents-content {\n height: 100%;\n overflow-y: auto;\n padding: 0 16px;\n}\n\n.loading-container, .error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n.loading-spinner {\n display: flex;\n gap: 4px;\n \n .spinner-ring {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #2196f3;\n animation: loading-pulse 1.5s ease-in-out infinite;\n \n &:nth-child(2) {\n animation-delay: 0.2s;\n }\n \n &:nth-child(3) {\n animation-delay: 0.4s;\n }\n }\n}\n\n@keyframes loading-pulse {\n 0%, 80%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 40% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.loading-text {\n font-size: 12px;\n color: #666;\n}\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n text-align: center;\n background: #fafafa;\n border-radius: 6px;\n margin: 24px 0;\n \n .fa-solid {\n font-size: 48px;\n color: #ddd;\n margin-bottom: 16px;\n }\n \n h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 500;\n color: #666;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n color: #999;\n max-width: 400px;\n line-height: 1.4;\n }\n}\n\n.agents-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\n gap: 16px;\n padding: 16px 0;\n}\n\n.agent-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 16px;\n transition: all 0.2s ease;\n height: fit-content;\n cursor: pointer;\n \n &:hover {\n border-color: #2196f3;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);\n transform: translateY(-1px);\n }\n \n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 12px;\n \n .agent-info {\n display: flex;\n gap: 12px;\n flex: 1;\n min-width: 0;\n \n .agent-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: rgba(33, 150, 243, 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n .fa-solid {\n font-size: 14px;\n color: #2196f3;\n }\n }\n \n .agent-details {\n flex: 1;\n min-width: 0;\n \n .agent-name {\n margin: 0 0 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #333;\n line-height: 1.3;\n }\n \n .agent-meta {\n font-size: 11px;\n color: #666;\n \n .agent-type {\n font-weight: 500;\n }\n \n .agent-category {\n color: #999;\n }\n }\n }\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n flex-shrink: 0;\n \n &.status-active {\n background: #e8f5e8;\n color: #2e7d32;\n }\n \n &.status-training {\n background: #fff3e0;\n color: #f57c00;\n }\n \n &.status-disabled {\n background: #ffebee;\n color: #c62828;\n }\n \n &.status-draft {\n background: #f5f5f5;\n color: #666;\n }\n }\n }\n \n .card-body {\n margin-bottom: 16px;\n \n .agent-description {\n margin: 0;\n font-size: 12px;\n color: #666;\n line-height: 1.4;\n \n &.text-muted {\n font-style: italic;\n color: #999;\n }\n }\n }\n \n .card-actions {\n border-top: 1px solid #f0f0f0;\n padding-top: 12px;\n display: flex;\n gap: 8px;\n \n .action-btn {\n padding: 6px 12px;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f5f5f5;\n border-color: #bbb;\n }\n \n &.action-btn-primary {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n \n &:hover {\n background-color: #1976d2;\n }\n }\n \n &.action-btn-danger {\n background-color: #f44336;\n border-color: #f44336;\n color: white;\n \n &:hover {\n background-color: #d32f2f;\n }\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n }\n}"] }]
|
|
305
|
+
args: [{ selector: 'app-agent-configuration', template: "<div class=\"agent-configuration-container\" mjFillContainer [rightMargin]=\"8\" [bottomMargin]=\"8\">\n \n <!-- Agent Editor Modal -->\n @if (showEditor && selectedAgentId) {\n <mj-agent-editor\n [agentId]=\"selectedAgentId\"\n (close)=\"closeAgentEditor()\"\n (openAgent)=\"onOpenAgentFromEditor($event)\"\n (openEntityRecord)=\"onOpenRecord($event.entityName, $event.recordId)\"\n mjFillContainer>\n </mj-agent-editor>\n } @else {\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <button \n type=\"button\" \n class=\"filter-toggle-btn\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (filterPanelVisible) {\n Hide Filters\n } @else {\n Show Filters\n }\n </button>\n <span class=\"agent-count\">{{ filteredAgents.length }} agents</span>\n </div>\n \n <div class=\"header-controls\">\n <button \n type=\"button\" \n class=\"control-btn\"\n title=\"Create New Agent\">\n <i class=\"fa-solid fa-plus\"></i>\n New Agent\n </button>\n </div>\n </div>\n\n <!-- Main Content with Splitter -->\n <div class=\"main-content\" mjFillContainer>\n <kendo-splitter \n class=\"main-splitter\"\n orientation=\"horizontal\"\n (layoutChange)=\"onMainSplitterChange($event)\"\n mjFillContainer>\n \n <!-- Filter Panel (Left) -->\n <kendo-splitter-pane \n [size]=\"filterPanelVisible ? '320px' : '0px'\"\n [collapsible]=\"false\"\n [resizable]=\"filterPanelVisible\"\n [scrollable]=\"false\"\n [hidden]=\"!filterPanelVisible\">\n <mj-agent-filter-panel\n [agents]=\"agents\"\n [filteredAgents]=\"filteredAgents\"\n [filters]=\"currentFilters\"\n (filtersChange)=\"onFiltersChange($event)\"\n (filterChange)=\"onFilterChange()\"\n (resetFilters)=\"onResetFilters()\"\n (closePanel)=\"toggleFilterPanel()\">\n </mj-agent-filter-panel>\n </kendo-splitter-pane>\n \n <!-- Agents List Panel -->\n <kendo-splitter-pane \n [resizable]=\"true\"\n [scrollable]=\"false\">\n <div class=\"agents-content\">\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <div class=\"loading-content\">\n <div class=\"loading-spinner\">\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n </div>\n <div class=\"loading-text\">Loading agents...</div>\n </div>\n </div>\n }\n\n <!-- Agents List -->\n @if (!isLoading) {\n @if (filteredAgents.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-robot\"></i>\n <h3>No agents found</h3>\n <p>No agents match your current filters. Try adjusting your search criteria or create a new agent.</p>\n </div>\n } @else {\n <div class=\"agents-grid\">\n @for (agent of filteredAgents; track agent.ID) {\n <div class=\"agent-card\" (click)=\"openAgentEditor(agent.ID)\">\n <!-- Card Header -->\n <div class=\"card-header\">\n <div class=\"agent-info\">\n <div class=\"agent-icon\">\n <i [class]=\"getExecutionModeIcon(agent.ExecutionMode)\"></i>\n </div>\n <div class=\"agent-details\">\n <h4 class=\"agent-name\">{{ agent.Name }}</h4>\n <div class=\"agent-meta\">\n <span class=\"agent-type\">{{ agent.ExecutionMode }}</span>\n @if (agent.ExposeAsAction) {\n <span class=\"agent-category\">\u2022 Exposed as Action</span>\n }\n </div>\n </div>\n </div>\n \n <div class=\"status-badge execution-mode-{{ agent.ExecutionMode.toLowerCase() }}\">\n {{ agent.ExecutionMode }}\n </div>\n </div>\n\n <!-- Card Body -->\n <div class=\"card-body\">\n @if (agent.Description) {\n <p class=\"agent-description\">{{ agent.Description }}</p>\n } @else {\n <p class=\"agent-description text-muted\">No description provided</p>\n }\n \n @if (agent.Parent) {\n <div class=\"agent-parent\">\n <span class=\"fa-solid fa-link\"></span>\n Parent: {{ agent.Parent }}\n </div>\n }\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <button \n type=\"button\" \n class=\"action-btn\"\n (click)=\"openAgentEditor(agent.ID)\">\n <i class=\"fa-solid fa-eye\"></i>\n View\n </button>\n \n <button \n type=\"button\" \n class=\"action-btn action-btn-primary\"\n (click)=\"openAgentEditor(agent.ID)\">\n <i class=\"fa-solid fa-edit\"></i>\n Configure\n </button>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n }\n</div>", styles: [".agent-configuration-container {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 12px;\n }\n \n .filter-toggle-btn {\n padding: 6px 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n color: #555;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n color: #2196f3;\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n \n .agent-count {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n .fa-solid {\n font-size: 11px;\n }\n }\n }\n}\n\n.main-content {\n flex: 1;\n overflow: hidden;\n}\n\n.main-splitter {\n height: 100%;\n \n .k-pane {\n overflow: hidden;\n }\n}\n\n.agents-content {\n height: 100%;\n overflow-y: auto;\n padding: 0 16px;\n}\n\n.loading-container, .error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n.loading-spinner {\n display: flex;\n gap: 4px;\n \n .spinner-ring {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #2196f3;\n animation: loading-pulse 1.5s ease-in-out infinite;\n \n &:nth-child(2) {\n animation-delay: 0.2s;\n }\n \n &:nth-child(3) {\n animation-delay: 0.4s;\n }\n }\n}\n\n@keyframes loading-pulse {\n 0%, 80%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 40% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n.loading-text {\n font-size: 12px;\n color: #666;\n}\n\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n text-align: center;\n background: #fafafa;\n border-radius: 6px;\n margin: 24px 0;\n \n .fa-solid {\n font-size: 48px;\n color: #ddd;\n margin-bottom: 16px;\n }\n \n h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 500;\n color: #666;\n }\n \n p {\n margin: 0;\n font-size: 14px;\n color: #999;\n max-width: 400px;\n line-height: 1.4;\n }\n}\n\n.agents-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));\n gap: 16px;\n padding: 16px 0;\n}\n\n.agent-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 16px;\n transition: all 0.2s ease;\n height: fit-content;\n cursor: pointer;\n \n &:hover {\n border-color: #2196f3;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);\n transform: translateY(-1px);\n }\n \n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 12px;\n \n .agent-info {\n display: flex;\n gap: 12px;\n flex: 1;\n min-width: 0;\n \n .agent-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: rgba(33, 150, 243, 0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n \n .fa-solid {\n font-size: 14px;\n color: #2196f3;\n }\n }\n \n .agent-details {\n flex: 1;\n min-width: 0;\n \n .agent-name {\n margin: 0 0 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #333;\n line-height: 1.3;\n }\n \n .agent-meta {\n font-size: 11px;\n color: #666;\n \n .agent-type {\n font-weight: 500;\n }\n \n .agent-category {\n color: #999;\n }\n }\n }\n }\n \n .status-badge {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n flex-shrink: 0;\n \n &.status-active {\n background: #e8f5e8;\n color: #2e7d32;\n }\n \n &.status-training {\n background: #fff3e0;\n color: #f57c00;\n }\n \n &.status-disabled {\n background: #ffebee;\n color: #c62828;\n }\n \n &.status-draft {\n background: #f5f5f5;\n color: #666;\n }\n }\n }\n \n .card-body {\n margin-bottom: 16px;\n \n .agent-description {\n margin: 0;\n font-size: 12px;\n color: #666;\n line-height: 1.4;\n \n &.text-muted {\n font-style: italic;\n color: #999;\n }\n }\n }\n \n .card-actions {\n border-top: 1px solid #f0f0f0;\n padding-top: 12px;\n display: flex;\n gap: 8px;\n \n .action-btn {\n padding: 6px 12px;\n border: 1px solid #ddd;\n border-radius: 3px;\n background: white;\n cursor: pointer;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f5f5f5;\n border-color: #bbb;\n }\n \n &.action-btn-primary {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n \n &:hover {\n background-color: #1976d2;\n }\n }\n \n &.action-btn-danger {\n background-color: #f44336;\n border-color: #f44336;\n color: white;\n \n &:hover {\n background-color: #d32f2f;\n }\n }\n \n .fa-solid {\n font-size: 10px;\n }\n }\n }\n}"] }]
|
|
319
306
|
}], null, { openEntityRecord: [{
|
|
320
307
|
type: Output
|
|
321
308
|
}], stateChange: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-configuration.component.js","sourceRoot":"","sources":["../../../../src/AI/components/agents/agent-configuration.component.ts","../../../../src/AI/components/agents/agent-configuration.component.html"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-configuration.component.js","sourceRoot":"","sources":["../../../../src/AI/components/agents/agent-configuration.component.ts","../../../../src/AI/components/agents/agent-configuration.component.html"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,10 @@ export declare class AgentEditorComponent implements OnInit, OnDestroy, AfterVie
|
|
|
20
20
|
agentId: string | null;
|
|
21
21
|
close: EventEmitter<void>;
|
|
22
22
|
openAgent: EventEmitter<string>;
|
|
23
|
+
openEntityRecord: EventEmitter<{
|
|
24
|
+
entityName: string;
|
|
25
|
+
recordId: string;
|
|
26
|
+
}>;
|
|
23
27
|
hierarchyChartRef: ElementRef;
|
|
24
28
|
isLoading: boolean;
|
|
25
29
|
error: string | null;
|
|
@@ -70,8 +74,9 @@ export declare class AgentEditorComponent implements OnInit, OnDestroy, AfterVie
|
|
|
70
74
|
hasChildren(): boolean;
|
|
71
75
|
hasParent(): boolean;
|
|
72
76
|
getChildCount(): number;
|
|
77
|
+
openCurrentAgentRecord(): void;
|
|
73
78
|
static ɵfac: i0.ɵɵFactoryDeclaration<AgentEditorComponent, never>;
|
|
74
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AgentEditorComponent, "mj-agent-editor", never, { "agentId": { "alias": "agentId"; "required": false; }; }, { "close": "close"; "openAgent": "openAgent"; }, never, never, false, never>;
|
|
79
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AgentEditorComponent, "mj-agent-editor", never, { "agentId": { "alias": "agentId"; "required": false; }; }, { "close": "close"; "openAgent": "openAgent"; "openEntityRecord": "openEntityRecord"; }, never, never, false, never>;
|
|
75
80
|
}
|
|
76
81
|
export {};
|
|
77
82
|
//# sourceMappingURL=agent-editor.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/agents/agent-editor.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAa,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEhI,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAG9D,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAKa,oBAAqB,YAAW,MAAM,EAAE,SAAS,EAAE,aAAa;IAClE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,KAAK,qBAA4B;IACjC,SAAS,uBAA8B;
|
|
1
|
+
{"version":3,"file":"agent-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/agents/agent-editor.component.ts"],"names":[],"mappings":"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"}
|