@memberjunction/ng-dashboards 5.22.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +364 -362
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +2 -2
  6. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +275 -64
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2645 -436
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +240 -6
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2166 -256
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +191 -197
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/models/model-management.component.js +9 -8
  18. package/dist/AI/components/models/model-management.component.js.map +1 -1
  19. package/dist/AI/components/prompts/prompt-management.component.js +305 -299
  20. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  21. package/dist/AI/components/system/system-configuration.component.js +319 -313
  22. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  23. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +1 -2
  24. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  25. package/dist/AI/components/vectors/vector-management-resource.component.js +12 -27
  26. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  27. package/dist/APIKeys/api-applications-panel.component.js +10 -12
  28. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  29. package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
  30. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  31. package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
  32. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  33. package/dist/APIKeys/api-scopes-panel.component.js +61 -68
  34. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  35. package/dist/APIKeys/api-usage-panel.component.js +10 -11
  36. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  37. package/dist/Actions/components/actions-list-view.component.js +82 -96
  38. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  39. package/dist/Actions/components/actions-overview.component.js +130 -134
  40. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  41. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  42. package/dist/Actions/components/categories-list-view.component.js +40 -46
  43. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  44. package/dist/Actions/components/code-management.component.js +2 -2
  45. package/dist/Actions/components/code-management.component.js.map +1 -1
  46. package/dist/Actions/components/entity-integration.component.js +2 -2
  47. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  48. package/dist/Actions/components/execution-monitoring.component.js +127 -132
  49. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  50. package/dist/Actions/components/executions-list-view.component.js +2 -2
  51. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  52. package/dist/Actions/components/explorer/action-card.component.js +11 -17
  53. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  54. package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
  55. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  56. package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
  57. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  58. package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
  59. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  60. package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
  61. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  62. package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
  63. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  64. package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
  65. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  66. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  67. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  68. package/dist/Actions/components/security-permissions.component.js +2 -2
  69. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  70. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
  71. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  72. package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
  73. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  74. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
  75. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  76. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
  77. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  78. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
  79. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  80. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
  81. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  82. package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
  83. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  84. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
  85. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  86. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
  87. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  88. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
  89. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
  91. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  92. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
  93. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  94. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  95. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
  96. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  97. package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
  98. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
  100. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  101. package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
  102. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  103. package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
  104. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  105. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
  106. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  107. package/dist/Home/home-dashboard.component.js +4 -4
  108. package/dist/Home/home-dashboard.component.js.map +1 -1
  109. package/dist/Integration/components/connections/connections.component.js +4 -4
  110. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  111. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +246 -259
  112. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  113. package/dist/Integration/components/widgets/integration-card.component.js +7 -9
  114. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  115. package/dist/Integration/integration.module.d.ts +6 -10
  116. package/dist/Integration/integration.module.d.ts.map +1 -1
  117. package/dist/Integration/integration.module.js +12 -20
  118. package/dist/Integration/integration.module.js.map +1 -1
  119. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +106 -0
  120. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
  121. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +607 -0
  122. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
  123. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +7 -2
  124. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  125. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +59 -31
  126. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  127. package/dist/KnowledgeHub/index.d.ts +1 -0
  128. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  129. package/dist/KnowledgeHub/index.js +1 -0
  130. package/dist/KnowledgeHub/index.js.map +1 -1
  131. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  132. package/dist/Lists/components/lists-browse-resource.component.js +9 -7
  133. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  134. package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
  135. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  136. package/dist/Lists/components/lists-operations-resource.component.js +10 -9
  137. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  138. package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
  139. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  140. package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
  141. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  142. package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
  143. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  144. package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
  145. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  146. package/dist/MCP/mcp-dashboard.component.js +2 -2
  147. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  148. package/dist/MCP/mcp.module.d.ts +6 -9
  149. package/dist/MCP/mcp.module.d.ts.map +1 -1
  150. package/dist/MCP/mcp.module.js +20 -22
  151. package/dist/MCP/mcp.module.js.map +1 -1
  152. package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
  153. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  154. package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
  155. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  156. package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
  157. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  158. package/dist/Testing/testing-dashboard.component.js +9 -10
  159. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  160. package/dist/actions-dashboards.module.d.ts +8 -13
  161. package/dist/actions-dashboards.module.d.ts.map +1 -1
  162. package/dist/actions-dashboards.module.js +6 -27
  163. package/dist/actions-dashboards.module.js.map +1 -1
  164. package/dist/ai-dashboards.module.d.ts +16 -20
  165. package/dist/ai-dashboards.module.d.ts.map +1 -1
  166. package/dist/ai-dashboards.module.js +23 -44
  167. package/dist/ai-dashboards.module.js.map +1 -1
  168. package/dist/communication-dashboards.module.d.ts +4 -8
  169. package/dist/communication-dashboards.module.d.ts.map +1 -1
  170. package/dist/communication-dashboards.module.js +0 -19
  171. package/dist/communication-dashboards.module.js.map +1 -1
  172. package/dist/component-studio-dashboards.module.d.ts +7 -11
  173. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  174. package/dist/component-studio-dashboards.module.js +22 -34
  175. package/dist/component-studio-dashboards.module.js.map +1 -1
  176. package/dist/core-dashboards.module.d.ts +12 -18
  177. package/dist/core-dashboards.module.d.ts.map +1 -1
  178. package/dist/core-dashboards.module.js +15 -31
  179. package/dist/core-dashboards.module.js.map +1 -1
  180. package/dist/credentials-dashboards.module.d.ts +5 -8
  181. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  182. package/dist/credentials-dashboards.module.js +3 -19
  183. package/dist/credentials-dashboards.module.js.map +1 -1
  184. package/dist/data-explorer-dashboards.module.d.ts +7 -13
  185. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  186. package/dist/data-explorer-dashboards.module.js +0 -27
  187. package/dist/data-explorer-dashboards.module.js.map +1 -1
  188. package/dist/lists-dashboards.module.d.ts +5 -8
  189. package/dist/lists-dashboards.module.d.ts.map +1 -1
  190. package/dist/lists-dashboards.module.js +3 -19
  191. package/dist/lists-dashboards.module.js.map +1 -1
  192. package/dist/public-api.d.ts +1 -0
  193. package/dist/public-api.d.ts.map +1 -1
  194. package/dist/public-api.js +1 -0
  195. package/dist/public-api.js.map +1 -1
  196. package/dist/scheduling-dashboards.module.d.ts +6 -10
  197. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  198. package/dist/scheduling-dashboards.module.js +3 -23
  199. package/dist/scheduling-dashboards.module.js.map +1 -1
  200. package/dist/testing-dashboards.module.d.ts +7 -13
  201. package/dist/testing-dashboards.module.d.ts.map +1 -1
  202. package/dist/testing-dashboards.module.js +0 -27
  203. package/dist/testing-dashboards.module.js.map +1 -1
  204. package/package.json +47 -55
@@ -18,7 +18,7 @@ import * as i1 from "@memberjunction/ng-ai-test-harness";
18
18
  import * as i2 from "@memberjunction/ng-agents";
19
19
  import * as i3 from "@memberjunction/ng-shared";
20
20
  import * as i4 from "@angular/common";
21
- import * as i5 from "@progress/kendo-angular-layout";
21
+ import * as i5 from "angular-split";
22
22
  import * as i6 from "@memberjunction/ng-shared-generic";
23
23
  import * as i7 from "./agent-filter-panel.component";
24
24
  import * as i8 from "../../../shared/pipes/highlight-search.pipe";
@@ -32,14 +32,25 @@ function AgentConfigurationComponent_Conditional_8_Template(rf, ctx) { if (rf &
32
32
  function AgentConfigurationComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
33
33
  i0.ɵɵtext(0, " Show Filters ");
34
34
  } }
35
- function AgentConfigurationComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
36
- i0.ɵɵelementStart(0, "div", 25);
37
- i0.ɵɵelement(1, "mj-loading", 28);
35
+ function AgentConfigurationComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
36
+ const _r1 = i0.ɵɵgetCurrentView();
37
+ i0.ɵɵelementStart(0, "as-split-area", 21)(1, "mj-agent-filter-panel", 26);
38
+ i0.ɵɵlistener("filtersChange", function AgentConfigurationComponent_Conditional_25_Template_mj_agent_filter_panel_filtersChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFiltersChange($event)); })("filterChange", function AgentConfigurationComponent_Conditional_25_Template_mj_agent_filter_panel_filterChange_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFilterChange()); })("resetFilters", function AgentConfigurationComponent_Conditional_25_Template_mj_agent_filter_panel_resetFilters_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResetFilters()); })("closePanel", function AgentConfigurationComponent_Conditional_25_Template_mj_agent_filter_panel_closePanel_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleFilterPanel()); });
39
+ i0.ɵɵelementEnd()();
40
+ } if (rf & 2) {
41
+ const ctx_r1 = i0.ɵɵnextContext();
42
+ i0.ɵɵproperty("size", 20)("minSize", 15)("maxSize", 30);
43
+ i0.ɵɵadvance();
44
+ i0.ɵɵproperty("agents", ctx_r1.agents)("filteredAgents", ctx_r1.filteredAgents)("filters", ctx_r1.currentFilters);
45
+ } }
46
+ function AgentConfigurationComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelementStart(0, "div", 23);
48
+ i0.ɵɵelement(1, "mj-loading", 27);
38
49
  i0.ɵɵelementEnd();
39
50
  } }
40
- function AgentConfigurationComponent_Conditional_30_Conditional_0_Template(rf, ctx) { if (rf & 1) {
41
- const _r1 = i0.ɵɵgetCurrentView();
42
- i0.ɵɵelementStart(0, "div", 29);
51
+ function AgentConfigurationComponent_Conditional_29_Conditional_0_Template(rf, ctx) { if (rf & 1) {
52
+ const _r3 = i0.ɵɵgetCurrentView();
53
+ i0.ɵɵelementStart(0, "div", 28);
43
54
  i0.ɵɵelement(1, "i", 5);
44
55
  i0.ɵɵelementStart(2, "h3");
45
56
  i0.ɵɵtext(3, "No agents found");
@@ -47,246 +58,246 @@ function AgentConfigurationComponent_Conditional_30_Conditional_0_Template(rf, c
47
58
  i0.ɵɵelementStart(4, "p");
48
59
  i0.ɵɵtext(5, "No agents match your current filters. Try adjusting your search criteria or create a new agent.");
49
60
  i0.ɵɵelementEnd();
50
- i0.ɵɵelementStart(6, "button", 30);
51
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createNewAgent()); });
61
+ i0.ɵɵelementStart(6, "button", 29);
62
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.createNewAgent()); });
52
63
  i0.ɵɵelement(7, "i", 18);
53
64
  i0.ɵɵtext(8, " Create New Agent ");
54
65
  i0.ɵɵelementEnd()();
55
66
  } }
56
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
57
- i0.ɵɵelement(0, "img", 39);
67
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
68
+ i0.ɵɵelement(0, "img", 38);
58
69
  } if (rf & 2) {
59
- const agent_r4 = i0.ɵɵnextContext().$implicit;
60
- i0.ɵɵproperty("src", agent_r4.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r4.Name + " logo");
70
+ const agent_r5 = i0.ɵɵnextContext().$implicit;
71
+ i0.ɵɵproperty("src", agent_r5.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r5.Name + " logo");
61
72
  } }
62
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
73
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
63
74
  i0.ɵɵelement(0, "i");
64
75
  } if (rf & 2) {
65
- const agent_r4 = i0.ɵɵnextContext().$implicit;
76
+ const agent_r5 = i0.ɵɵnextContext().$implicit;
66
77
  const ctx_r1 = i0.ɵɵnextContext(4);
67
- i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r4));
78
+ i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r5));
68
79
  } }
69
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
70
- i0.ɵɵelementStart(0, "span", 55);
71
- i0.ɵɵelement(1, "i", 56);
80
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵelementStart(0, "span", 54);
82
+ i0.ɵɵelement(1, "i", 55);
72
83
  i0.ɵɵtext(2);
73
84
  i0.ɵɵelementEnd();
74
85
  } if (rf & 2) {
75
- const agent_r4 = i0.ɵɵnextContext().$implicit;
76
- i0.ɵɵclassMap("status-" + agent_r4.Status.toLowerCase());
86
+ const agent_r5 = i0.ɵɵnextContext().$implicit;
87
+ i0.ɵɵclassMap("status-" + agent_r5.Status.toLowerCase());
77
88
  i0.ɵɵadvance(2);
78
- i0.ɵɵtextInterpolate1(" ", agent_r4.Status, " ");
89
+ i0.ɵɵtextInterpolate1(" ", agent_r5.Status, " ");
79
90
  } }
80
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
81
- i0.ɵɵelement(0, "p", 49);
91
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
92
+ i0.ɵɵelement(0, "p", 48);
82
93
  i0.ɵɵpipe(1, "highlightSearch");
83
94
  } if (rf & 2) {
84
- const agent_r4 = i0.ɵɵnextContext().$implicit;
95
+ const agent_r5 = i0.ɵɵnextContext().$implicit;
85
96
  const ctx_r1 = i0.ɵɵnextContext(4);
86
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, agent_r4.Description, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
97
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, agent_r5.Description, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
87
98
  } }
88
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
89
- i0.ɵɵelementStart(0, "p", 50);
99
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
100
+ i0.ɵɵelementStart(0, "p", 49);
90
101
  i0.ɵɵtext(1, "No description provided");
91
102
  i0.ɵɵelementEnd();
92
103
  } }
93
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
94
- i0.ɵɵelementStart(0, "div", 58)(1, "span", 59);
104
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelementStart(0, "div", 57)(1, "span", 58);
95
106
  i0.ɵɵtext(2, "Parent");
96
107
  i0.ɵɵelementEnd();
97
- i0.ɵɵelementStart(3, "span", 60);
108
+ i0.ɵɵelementStart(3, "span", 59);
98
109
  i0.ɵɵtext(4);
99
110
  i0.ɵɵelementEnd()();
100
111
  } if (rf & 2) {
101
- const agent_r4 = i0.ɵɵnextContext(2).$implicit;
112
+ const agent_r5 = i0.ɵɵnextContext(2).$implicit;
102
113
  i0.ɵɵadvance(4);
103
- i0.ɵɵtextInterpolate(agent_r4.Parent);
114
+ i0.ɵɵtextInterpolate(agent_r5.Parent);
104
115
  } }
105
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_7_Template(rf, ctx) { if (rf & 1) {
106
- i0.ɵɵelement(0, "i", 61);
116
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_7_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelement(0, "i", 60);
107
118
  i0.ɵɵtext(1, " Enabled ");
108
119
  } }
109
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_8_Template(rf, ctx) { if (rf & 1) {
110
- i0.ɵɵelement(0, "i", 62);
120
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_8_Template(rf, ctx) { if (rf & 1) {
121
+ i0.ɵɵelement(0, "i", 61);
111
122
  i0.ɵɵtext(1, " Disabled ");
112
123
  } }
113
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
114
- i0.ɵɵelementStart(0, "div", 51)(1, "div", 57);
115
- i0.ɵɵconditionalCreate(2, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_2_Template, 5, 1, "div", 58);
116
- i0.ɵɵelementStart(3, "div", 58)(4, "span", 59);
124
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
125
+ i0.ɵɵelementStart(0, "div", 50)(1, "div", 56);
126
+ i0.ɵɵconditionalCreate(2, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_2_Template, 5, 1, "div", 57);
127
+ i0.ɵɵelementStart(3, "div", 57)(4, "span", 58);
117
128
  i0.ɵɵtext(5, "Context Compression");
118
129
  i0.ɵɵelementEnd();
119
- i0.ɵɵelementStart(6, "span", 60);
120
- i0.ɵɵconditionalCreate(7, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_7_Template, 2, 0)(8, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_8_Template, 2, 0);
130
+ i0.ɵɵelementStart(6, "span", 59);
131
+ i0.ɵɵconditionalCreate(7, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_7_Template, 2, 0)(8, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Conditional_8_Template, 2, 0);
121
132
  i0.ɵɵelementEnd()()()();
122
133
  } if (rf & 2) {
123
- const agent_r4 = i0.ɵɵnextContext().$implicit;
134
+ const agent_r5 = i0.ɵɵnextContext().$implicit;
124
135
  i0.ɵɵadvance(2);
125
- i0.ɵɵconditional(agent_r4.Parent ? 2 : -1);
136
+ i0.ɵɵconditional(agent_r5.Parent ? 2 : -1);
126
137
  i0.ɵɵadvance(5);
127
- i0.ɵɵconditional(agent_r4.EnableContextCompression ? 7 : 8);
138
+ i0.ɵɵconditional(agent_r5.EnableContextCompression ? 7 : 8);
128
139
  } }
129
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_20_Template(rf, ctx) { if (rf & 1) {
130
- const _r5 = i0.ɵɵgetCurrentView();
131
- i0.ɵɵelementStart(0, "button", 63);
132
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_20_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const agent_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r4, $event)); });
133
- i0.ɵɵelement(1, "i", 64);
140
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_20_Template(rf, ctx) { if (rf & 1) {
141
+ const _r6 = i0.ɵɵgetCurrentView();
142
+ i0.ɵɵelementStart(0, "button", 62);
143
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_20_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const agent_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r5, $event)); });
144
+ i0.ɵɵelement(1, "i", 63);
134
145
  i0.ɵɵtext(2, " Details ");
135
146
  i0.ɵɵelementEnd();
136
147
  } }
137
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
138
- const _r6 = i0.ɵɵgetCurrentView();
139
- i0.ɵɵelementStart(0, "button", 65);
140
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_21_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const agent_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.runAgent(agent_r4); return i0.ɵɵresetView($event.stopPropagation()); });
141
- i0.ɵɵelement(1, "i", 66);
148
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
149
+ const _r7 = i0.ɵɵgetCurrentView();
150
+ i0.ɵɵelementStart(0, "button", 64);
151
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_21_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const agent_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.runAgent(agent_r5); return i0.ɵɵresetView($event.stopPropagation()); });
152
+ i0.ɵɵelement(1, "i", 65);
142
153
  i0.ɵɵtext(2, " Run ");
143
154
  i0.ɵɵelementEnd();
144
155
  } }
145
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
146
- const _r3 = i0.ɵɵgetCurrentView();
147
- i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
148
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Template_div_click_1_listener() { const agent_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleAgentExpansion(agent_r4.ID)); });
149
- i0.ɵɵelementStart(2, "div", 37)(3, "div", 38);
150
- i0.ɵɵconditionalCreate(4, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_4_Template, 1, 2, "img", 39)(5, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_5_Template, 1, 2, "i", 40);
156
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
157
+ const _r4 = i0.ɵɵgetCurrentView();
158
+ i0.ɵɵelementStart(0, "div", 34)(1, "div", 35);
159
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Template_div_click_1_listener() { const agent_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleAgentExpansion(agent_r5.ID)); });
160
+ i0.ɵɵelementStart(2, "div", 36)(3, "div", 37);
161
+ i0.ɵɵconditionalCreate(4, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_4_Template, 1, 2, "img", 38)(5, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_5_Template, 1, 2, "i", 39);
151
162
  i0.ɵɵelementEnd();
152
- i0.ɵɵelementStart(6, "div", 41);
153
- i0.ɵɵelement(7, "h4", 42);
163
+ i0.ɵɵelementStart(6, "div", 40);
164
+ i0.ɵɵelement(7, "h4", 41);
154
165
  i0.ɵɵpipe(8, "highlightSearch");
155
- i0.ɵɵelementStart(9, "div", 43)(10, "span", 44);
156
- i0.ɵɵelement(11, "i", 45);
166
+ i0.ɵɵelementStart(9, "div", 42)(10, "span", 43);
167
+ i0.ɵɵelement(11, "i", 44);
157
168
  i0.ɵɵtext(12);
158
169
  i0.ɵɵelementEnd();
159
- i0.ɵɵconditionalCreate(13, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_13_Template, 3, 3, "span", 46);
170
+ i0.ɵɵconditionalCreate(13, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_13_Template, 3, 3, "span", 45);
160
171
  i0.ɵɵelementEnd()()();
161
- i0.ɵɵelement(14, "i", 47);
172
+ i0.ɵɵelement(14, "i", 46);
162
173
  i0.ɵɵelementEnd();
163
- i0.ɵɵelementStart(15, "div", 48);
164
- i0.ɵɵconditionalCreate(16, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_16_Template, 2, 4, "p", 49)(17, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_17_Template, 2, 0, "p", 50);
165
- i0.ɵɵconditionalCreate(18, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_18_Template, 9, 2, "div", 51);
174
+ i0.ɵɵelementStart(15, "div", 47);
175
+ i0.ɵɵconditionalCreate(16, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_16_Template, 2, 4, "p", 48)(17, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_17_Template, 2, 0, "p", 49);
176
+ i0.ɵɵconditionalCreate(18, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_18_Template, 9, 2, "div", 50);
166
177
  i0.ɵɵelementEnd();
167
- i0.ɵɵelementStart(19, "div", 52);
168
- i0.ɵɵconditionalCreate(20, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_20_Template, 3, 0, "button", 53);
169
- i0.ɵɵconditionalCreate(21, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Conditional_21_Template, 3, 0, "button", 54);
178
+ i0.ɵɵelementStart(19, "div", 51);
179
+ i0.ɵɵconditionalCreate(20, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_20_Template, 3, 0, "button", 52);
180
+ i0.ɵɵconditionalCreate(21, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Conditional_21_Template, 3, 0, "button", 53);
170
181
  i0.ɵɵelementEnd()();
171
182
  } if (rf & 2) {
172
- const agent_r4 = ctx.$implicit;
183
+ const agent_r5 = ctx.$implicit;
173
184
  const ctx_r1 = i0.ɵɵnextContext(4);
174
- i0.ɵɵclassProp("expanded", ctx_r1.expandedAgentId === agent_r4.ID);
185
+ i0.ɵɵclassProp("expanded", ctx_r1.expandedAgentId === agent_r5.ID);
175
186
  i0.ɵɵadvance(3);
176
- i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r4));
187
+ i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r5));
177
188
  i0.ɵɵadvance();
178
- i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r4) ? 4 : 5);
189
+ i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r5) ? 4 : 5);
179
190
  i0.ɵɵadvance(3);
180
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(8, 14, agent_r4.Name, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
191
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(8, 14, agent_r5.Name, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
181
192
  i0.ɵɵadvance(5);
182
- i0.ɵɵtextInterpolate1(" ", ctx_r1.getAgentTypeName(agent_r4), " ");
193
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getAgentTypeName(agent_r5), " ");
183
194
  i0.ɵɵadvance();
184
- i0.ɵɵconditional(agent_r4.Status ? 13 : -1);
195
+ i0.ɵɵconditional(agent_r5.Status ? 13 : -1);
185
196
  i0.ɵɵadvance();
186
- i0.ɵɵclassProp("rotated", ctx_r1.expandedAgentId === agent_r4.ID);
197
+ i0.ɵɵclassProp("rotated", ctx_r1.expandedAgentId === agent_r5.ID);
187
198
  i0.ɵɵadvance(2);
188
- i0.ɵɵconditional(agent_r4.Description ? 16 : 17);
199
+ i0.ɵɵconditional(agent_r5.Description ? 16 : 17);
189
200
  i0.ɵɵadvance(2);
190
- i0.ɵɵconditional(ctx_r1.expandedAgentId === agent_r4.ID ? 18 : -1);
201
+ i0.ɵɵconditional(ctx_r1.expandedAgentId === agent_r5.ID ? 18 : -1);
191
202
  i0.ɵɵadvance(2);
192
203
  i0.ɵɵconditional(ctx_r1.UserCanReadAgents ? 20 : -1);
193
204
  i0.ɵɵadvance();
194
- i0.ɵɵconditional(agent_r4.Status === "Active" && ctx_r1.UserCanReadAgents ? 21 : -1);
205
+ i0.ɵɵconditional(agent_r5.Status === "Active" && ctx_r1.UserCanReadAgents ? 21 : -1);
195
206
  } }
196
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
197
- i0.ɵɵelementStart(0, "div", 31);
198
- i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_For_2_Template, 22, 17, "div", 34, _forTrack0);
207
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
208
+ i0.ɵɵelementStart(0, "div", 30);
209
+ i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_For_2_Template, 22, 17, "div", 33, _forTrack0);
199
210
  i0.ɵɵelementEnd();
200
211
  } if (rf & 2) {
201
212
  const ctx_r1 = i0.ɵɵnextContext(3);
202
213
  i0.ɵɵadvance();
203
214
  i0.ɵɵrepeater(ctx_r1.filteredAgents);
204
215
  } }
205
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_For_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
216
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_For_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
206
217
  i0.ɵɵelementContainer(0);
207
218
  } }
208
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
209
- i0.ɵɵtemplate(0, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 68);
219
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
220
+ i0.ɵɵtemplate(0, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 67);
210
221
  } if (rf & 2) {
211
- const node_r7 = i0.ɵɵnextContext().$implicit;
222
+ const node_r8 = i0.ɵɵnextContext().$implicit;
212
223
  i0.ɵɵnextContext(2);
213
- const categoryNodeTpl_r8 = i0.ɵɵreference(3);
214
- i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTpl_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r7));
224
+ const categoryNodeTpl_r9 = i0.ɵɵreference(3);
225
+ i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTpl_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r8));
215
226
  } }
216
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
217
- i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_For_2_Conditional_0_Template, 1, 4, "ng-container");
227
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
228
+ i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_For_2_Conditional_0_Template, 1, 4, "ng-container");
218
229
  } if (rf & 2) {
219
- const node_r7 = ctx.$implicit;
230
+ const node_r8 = ctx.$implicit;
220
231
  const ctx_r1 = i0.ɵɵnextContext(4);
221
- i0.ɵɵconditional(ctx_r1.hasVisibleContent(node_r7) ? 0 : -1);
232
+ i0.ɵɵconditional(ctx_r1.hasVisibleContent(node_r8) ? 0 : -1);
222
233
  } }
223
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
224
- i0.ɵɵelement(0, "img", 77);
234
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
235
+ i0.ɵɵelement(0, "img", 76);
225
236
  } if (rf & 2) {
226
- const agent_r10 = i0.ɵɵnextContext().$implicit;
227
- i0.ɵɵproperty("src", agent_r10.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r10.Name + " logo");
237
+ const agent_r11 = i0.ɵɵnextContext().$implicit;
238
+ i0.ɵɵproperty("src", agent_r11.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r11.Name + " logo");
228
239
  } }
229
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
240
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
230
241
  i0.ɵɵelement(0, "i");
231
242
  } if (rf & 2) {
232
- const agent_r10 = i0.ɵɵnextContext().$implicit;
243
+ const agent_r11 = i0.ɵɵnextContext().$implicit;
233
244
  const ctx_r1 = i0.ɵɵnextContext(5);
234
- i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r10));
245
+ i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r11));
235
246
  } }
236
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_11_Template(rf, ctx) { if (rf & 1) {
237
- const _r11 = i0.ɵɵgetCurrentView();
238
- i0.ɵɵelementStart(0, "button", 83);
239
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r11); const agent_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.runAgent(agent_r10); return i0.ɵɵresetView($event.stopPropagation()); });
240
- i0.ɵɵelement(1, "i", 66);
247
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_11_Template(rf, ctx) { if (rf & 1) {
248
+ const _r12 = i0.ɵɵgetCurrentView();
249
+ i0.ɵɵelementStart(0, "button", 82);
250
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r12); const agent_r11 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.runAgent(agent_r11); return i0.ɵɵresetView($event.stopPropagation()); });
251
+ i0.ɵɵelement(1, "i", 65);
241
252
  i0.ɵɵelementEnd();
242
253
  } }
243
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Template(rf, ctx) { if (rf & 1) {
244
- const _r9 = i0.ɵɵgetCurrentView();
245
- i0.ɵɵelementStart(0, "div", 75);
246
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Template_div_click_0_listener() { const agent_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r10)); });
247
- i0.ɵɵelementStart(1, "div", 76);
248
- i0.ɵɵconditionalCreate(2, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_2_Template, 1, 2, "img", 77)(3, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_3_Template, 1, 2, "i", 40);
254
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Template(rf, ctx) { if (rf & 1) {
255
+ const _r10 = i0.ɵɵgetCurrentView();
256
+ i0.ɵɵelementStart(0, "div", 74);
257
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Template_div_click_0_listener() { const agent_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r11)); });
258
+ i0.ɵɵelementStart(1, "div", 75);
259
+ i0.ɵɵconditionalCreate(2, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_2_Template, 1, 2, "img", 76)(3, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_3_Template, 1, 2, "i", 39);
249
260
  i0.ɵɵelementEnd();
250
- i0.ɵɵelementStart(4, "div", 78)(5, "span", 79);
261
+ i0.ɵɵelementStart(4, "div", 77)(5, "span", 78);
251
262
  i0.ɵɵtext(6);
252
263
  i0.ɵɵelementEnd();
253
- i0.ɵɵelementStart(7, "span", 80);
264
+ i0.ɵɵelementStart(7, "span", 79);
254
265
  i0.ɵɵtext(8);
255
266
  i0.ɵɵelementEnd()();
256
- i0.ɵɵelementStart(9, "span", 81);
267
+ i0.ɵɵelementStart(9, "span", 80);
257
268
  i0.ɵɵtext(10);
258
269
  i0.ɵɵelementEnd();
259
- i0.ɵɵconditionalCreate(11, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_11_Template, 2, 0, "button", 82);
270
+ i0.ɵɵconditionalCreate(11, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Conditional_11_Template, 2, 0, "button", 81);
260
271
  i0.ɵɵelementEnd();
261
272
  } if (rf & 2) {
262
- const agent_r10 = ctx.$implicit;
273
+ const agent_r11 = ctx.$implicit;
263
274
  const ctx_r1 = i0.ɵɵnextContext(5);
264
275
  i0.ɵɵadvance();
265
- i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r10));
276
+ i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r11));
266
277
  i0.ɵɵadvance();
267
- i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r10) ? 2 : 3);
278
+ i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r11) ? 2 : 3);
268
279
  i0.ɵɵadvance(4);
269
- i0.ɵɵtextInterpolate(agent_r10.Name);
280
+ i0.ɵɵtextInterpolate(agent_r11.Name);
270
281
  i0.ɵɵadvance(2);
271
- i0.ɵɵtextInterpolate(ctx_r1.getAgentTypeName(agent_r10));
282
+ i0.ɵɵtextInterpolate(ctx_r1.getAgentTypeName(agent_r11));
272
283
  i0.ɵɵadvance();
273
- i0.ɵɵclassMap("status-" + (agent_r10.Status || "unknown").toLowerCase());
284
+ i0.ɵɵclassMap("status-" + (agent_r11.Status || "unknown").toLowerCase());
274
285
  i0.ɵɵadvance();
275
- i0.ɵɵtextInterpolate1(" ", agent_r10.Status, " ");
286
+ i0.ɵɵtextInterpolate1(" ", agent_r11.Status, " ");
276
287
  i0.ɵɵadvance();
277
- i0.ɵɵconditional(agent_r10.Status === "Active" && ctx_r1.UserCanReadAgents ? 11 : -1);
288
+ i0.ɵɵconditional(agent_r11.Status === "Active" && ctx_r1.UserCanReadAgents ? 11 : -1);
278
289
  } }
279
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
280
- i0.ɵɵelementStart(0, "div", 67)(1, "div", 69);
281
- i0.ɵɵelement(2, "i", 70);
282
- i0.ɵɵelementStart(3, "span", 71);
290
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
291
+ i0.ɵɵelementStart(0, "div", 66)(1, "div", 68);
292
+ i0.ɵɵelement(2, "i", 69);
293
+ i0.ɵɵelementStart(3, "span", 70);
283
294
  i0.ɵɵtext(4, "Uncategorized");
284
295
  i0.ɵɵelementEnd();
285
- i0.ɵɵelementStart(5, "span", 72);
296
+ i0.ɵɵelementStart(5, "span", 71);
286
297
  i0.ɵɵtext(6);
287
298
  i0.ɵɵelementEnd()();
288
- i0.ɵɵelementStart(7, "div", 73);
289
- i0.ɵɵrepeaterCreate(8, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_For_9_Template, 12, 9, "div", 74, _forTrack0);
299
+ i0.ɵɵelementStart(7, "div", 72);
300
+ i0.ɵɵrepeaterCreate(8, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_For_9_Template, 12, 9, "div", 73, _forTrack0);
290
301
  i0.ɵɵelementEnd()();
291
302
  } if (rf & 2) {
292
303
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -295,10 +306,10 @@ function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_
295
306
  i0.ɵɵadvance(2);
296
307
  i0.ɵɵrepeater(ctx_r1.uncategorizedAgents);
297
308
  } }
298
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
299
- i0.ɵɵelementStart(0, "div", 32);
300
- i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_For_2_Template, 1, 1, null, null, _forTrack1);
301
- i0.ɵɵconditionalCreate(3, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Conditional_3_Template, 10, 1, "div", 67);
309
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
310
+ i0.ɵɵelementStart(0, "div", 31);
311
+ i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_For_2_Template, 1, 1, null, null, _forTrack1);
312
+ i0.ɵɵconditionalCreate(3, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Conditional_3_Template, 10, 1, "div", 66);
302
313
  i0.ɵɵelementEnd();
303
314
  } if (rf & 2) {
304
315
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -307,234 +318,234 @@ function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_
307
318
  i0.ɵɵadvance(2);
308
319
  i0.ɵɵconditional(ctx_r1.uncategorizedAgents.length > 0 ? 3 : -1);
309
320
  } }
310
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
311
- i0.ɵɵelement(0, "img", 77);
321
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
322
+ i0.ɵɵelement(0, "img", 76);
312
323
  } if (rf & 2) {
313
- const agent_r15 = i0.ɵɵnextContext().$implicit;
314
- i0.ɵɵproperty("src", agent_r15.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r15.Name + " logo");
324
+ const agent_r16 = i0.ɵɵnextContext().$implicit;
325
+ i0.ɵɵproperty("src", agent_r16.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r16.Name + " logo");
315
326
  } }
316
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
327
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
317
328
  i0.ɵɵelement(0, "i");
318
329
  } if (rf & 2) {
319
- const agent_r15 = i0.ɵɵnextContext().$implicit;
330
+ const agent_r16 = i0.ɵɵnextContext().$implicit;
320
331
  const ctx_r1 = i0.ɵɵnextContext(6);
321
- i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r15));
332
+ i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r16));
322
333
  } }
323
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
324
- const _r16 = i0.ɵɵgetCurrentView();
325
- i0.ɵɵelementStart(0, "button", 83);
326
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r16); const agent_r15 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); ctx_r1.runAgent(agent_r15); return i0.ɵɵresetView($event.stopPropagation()); });
327
- i0.ɵɵelement(1, "i", 66);
334
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
335
+ const _r17 = i0.ɵɵgetCurrentView();
336
+ i0.ɵɵelementStart(0, "button", 82);
337
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r17); const agent_r16 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); ctx_r1.runAgent(agent_r16); return i0.ɵɵresetView($event.stopPropagation()); });
338
+ i0.ɵɵelement(1, "i", 65);
328
339
  i0.ɵɵelementEnd();
329
340
  } }
330
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
331
- const _r14 = i0.ɵɵgetCurrentView();
332
- i0.ɵɵelementStart(0, "div", 75);
333
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Template_div_click_0_listener() { const agent_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r15)); });
334
- i0.ɵɵelementStart(1, "div", 76);
335
- i0.ɵɵconditionalCreate(2, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_2_Template, 1, 2, "img", 77)(3, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_3_Template, 1, 2, "i", 40);
341
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
342
+ const _r15 = i0.ɵɵgetCurrentView();
343
+ i0.ɵɵelementStart(0, "div", 74);
344
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Template_div_click_0_listener() { const agent_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r16)); });
345
+ i0.ɵɵelementStart(1, "div", 75);
346
+ i0.ɵɵconditionalCreate(2, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_2_Template, 1, 2, "img", 76)(3, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_3_Template, 1, 2, "i", 39);
336
347
  i0.ɵɵelementEnd();
337
- i0.ɵɵelementStart(4, "div", 78)(5, "span", 79);
348
+ i0.ɵɵelementStart(4, "div", 77)(5, "span", 78);
338
349
  i0.ɵɵtext(6);
339
350
  i0.ɵɵelementEnd();
340
- i0.ɵɵelementStart(7, "span", 80);
351
+ i0.ɵɵelementStart(7, "span", 79);
341
352
  i0.ɵɵtext(8);
342
353
  i0.ɵɵelementEnd()();
343
- i0.ɵɵelementStart(9, "span", 81);
354
+ i0.ɵɵelementStart(9, "span", 80);
344
355
  i0.ɵɵtext(10);
345
356
  i0.ɵɵelementEnd();
346
- i0.ɵɵconditionalCreate(11, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_11_Template, 2, 0, "button", 82);
357
+ i0.ɵɵconditionalCreate(11, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Conditional_11_Template, 2, 0, "button", 81);
347
358
  i0.ɵɵelementEnd();
348
359
  } if (rf & 2) {
349
- const agent_r15 = ctx.$implicit;
360
+ const agent_r16 = ctx.$implicit;
350
361
  const ctx_r1 = i0.ɵɵnextContext(6);
351
362
  i0.ɵɵadvance();
352
- i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r15));
363
+ i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r16));
353
364
  i0.ɵɵadvance();
354
- i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r15) ? 2 : 3);
365
+ i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r16) ? 2 : 3);
355
366
  i0.ɵɵadvance(4);
356
- i0.ɵɵtextInterpolate(agent_r15.Name);
367
+ i0.ɵɵtextInterpolate(agent_r16.Name);
357
368
  i0.ɵɵadvance(2);
358
- i0.ɵɵtextInterpolate(ctx_r1.getAgentTypeName(agent_r15));
369
+ i0.ɵɵtextInterpolate(ctx_r1.getAgentTypeName(agent_r16));
359
370
  i0.ɵɵadvance();
360
- i0.ɵɵclassMap("status-" + (agent_r15.Status || "unknown").toLowerCase());
371
+ i0.ɵɵclassMap("status-" + (agent_r16.Status || "unknown").toLowerCase());
361
372
  i0.ɵɵadvance();
362
- i0.ɵɵtextInterpolate1(" ", agent_r15.Status, " ");
373
+ i0.ɵɵtextInterpolate1(" ", agent_r16.Status, " ");
363
374
  i0.ɵɵadvance();
364
- i0.ɵɵconditional(agent_r15.Status === "Active" && ctx_r1.UserCanReadAgents ? 11 : -1);
375
+ i0.ɵɵconditional(agent_r16.Status === "Active" && ctx_r1.UserCanReadAgents ? 11 : -1);
365
376
  } }
366
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
367
- i0.ɵɵelementStart(0, "div", 73);
368
- i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Template, 12, 9, "div", 74, _forTrack0);
377
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
378
+ i0.ɵɵelementStart(0, "div", 72);
379
+ i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_For_2_Template, 12, 9, "div", 73, _forTrack0);
369
380
  i0.ɵɵelementEnd();
370
381
  } if (rf & 2) {
371
- const ctx_r16 = i0.ɵɵnextContext(2);
372
- const node_r13 = ctx_r16.$implicit;
373
- const depth_r18 = ctx_r16.depth;
374
- i0.ɵɵstyleProp("padding-left", (depth_r18 + 1) * 24, "px");
382
+ const ctx_r17 = i0.ɵɵnextContext(2);
383
+ const node_r14 = ctx_r17.$implicit;
384
+ const depth_r19 = ctx_r17.depth;
385
+ i0.ɵɵstyleProp("padding-left", (depth_r19 + 1) * 24, "px");
375
386
  i0.ɵɵadvance();
376
- i0.ɵɵrepeater(node_r13.Agents);
387
+ i0.ɵɵrepeater(node_r14.Agents);
377
388
  } }
378
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
389
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
379
390
  i0.ɵɵelementContainer(0);
380
391
  } }
381
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
392
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
382
393
  i0.ɵɵelementStart(0, "div");
383
- i0.ɵɵtemplate(1, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 68);
394
+ i0.ɵɵtemplate(1, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 67);
384
395
  i0.ɵɵelementEnd();
385
396
  } if (rf & 2) {
386
- const child_r19 = i0.ɵɵnextContext().$implicit;
387
- const depth_r18 = i0.ɵɵnextContext(2).depth;
397
+ const child_r20 = i0.ɵɵnextContext().$implicit;
398
+ const depth_r19 = i0.ɵɵnextContext(2).depth;
388
399
  i0.ɵɵnextContext();
389
- const categoryNodeTpl_r8 = i0.ɵɵreference(3);
390
- i0.ɵɵstyleProp("padding-left", (depth_r18 + 1) * 24, "px");
400
+ const categoryNodeTpl_r9 = i0.ɵɵreference(3);
401
+ i0.ɵɵstyleProp("padding-left", (depth_r19 + 1) * 24, "px");
391
402
  i0.ɵɵadvance();
392
- i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTpl_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(4, _c1, child_r19, depth_r18 + 1));
403
+ i0.ɵɵproperty("ngTemplateOutlet", categoryNodeTpl_r9)("ngTemplateOutletContext", i0.ɵɵpureFunction2(4, _c1, child_r20, depth_r19 + 1));
393
404
  } }
394
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
395
- i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_Template, 2, 7, "div", 88);
405
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
406
+ i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_For_2_Conditional_0_Template, 2, 7, "div", 87);
396
407
  } if (rf & 2) {
397
- const child_r19 = ctx.$implicit;
408
+ const child_r20 = ctx.$implicit;
398
409
  const ctx_r1 = i0.ɵɵnextContext(5);
399
- i0.ɵɵconditional(ctx_r1.hasVisibleContent(child_r19) ? 0 : -1);
410
+ i0.ɵɵconditional(ctx_r1.hasVisibleContent(child_r20) ? 0 : -1);
400
411
  } }
401
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
402
- i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Conditional_0_Template, 3, 2, "div", 87);
403
- i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_For_2_Template, 1, 1, null, null, _forTrack1);
412
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
413
+ i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Conditional_0_Template, 3, 2, "div", 86);
414
+ i0.ɵɵrepeaterCreate(1, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_For_2_Template, 1, 1, null, null, _forTrack1);
404
415
  } if (rf & 2) {
405
- const node_r13 = i0.ɵɵnextContext().$implicit;
406
- i0.ɵɵconditional(node_r13.Agents.length > 0 ? 0 : -1);
416
+ const node_r14 = i0.ɵɵnextContext().$implicit;
417
+ i0.ɵɵconditional(node_r14.Agents.length > 0 ? 0 : -1);
407
418
  i0.ɵɵadvance();
408
- i0.ɵɵrepeater(node_r13.Children);
419
+ i0.ɵɵrepeater(node_r14.Children);
409
420
  } }
410
- function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
411
- const _r12 = i0.ɵɵgetCurrentView();
412
- i0.ɵɵelementStart(0, "div", 67)(1, "div", 84);
413
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Template_div_click_1_listener() { const node_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleCategoryNode(node_r13)); });
414
- i0.ɵɵelement(2, "i", 85)(3, "i", 86);
415
- i0.ɵɵelementStart(4, "span", 71);
421
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
422
+ const _r13 = i0.ɵɵgetCurrentView();
423
+ i0.ɵɵelementStart(0, "div", 66)(1, "div", 83);
424
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Template_div_click_1_listener() { const node_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleCategoryNode(node_r14)); });
425
+ i0.ɵɵelement(2, "i", 84)(3, "i", 85);
426
+ i0.ɵɵelementStart(4, "span", 70);
416
427
  i0.ɵɵtext(5);
417
428
  i0.ɵɵelementEnd();
418
- i0.ɵɵelementStart(6, "span", 72);
429
+ i0.ɵɵelementStart(6, "span", 71);
419
430
  i0.ɵɵtext(7);
420
431
  i0.ɵɵelementEnd()();
421
- i0.ɵɵconditionalCreate(8, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Conditional_8_Template, 3, 1);
432
+ i0.ɵɵconditionalCreate(8, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Conditional_8_Template, 3, 1);
422
433
  i0.ɵɵelementEnd();
423
434
  } if (rf & 2) {
424
- const node_r13 = ctx.$implicit;
425
- const depth_r18 = ctx.depth;
435
+ const node_r14 = ctx.$implicit;
436
+ const depth_r19 = ctx.depth;
426
437
  const ctx_r1 = i0.ɵɵnextContext(3);
427
438
  i0.ɵɵadvance();
428
- i0.ɵɵclassMap("depth-" + depth_r18);
439
+ i0.ɵɵclassMap("depth-" + depth_r19);
429
440
  i0.ɵɵadvance();
430
- i0.ɵɵclassProp("fa-chevron-right", !node_r13.Expanded)("fa-chevron-down", node_r13.Expanded);
441
+ i0.ɵɵclassProp("fa-chevron-right", !node_r14.Expanded)("fa-chevron-down", node_r14.Expanded);
431
442
  i0.ɵɵadvance();
432
- i0.ɵɵclassProp("fa-folder", !node_r13.Expanded)("fa-folder-open", node_r13.Expanded);
443
+ i0.ɵɵclassProp("fa-folder", !node_r14.Expanded)("fa-folder-open", node_r14.Expanded);
433
444
  i0.ɵɵadvance(2);
434
- i0.ɵɵtextInterpolate(node_r13.Category.Name);
445
+ i0.ɵɵtextInterpolate(node_r14.Category.Name);
435
446
  i0.ɵɵadvance(2);
436
- i0.ɵɵtextInterpolate(ctx_r1.getAgentCount(node_r13));
447
+ i0.ɵɵtextInterpolate(ctx_r1.getAgentCount(node_r14));
437
448
  i0.ɵɵadvance();
438
- i0.ɵɵconditional(node_r13.Expanded ? 8 : -1);
449
+ i0.ɵɵconditional(node_r14.Expanded ? 8 : -1);
439
450
  } }
440
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_4_Template(rf, ctx) { if (rf & 1) {
441
- i0.ɵɵelement(0, "img", 95);
451
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_4_Template(rf, ctx) { if (rf & 1) {
452
+ i0.ɵɵelement(0, "img", 94);
442
453
  } if (rf & 2) {
443
- const agent_r21 = i0.ɵɵnextContext().$implicit;
444
- i0.ɵɵproperty("src", agent_r21.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r21.Name + " logo");
454
+ const agent_r22 = i0.ɵɵnextContext().$implicit;
455
+ i0.ɵɵproperty("src", agent_r22.LogoURL, i0.ɵɵsanitizeUrl)("alt", agent_r22.Name + " logo");
445
456
  } }
446
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_5_Template(rf, ctx) { if (rf & 1) {
457
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_5_Template(rf, ctx) { if (rf & 1) {
447
458
  i0.ɵɵelement(0, "i");
448
459
  } if (rf & 2) {
449
- const agent_r21 = i0.ɵɵnextContext().$implicit;
460
+ const agent_r22 = i0.ɵɵnextContext().$implicit;
450
461
  const ctx_r1 = i0.ɵɵnextContext(4);
451
- i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r21));
462
+ i0.ɵɵclassMap(ctx_r1.getAgentIcon(agent_r22));
452
463
  } }
453
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_9_Template(rf, ctx) { if (rf & 1) {
454
- i0.ɵɵelement(0, "div", 96);
464
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_9_Template(rf, ctx) { if (rf & 1) {
465
+ i0.ɵɵelement(0, "div", 95);
455
466
  i0.ɵɵpipe(1, "highlightSearch");
456
467
  } if (rf & 2) {
457
- const agent_r21 = i0.ɵɵnextContext().$implicit;
468
+ const agent_r22 = i0.ɵɵnextContext().$implicit;
458
469
  const ctx_r1 = i0.ɵɵnextContext(4);
459
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, agent_r21.Description, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
470
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, agent_r22.Description, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
460
471
  } }
461
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_18_Template(rf, ctx) { if (rf & 1) {
462
- const _r22 = i0.ɵɵgetCurrentView();
463
- i0.ɵɵelementStart(0, "button", 101);
464
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r22); const agent_r21 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r21)); });
465
- i0.ɵɵelement(1, "i", 64);
472
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_18_Template(rf, ctx) { if (rf & 1) {
473
+ const _r23 = i0.ɵɵgetCurrentView();
474
+ i0.ɵɵelementStart(0, "button", 100);
475
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const agent_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.showAgentDetails(agent_r22)); });
476
+ i0.ɵɵelement(1, "i", 63);
466
477
  i0.ɵɵelementEnd();
467
478
  } }
468
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_19_Template(rf, ctx) { if (rf & 1) {
469
- const _r23 = i0.ɵɵgetCurrentView();
470
- i0.ɵɵelementStart(0, "button", 83);
471
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_19_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const agent_r21 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.runAgent(agent_r21)); });
472
- i0.ɵɵelement(1, "i", 66);
479
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_19_Template(rf, ctx) { if (rf & 1) {
480
+ const _r24 = i0.ɵɵgetCurrentView();
481
+ i0.ɵɵelementStart(0, "button", 82);
482
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_19_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const agent_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.runAgent(agent_r22)); });
483
+ i0.ɵɵelement(1, "i", 65);
473
484
  i0.ɵɵelementEnd();
474
485
  } }
475
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Template(rf, ctx) { if (rf & 1) {
476
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "div", 93)(3, "div", 94);
477
- i0.ɵɵconditionalCreate(4, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_4_Template, 1, 2, "img", 95)(5, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_5_Template, 1, 2, "i", 40);
486
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Template(rf, ctx) { if (rf & 1) {
487
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "div", 92)(3, "div", 93);
488
+ i0.ɵɵconditionalCreate(4, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_4_Template, 1, 2, "img", 94)(5, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_5_Template, 1, 2, "i", 39);
478
489
  i0.ɵɵelementEnd();
479
490
  i0.ɵɵelementStart(6, "div");
480
- i0.ɵɵelement(7, "div", 42);
491
+ i0.ɵɵelement(7, "div", 41);
481
492
  i0.ɵɵpipe(8, "highlightSearch");
482
- i0.ɵɵconditionalCreate(9, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_9_Template, 2, 4, "div", 96);
493
+ i0.ɵɵconditionalCreate(9, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_9_Template, 2, 4, "div", 95);
483
494
  i0.ɵɵelementEnd()()();
484
- i0.ɵɵelementStart(10, "td")(11, "span", 97);
495
+ i0.ɵɵelementStart(10, "td")(11, "span", 96);
485
496
  i0.ɵɵtext(12);
486
497
  i0.ɵɵelementEnd()();
487
- i0.ɵɵelementStart(13, "td")(14, "span", 98);
498
+ i0.ɵɵelementStart(13, "td")(14, "span", 97);
488
499
  i0.ɵɵtext(15);
489
500
  i0.ɵɵelementEnd()();
490
- i0.ɵɵelementStart(16, "td")(17, "div", 99);
491
- i0.ɵɵconditionalCreate(18, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_18_Template, 2, 0, "button", 100);
492
- i0.ɵɵconditionalCreate(19, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Conditional_19_Template, 2, 0, "button", 82);
501
+ i0.ɵɵelementStart(16, "td")(17, "div", 98);
502
+ i0.ɵɵconditionalCreate(18, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_18_Template, 2, 0, "button", 99);
503
+ i0.ɵɵconditionalCreate(19, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Conditional_19_Template, 2, 0, "button", 81);
493
504
  i0.ɵɵelementEnd()()();
494
505
  } if (rf & 2) {
495
- const agent_r21 = ctx.$implicit;
506
+ const agent_r22 = ctx.$implicit;
496
507
  const ctx_r1 = i0.ɵɵnextContext(4);
497
508
  i0.ɵɵadvance(3);
498
- i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r21));
509
+ i0.ɵɵstyleProp("background-color", ctx_r1.getAgentIconColor(agent_r22));
499
510
  i0.ɵɵadvance();
500
- i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r21) ? 4 : 5);
511
+ i0.ɵɵconditional(ctx_r1.hasLogoURL(agent_r22) ? 4 : 5);
501
512
  i0.ɵɵadvance(3);
502
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(8, 11, agent_r21.Name, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
513
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(8, 11, agent_r22.Name, ctx_r1.currentFilters.searchTerm), i0.ɵɵsanitizeHtml);
503
514
  i0.ɵɵadvance(2);
504
- i0.ɵɵconditional(agent_r21.Description ? 9 : -1);
515
+ i0.ɵɵconditional(agent_r22.Description ? 9 : -1);
505
516
  i0.ɵɵadvance(3);
506
- i0.ɵɵtextInterpolate1(" ", ctx_r1.getAgentTypeName(agent_r21), " ");
517
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getAgentTypeName(agent_r22), " ");
507
518
  i0.ɵɵadvance(2);
508
- i0.ɵɵclassMap("status-" + (agent_r21.Status || "unknown").toLowerCase());
519
+ i0.ɵɵclassMap("status-" + (agent_r22.Status || "unknown").toLowerCase());
509
520
  i0.ɵɵadvance();
510
- i0.ɵɵtextInterpolate1(" ", agent_r21.Status || "Unknown", " ");
521
+ i0.ɵɵtextInterpolate1(" ", agent_r22.Status || "Unknown", " ");
511
522
  i0.ɵɵadvance(3);
512
523
  i0.ɵɵconditional(ctx_r1.UserCanReadAgents ? 18 : -1);
513
524
  i0.ɵɵadvance();
514
- i0.ɵɵconditional(agent_r21.Status === "Active" && ctx_r1.UserCanReadAgents ? 19 : -1);
525
+ i0.ɵɵconditional(agent_r22.Status === "Active" && ctx_r1.UserCanReadAgents ? 19 : -1);
515
526
  } }
516
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
517
- const _r20 = i0.ɵɵgetCurrentView();
518
- i0.ɵɵelementStart(0, "div", 33)(1, "table", 89)(2, "thead")(3, "tr")(4, "th", 90);
519
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_Template_th_click_4_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortBy("Name")); });
520
- i0.ɵɵelementStart(5, "span", 91);
527
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
528
+ const _r21 = i0.ɵɵgetCurrentView();
529
+ i0.ɵɵelementStart(0, "div", 32)(1, "table", 88)(2, "thead")(3, "tr")(4, "th", 89);
530
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_Template_th_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortBy("Name")); });
531
+ i0.ɵɵelementStart(5, "span", 90);
521
532
  i0.ɵɵtext(6, " Name ");
522
- i0.ɵɵelement(7, "i", 92);
533
+ i0.ɵɵelement(7, "i", 91);
523
534
  i0.ɵɵelementEnd()();
524
535
  i0.ɵɵelementStart(8, "th");
525
536
  i0.ɵɵtext(9, "Type");
526
537
  i0.ɵɵelementEnd();
527
- i0.ɵɵelementStart(10, "th", 90);
528
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_Template_th_click_10_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortBy("Status")); });
529
- i0.ɵɵelementStart(11, "span", 91);
538
+ i0.ɵɵelementStart(10, "th", 89);
539
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_Template_th_click_10_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortBy("Status")); });
540
+ i0.ɵɵelementStart(11, "span", 90);
530
541
  i0.ɵɵtext(12, " Status ");
531
- i0.ɵɵelement(13, "i", 92);
542
+ i0.ɵɵelement(13, "i", 91);
532
543
  i0.ɵɵelementEnd()();
533
544
  i0.ɵɵelementStart(14, "th");
534
545
  i0.ɵɵtext(15, "Actions");
535
546
  i0.ɵɵelementEnd()()();
536
547
  i0.ɵɵelementStart(16, "tbody");
537
- i0.ɵɵrepeaterCreate(17, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_For_18_Template, 20, 14, "tr", null, _forTrack0);
548
+ i0.ɵɵrepeaterCreate(17, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_For_18_Template, 20, 14, "tr", null, _forTrack0);
538
549
  i0.ɵɵelementEnd()()();
539
550
  } if (rf & 2) {
540
551
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -545,11 +556,11 @@ function AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_
545
556
  i0.ɵɵadvance(7);
546
557
  i0.ɵɵrepeater(ctx_r1.filteredAgents);
547
558
  } }
548
- function AgentConfigurationComponent_Conditional_30_Conditional_1_Template(rf, ctx) { if (rf & 1) {
549
- i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_0_Template, 3, 0, "div", 31);
550
- i0.ɵɵconditionalCreate(1, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_1_Template, 4, 1, "div", 32);
551
- i0.ɵɵtemplate(2, AgentConfigurationComponent_Conditional_30_Conditional_1_ng_template_2_Template, 9, 13, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
552
- i0.ɵɵconditionalCreate(4, AgentConfigurationComponent_Conditional_30_Conditional_1_Conditional_4_Template, 19, 8, "div", 33);
559
+ function AgentConfigurationComponent_Conditional_29_Conditional_1_Template(rf, ctx) { if (rf & 1) {
560
+ i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_0_Template, 3, 0, "div", 30);
561
+ i0.ɵɵconditionalCreate(1, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_1_Template, 4, 1, "div", 31);
562
+ i0.ɵɵtemplate(2, AgentConfigurationComponent_Conditional_29_Conditional_1_ng_template_2_Template, 9, 13, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
563
+ i0.ɵɵconditionalCreate(4, AgentConfigurationComponent_Conditional_29_Conditional_1_Conditional_4_Template, 19, 8, "div", 32);
553
564
  } if (rf & 2) {
554
565
  const ctx_r1 = i0.ɵɵnextContext(2);
555
566
  i0.ɵɵconditional(ctx_r1.viewMode === "grid" ? 0 : -1);
@@ -558,42 +569,42 @@ function AgentConfigurationComponent_Conditional_30_Conditional_1_Template(rf, c
558
569
  i0.ɵɵadvance(3);
559
570
  i0.ɵɵconditional(ctx_r1.viewMode === "list" ? 4 : -1);
560
571
  } }
561
- function AgentConfigurationComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
562
- i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_30_Conditional_0_Template, 9, 0, "div", 29)(1, AgentConfigurationComponent_Conditional_30_Conditional_1_Template, 5, 3);
572
+ function AgentConfigurationComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
573
+ i0.ɵɵconditionalCreate(0, AgentConfigurationComponent_Conditional_29_Conditional_0_Template, 9, 0, "div", 28)(1, AgentConfigurationComponent_Conditional_29_Conditional_1_Template, 5, 3);
563
574
  } if (rf & 2) {
564
575
  const ctx_r1 = i0.ɵɵnextContext();
565
576
  i0.ɵɵconditional(ctx_r1.filteredAgents.length === 0 ? 0 : 1);
566
577
  } }
567
- function AgentConfigurationComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
568
- const _r24 = i0.ɵɵgetCurrentView();
569
- i0.ɵɵelementStart(0, "div", 102);
570
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_31_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDetailPanel()); });
578
+ function AgentConfigurationComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
579
+ const _r25 = i0.ɵɵgetCurrentView();
580
+ i0.ɵɵelementStart(0, "div", 101);
581
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_30_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDetailPanel()); });
571
582
  i0.ɵɵelementEnd();
572
583
  } }
573
- function AgentConfigurationComponent_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
574
- i0.ɵɵelement(0, "img", 106);
584
+ function AgentConfigurationComponent_Conditional_32_Conditional_3_Template(rf, ctx) { if (rf & 1) {
585
+ i0.ɵɵelement(0, "img", 105);
575
586
  } if (rf & 2) {
576
587
  const ctx_r1 = i0.ɵɵnextContext(2);
577
588
  i0.ɵɵproperty("src", ctx_r1.selectedAgent.LogoURL, i0.ɵɵsanitizeUrl)("alt", ctx_r1.selectedAgent.Name + " logo");
578
589
  } }
579
- function AgentConfigurationComponent_Conditional_33_Conditional_4_Template(rf, ctx) { if (rf & 1) {
590
+ function AgentConfigurationComponent_Conditional_32_Conditional_4_Template(rf, ctx) { if (rf & 1) {
580
591
  i0.ɵɵelement(0, "i");
581
592
  } if (rf & 2) {
582
593
  const ctx_r1 = i0.ɵɵnextContext(2);
583
594
  i0.ɵɵclassMap(ctx_r1.getAgentIcon(ctx_r1.selectedAgent));
584
595
  } }
585
- function AgentConfigurationComponent_Conditional_33_Conditional_18_Template(rf, ctx) { if (rf & 1) {
586
- i0.ɵɵelementStart(0, "span", 114);
587
- i0.ɵɵelement(1, "i", 126);
596
+ function AgentConfigurationComponent_Conditional_32_Conditional_18_Template(rf, ctx) { if (rf & 1) {
597
+ i0.ɵɵelementStart(0, "span", 113);
598
+ i0.ɵɵelement(1, "i", 125);
588
599
  i0.ɵɵtext(2, " Exposed as Action ");
589
600
  i0.ɵɵelementEnd();
590
601
  } }
591
- function AgentConfigurationComponent_Conditional_33_Conditional_19_Template(rf, ctx) { if (rf & 1) {
592
- i0.ɵɵelementStart(0, "div", 112)(1, "h4", 115);
593
- i0.ɵɵelement(2, "i", 127);
602
+ function AgentConfigurationComponent_Conditional_32_Conditional_19_Template(rf, ctx) { if (rf & 1) {
603
+ i0.ɵɵelementStart(0, "div", 111)(1, "h4", 114);
604
+ i0.ɵɵelement(2, "i", 126);
594
605
  i0.ɵɵtext(3, " Description ");
595
606
  i0.ɵɵelementEnd();
596
- i0.ɵɵelementStart(4, "p", 128);
607
+ i0.ɵɵelementStart(4, "p", 127);
597
608
  i0.ɵɵtext(5);
598
609
  i0.ɵɵelementEnd()();
599
610
  } if (rf & 2) {
@@ -601,11 +612,11 @@ function AgentConfigurationComponent_Conditional_33_Conditional_19_Template(rf,
601
612
  i0.ɵɵadvance(5);
602
613
  i0.ɵɵtextInterpolate(ctx_r1.selectedAgent.Description);
603
614
  } }
604
- function AgentConfigurationComponent_Conditional_33_Conditional_31_Template(rf, ctx) { if (rf & 1) {
605
- i0.ɵɵelementStart(0, "div", 118)(1, "span", 119);
615
+ function AgentConfigurationComponent_Conditional_32_Conditional_31_Template(rf, ctx) { if (rf & 1) {
616
+ i0.ɵɵelementStart(0, "div", 117)(1, "span", 118);
606
617
  i0.ɵɵtext(2, "Parent Agent");
607
618
  i0.ɵɵelementEnd();
608
- i0.ɵɵelementStart(3, "span", 120);
619
+ i0.ɵɵelementStart(3, "span", 119);
609
620
  i0.ɵɵtext(4);
610
621
  i0.ɵɵelementEnd()();
611
622
  } if (rf & 2) {
@@ -613,105 +624,105 @@ function AgentConfigurationComponent_Conditional_33_Conditional_31_Template(rf,
613
624
  i0.ɵɵadvance(4);
614
625
  i0.ɵɵtextInterpolate(ctx_r1.getParentAgentName(ctx_r1.selectedAgent));
615
626
  } }
616
- function AgentConfigurationComponent_Conditional_33_Conditional_36_Template(rf, ctx) { if (rf & 1) {
617
- i0.ɵɵelement(0, "i", 129);
627
+ function AgentConfigurationComponent_Conditional_32_Conditional_36_Template(rf, ctx) { if (rf & 1) {
628
+ i0.ɵɵelement(0, "i", 128);
618
629
  i0.ɵɵtext(1, " Enabled ");
619
630
  } }
620
- function AgentConfigurationComponent_Conditional_33_Conditional_37_Template(rf, ctx) { if (rf & 1) {
621
- i0.ɵɵelement(0, "i", 130);
631
+ function AgentConfigurationComponent_Conditional_32_Conditional_37_Template(rf, ctx) { if (rf & 1) {
632
+ i0.ɵɵelement(0, "i", 129);
622
633
  i0.ɵɵtext(1, " Disabled ");
623
634
  } }
624
- function AgentConfigurationComponent_Conditional_33_Conditional_42_Template(rf, ctx) { if (rf & 1) {
625
- i0.ɵɵelement(0, "i", 129);
635
+ function AgentConfigurationComponent_Conditional_32_Conditional_42_Template(rf, ctx) { if (rf & 1) {
636
+ i0.ɵɵelement(0, "i", 128);
626
637
  i0.ɵɵtext(1, " Yes ");
627
638
  } }
628
- function AgentConfigurationComponent_Conditional_33_Conditional_43_Template(rf, ctx) { if (rf & 1) {
629
- i0.ɵɵelement(0, "i", 130);
639
+ function AgentConfigurationComponent_Conditional_32_Conditional_43_Template(rf, ctx) { if (rf & 1) {
640
+ i0.ɵɵelement(0, "i", 129);
630
641
  i0.ɵɵtext(1, " No ");
631
642
  } }
632
- function AgentConfigurationComponent_Conditional_33_Conditional_67_Template(rf, ctx) { if (rf & 1) {
633
- const _r26 = i0.ɵɵgetCurrentView();
634
- i0.ɵɵelementStart(0, "button", 131);
635
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_33_Conditional_67_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.runAgent(ctx_r1.selectedAgent)); });
636
- i0.ɵɵelement(1, "i", 66);
643
+ function AgentConfigurationComponent_Conditional_32_Conditional_67_Template(rf, ctx) { if (rf & 1) {
644
+ const _r27 = i0.ɵɵgetCurrentView();
645
+ i0.ɵɵelementStart(0, "button", 130);
646
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_32_Conditional_67_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.runAgent(ctx_r1.selectedAgent)); });
647
+ i0.ɵɵelement(1, "i", 65);
637
648
  i0.ɵɵtext(2, " Run Agent ");
638
649
  i0.ɵɵelementEnd();
639
650
  } }
640
- function AgentConfigurationComponent_Conditional_33_Template(rf, ctx) { if (rf & 1) {
641
- const _r25 = i0.ɵɵgetCurrentView();
642
- i0.ɵɵelementStart(0, "div", 103)(1, "div", 104)(2, "div", 105);
643
- i0.ɵɵconditionalCreate(3, AgentConfigurationComponent_Conditional_33_Conditional_3_Template, 1, 2, "img", 106)(4, AgentConfigurationComponent_Conditional_33_Conditional_4_Template, 1, 2, "i", 40);
651
+ function AgentConfigurationComponent_Conditional_32_Template(rf, ctx) { if (rf & 1) {
652
+ const _r26 = i0.ɵɵgetCurrentView();
653
+ i0.ɵɵelementStart(0, "div", 102)(1, "div", 103)(2, "div", 104);
654
+ i0.ɵɵconditionalCreate(3, AgentConfigurationComponent_Conditional_32_Conditional_3_Template, 1, 2, "img", 105)(4, AgentConfigurationComponent_Conditional_32_Conditional_4_Template, 1, 2, "i", 39);
644
655
  i0.ɵɵelementEnd();
645
- i0.ɵɵelementStart(5, "div", 107)(6, "h3");
656
+ i0.ɵɵelementStart(5, "div", 106)(6, "h3");
646
657
  i0.ɵɵtext(7);
647
658
  i0.ɵɵelementEnd();
648
- i0.ɵɵelementStart(8, "span", 108);
659
+ i0.ɵɵelementStart(8, "span", 107);
649
660
  i0.ɵɵtext(9);
650
661
  i0.ɵɵelementEnd()()();
651
- i0.ɵɵelementStart(10, "button", 109);
652
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_33_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDetailPanel()); });
653
- i0.ɵɵelement(11, "i", 110);
662
+ i0.ɵɵelementStart(10, "button", 108);
663
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_32_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDetailPanel()); });
664
+ i0.ɵɵelement(11, "i", 109);
654
665
  i0.ɵɵelementEnd()();
655
- i0.ɵɵelementStart(12, "div", 111)(13, "div", 112)(14, "div", 113)(15, "span", 98);
656
- i0.ɵɵelement(16, "i", 56);
666
+ i0.ɵɵelementStart(12, "div", 110)(13, "div", 111)(14, "div", 112)(15, "span", 97);
667
+ i0.ɵɵelement(16, "i", 55);
657
668
  i0.ɵɵtext(17);
658
669
  i0.ɵɵelementEnd();
659
- i0.ɵɵconditionalCreate(18, AgentConfigurationComponent_Conditional_33_Conditional_18_Template, 3, 0, "span", 114);
670
+ i0.ɵɵconditionalCreate(18, AgentConfigurationComponent_Conditional_32_Conditional_18_Template, 3, 0, "span", 113);
660
671
  i0.ɵɵelementEnd()();
661
- i0.ɵɵconditionalCreate(19, AgentConfigurationComponent_Conditional_33_Conditional_19_Template, 6, 1, "div", 112);
662
- i0.ɵɵelementStart(20, "div", 112)(21, "h4", 115);
663
- i0.ɵɵelement(22, "i", 116);
672
+ i0.ɵɵconditionalCreate(19, AgentConfigurationComponent_Conditional_32_Conditional_19_Template, 6, 1, "div", 111);
673
+ i0.ɵɵelementStart(20, "div", 111)(21, "h4", 114);
674
+ i0.ɵɵelement(22, "i", 115);
664
675
  i0.ɵɵtext(23, " Configuration ");
665
676
  i0.ɵɵelementEnd();
666
- i0.ɵɵelementStart(24, "div", 117)(25, "div", 118)(26, "span", 119);
677
+ i0.ɵɵelementStart(24, "div", 116)(25, "div", 117)(26, "span", 118);
667
678
  i0.ɵɵtext(27, "Execution Mode");
668
679
  i0.ɵɵelementEnd();
669
- i0.ɵɵelementStart(28, "span", 120);
680
+ i0.ɵɵelementStart(28, "span", 119);
670
681
  i0.ɵɵelement(29, "i");
671
682
  i0.ɵɵtext(30);
672
683
  i0.ɵɵelementEnd()();
673
- i0.ɵɵconditionalCreate(31, AgentConfigurationComponent_Conditional_33_Conditional_31_Template, 5, 1, "div", 118);
674
- i0.ɵɵelementStart(32, "div", 118)(33, "span", 119);
684
+ i0.ɵɵconditionalCreate(31, AgentConfigurationComponent_Conditional_32_Conditional_31_Template, 5, 1, "div", 117);
685
+ i0.ɵɵelementStart(32, "div", 117)(33, "span", 118);
675
686
  i0.ɵɵtext(34, "Context Compression");
676
687
  i0.ɵɵelementEnd();
677
- i0.ɵɵelementStart(35, "span", 120);
678
- i0.ɵɵconditionalCreate(36, AgentConfigurationComponent_Conditional_33_Conditional_36_Template, 2, 0)(37, AgentConfigurationComponent_Conditional_33_Conditional_37_Template, 2, 0);
688
+ i0.ɵɵelementStart(35, "span", 119);
689
+ i0.ɵɵconditionalCreate(36, AgentConfigurationComponent_Conditional_32_Conditional_36_Template, 2, 0)(37, AgentConfigurationComponent_Conditional_32_Conditional_37_Template, 2, 0);
679
690
  i0.ɵɵelementEnd()();
680
- i0.ɵɵelementStart(38, "div", 118)(39, "span", 119);
691
+ i0.ɵɵelementStart(38, "div", 117)(39, "span", 118);
681
692
  i0.ɵɵtext(40, "Exposed as Action");
682
693
  i0.ɵɵelementEnd();
683
- i0.ɵɵelementStart(41, "span", 120);
684
- i0.ɵɵconditionalCreate(42, AgentConfigurationComponent_Conditional_33_Conditional_42_Template, 2, 0)(43, AgentConfigurationComponent_Conditional_33_Conditional_43_Template, 2, 0);
694
+ i0.ɵɵelementStart(41, "span", 119);
695
+ i0.ɵɵconditionalCreate(42, AgentConfigurationComponent_Conditional_32_Conditional_42_Template, 2, 0)(43, AgentConfigurationComponent_Conditional_32_Conditional_43_Template, 2, 0);
685
696
  i0.ɵɵelementEnd()();
686
- i0.ɵɵelementStart(44, "div", 118)(45, "span", 119);
697
+ i0.ɵɵelementStart(44, "div", 117)(45, "span", 118);
687
698
  i0.ɵɵtext(46, "Model Selection");
688
699
  i0.ɵɵelementEnd();
689
- i0.ɵɵelementStart(47, "span", 120);
700
+ i0.ɵɵelementStart(47, "span", 119);
690
701
  i0.ɵɵtext(48);
691
702
  i0.ɵɵelementEnd()()()();
692
- i0.ɵɵelementStart(49, "div", 112)(50, "h4", 115);
693
- i0.ɵɵelement(51, "i", 121);
703
+ i0.ɵɵelementStart(49, "div", 111)(50, "h4", 114);
704
+ i0.ɵɵelement(51, "i", 120);
694
705
  i0.ɵɵtext(52, " Timestamps ");
695
706
  i0.ɵɵelementEnd();
696
- i0.ɵɵelementStart(53, "div", 117)(54, "div", 118)(55, "span", 119);
707
+ i0.ɵɵelementStart(53, "div", 116)(54, "div", 117)(55, "span", 118);
697
708
  i0.ɵɵtext(56, "Created");
698
709
  i0.ɵɵelementEnd();
699
- i0.ɵɵelementStart(57, "span", 120);
710
+ i0.ɵɵelementStart(57, "span", 119);
700
711
  i0.ɵɵtext(58);
701
712
  i0.ɵɵpipe(59, "date");
702
713
  i0.ɵɵelementEnd()();
703
- i0.ɵɵelementStart(60, "div", 118)(61, "span", 119);
714
+ i0.ɵɵelementStart(60, "div", 117)(61, "span", 118);
704
715
  i0.ɵɵtext(62, "Updated");
705
716
  i0.ɵɵelementEnd();
706
- i0.ɵɵelementStart(63, "span", 120);
717
+ i0.ɵɵelementStart(63, "span", 119);
707
718
  i0.ɵɵtext(64);
708
719
  i0.ɵɵpipe(65, "date");
709
720
  i0.ɵɵelementEnd()()()()();
710
- i0.ɵɵelementStart(66, "div", 122);
711
- i0.ɵɵconditionalCreate(67, AgentConfigurationComponent_Conditional_33_Conditional_67_Template, 3, 0, "button", 123);
712
- i0.ɵɵelementStart(68, "button", 124);
713
- i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_33_Template_button_click_68_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openAgentFromPanel()); });
714
- i0.ɵɵelement(69, "i", 125);
721
+ i0.ɵɵelementStart(66, "div", 121);
722
+ i0.ɵɵconditionalCreate(67, AgentConfigurationComponent_Conditional_32_Conditional_67_Template, 3, 0, "button", 122);
723
+ i0.ɵɵelementStart(68, "button", 123);
724
+ i0.ɵɵlistener("click", function AgentConfigurationComponent_Conditional_32_Template_button_click_68_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openAgentFromPanel()); });
725
+ i0.ɵɵelement(69, "i", 124);
715
726
  i0.ɵɵtext(70, " Open Full Record ");
716
727
  i0.ɵɵelementEnd()();
717
728
  } if (rf & 2) {
@@ -1003,8 +1014,6 @@ let AgentConfigurationComponent = class AgentConfigurationComponent extends Base
1003
1014
  }
1004
1015
  finally {
1005
1016
  this.isLoading = false;
1006
- // force change detection to update the view
1007
- this.cdr.detectChanges();
1008
1017
  }
1009
1018
  }
1010
1019
  toggleFilterPanel() {
@@ -1416,7 +1425,7 @@ let AgentConfigurationComponent = class AgentConfigurationComponent extends Base
1416
1425
  return 'fa-solid fa-robot';
1417
1426
  }
1418
1427
  static ɵfac = function AgentConfigurationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgentConfigurationComponent)(i0.ɵɵdirectiveInject(i1.AITestHarnessDialogService), i0.ɵɵdirectiveInject(i2.CreateAgentService), i0.ɵɵdirectiveInject(i3.NavigationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
1419
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentConfigurationComponent, selectors: [["app-agent-configuration"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 34, vars: 24, consts: [["categoryNodeTpl", ""], [1, "agent-configuration-container"], [1, "dashboard-header"], [1, "header-info"], [1, "dashboard-title"], [1, "fa-solid", "fa-robot"], ["type", "button", "title", "Toggle Filters", 1, "filter-toggle-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "item-count"], [1, "header-controls"], [1, "view-toggle"], ["type", "button", "title", "Grid View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["type", "button", "title", "List View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-list"], ["type", "button", "title", "Category Tree View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-folder-tree"], ["type", "button", "title", "Create New Agent", 1, "control-btn", "primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "main-content"], ["orientation", "horizontal", 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, "detail-panel-overlay"], [1, "detail-panel"], ["text", "Loading agents...", "size", "large"], [1, "empty-state"], ["type", "button", 1, "empty-state-btn", 3, "click"], [1, "agents-grid"], [1, "agents-tree"], [1, "agents-list"], [1, "agent-card", 3, "expanded"], [1, "agent-card"], [1, "card-header", 3, "click"], [1, "agent-info"], [1, "agent-icon"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-details"], [1, "agent-name", 3, "innerHTML"], [1, "agent-meta"], [1, "meta-item", "type-badge"], [1, "fa-solid", "fa-tag"], [1, "meta-item", 3, "class"], [1, "fa-solid", "fa-chevron-down", "expand-icon"], [1, "card-body"], [1, "agent-description", 3, "innerHTML"], [1, "agent-description", "text-muted"], [1, "expanded-content"], [1, "card-actions"], ["type", "button", "title", "View Details", 1, "action-btn"], ["type", "button", "title", "Run Agent", 1, "action-btn", "action-btn-primary"], [1, "meta-item"], [1, "fa-solid", "fa-circle", 2, "font-size", "8px"], [1, "agent-stats"], [1, "stat-item"], [1, "stat-label"], [1, "stat-value"], [1, "fa-solid", "fa-check", 2, "color", "#28a745"], [1, "fa-solid", "fa-times", 2, "color", "#dc3545"], ["type", "button", "title", "View Details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-eye"], ["type", "button", "title", "Run Agent", 1, "action-btn", "action-btn-primary", 3, "click"], [1, "fa-solid", "fa-play"], [1, "tree-category-group"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "tree-category-header", "depth-0"], [1, "fa-solid", "fa-folder-open", "tree-folder-icon"], [1, "tree-category-name"], [1, "tree-category-count"], [1, "tree-agent-list"], [1, "tree-agent-row"], [1, "tree-agent-row", 3, "click"], [1, "tree-agent-icon"], [1, "tree-agent-logo", 3, "src", "alt"], [1, "tree-agent-info"], [1, "tree-agent-name"], [1, "tree-agent-type"], [1, "tree-agent-status"], ["type", "button", "title", "Run Agent", 1, "action-btn-small", "primary"], ["type", "button", "title", "Run Agent", 1, "action-btn-small", "primary", 3, "click"], [1, "tree-category-header", 3, "click"], [1, "fa-solid", "tree-chevron"], [1, "fa-solid", "tree-folder-icon"], [1, "tree-agent-list", 3, "padding-left"], [3, "padding-left"], [1, "agents-table"], [3, "click"], [1, "sort-header"], [1, "fa-solid", "fa-chevron-up", "sort-icon"], [1, "agent-name-cell"], [1, "agent-icon-small"], [1, "agent-logo-small", 3, "src", "alt"], [1, "agent-description-small", 3, "innerHTML"], [1, "type-badge"], [1, "status-badge"], [1, "table-actions"], ["type", "button", "title", "View Details", 1, "action-btn-small"], ["type", "button", "title", "View Details", 1, "action-btn-small", 3, "click"], [1, "detail-panel-overlay", 3, "click"], [1, "detail-panel-header"], [1, "detail-panel-title"], [1, "detail-icon"], [1, "detail-logo", 3, "src", "alt"], [1, "detail-title-info"], [1, "detail-subtitle"], [1, "detail-panel-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "detail-panel-content"], [1, "detail-section"], [1, "detail-badges"], [1, "feature-badge"], [1, "detail-section-title"], [1, "fa-solid", "fa-cog"], [1, "detail-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value"], [1, "fa-solid", "fa-clock"], [1, "detail-panel-actions"], ["type", "button", 1, "detail-action-btn", "secondary"], ["type", "button", 1, "detail-action-btn", "primary", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "fa-solid", "fa-bolt"], [1, "fa-solid", "fa-align-left"], [1, "detail-description"], [1, "fa-solid", "fa-check", 2, "color", "#10b981"], [1, "fa-solid", "fa-times", 2, "color", "#ef4444"], ["type", "button", 1, "detail-action-btn", "secondary", 3, "click"]], template: function AgentConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
1428
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentConfigurationComponent, selectors: [["app-agent-configuration"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 33, vars: 15, consts: [["categoryNodeTpl", ""], [1, "agent-configuration-container"], [1, "dashboard-header"], [1, "header-info"], [1, "dashboard-title"], [1, "fa-solid", "fa-robot"], ["type", "button", "title", "Toggle Filters", 1, "filter-toggle-btn", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "item-count"], [1, "header-controls"], [1, "view-toggle"], ["type", "button", "title", "Grid View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["type", "button", "title", "List View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-list"], ["type", "button", "title", "Category Tree View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-folder-tree"], ["type", "button", "title", "Create New Agent", 1, "control-btn", "primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "main-content"], ["direction", "horizontal", 1, "main-splitter"], [3, "size", "minSize", "maxSize"], [1, "agents-content"], [1, "loading-container"], [1, "detail-panel-overlay"], [1, "detail-panel"], [3, "filtersChange", "filterChange", "resetFilters", "closePanel", "agents", "filteredAgents", "filters"], ["text", "Loading agents...", "size", "large"], [1, "empty-state"], ["type", "button", 1, "empty-state-btn", 3, "click"], [1, "agents-grid"], [1, "agents-tree"], [1, "agents-list"], [1, "agent-card", 3, "expanded"], [1, "agent-card"], [1, "card-header", 3, "click"], [1, "agent-info"], [1, "agent-icon"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-details"], [1, "agent-name", 3, "innerHTML"], [1, "agent-meta"], [1, "meta-item", "type-badge"], [1, "fa-solid", "fa-tag"], [1, "meta-item", 3, "class"], [1, "fa-solid", "fa-chevron-down", "expand-icon"], [1, "card-body"], [1, "agent-description", 3, "innerHTML"], [1, "agent-description", "text-muted"], [1, "expanded-content"], [1, "card-actions"], ["type", "button", "title", "View Details", 1, "action-btn"], ["type", "button", "title", "Run Agent", 1, "action-btn", "action-btn-primary"], [1, "meta-item"], [1, "fa-solid", "fa-circle", 2, "font-size", "8px"], [1, "agent-stats"], [1, "stat-item"], [1, "stat-label"], [1, "stat-value"], [1, "fa-solid", "fa-check", 2, "color", "#28a745"], [1, "fa-solid", "fa-times", 2, "color", "#dc3545"], ["type", "button", "title", "View Details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-eye"], ["type", "button", "title", "Run Agent", 1, "action-btn", "action-btn-primary", 3, "click"], [1, "fa-solid", "fa-play"], [1, "tree-category-group"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "tree-category-header", "depth-0"], [1, "fa-solid", "fa-folder-open", "tree-folder-icon"], [1, "tree-category-name"], [1, "tree-category-count"], [1, "tree-agent-list"], [1, "tree-agent-row"], [1, "tree-agent-row", 3, "click"], [1, "tree-agent-icon"], [1, "tree-agent-logo", 3, "src", "alt"], [1, "tree-agent-info"], [1, "tree-agent-name"], [1, "tree-agent-type"], [1, "tree-agent-status"], ["type", "button", "title", "Run Agent", 1, "action-btn-small", "primary"], ["type", "button", "title", "Run Agent", 1, "action-btn-small", "primary", 3, "click"], [1, "tree-category-header", 3, "click"], [1, "fa-solid", "tree-chevron"], [1, "fa-solid", "tree-folder-icon"], [1, "tree-agent-list", 3, "padding-left"], [3, "padding-left"], [1, "agents-table"], [3, "click"], [1, "sort-header"], [1, "fa-solid", "fa-chevron-up", "sort-icon"], [1, "agent-name-cell"], [1, "agent-icon-small"], [1, "agent-logo-small", 3, "src", "alt"], [1, "agent-description-small", 3, "innerHTML"], [1, "type-badge"], [1, "status-badge"], [1, "table-actions"], ["type", "button", "title", "View Details", 1, "action-btn-small"], ["type", "button", "title", "View Details", 1, "action-btn-small", 3, "click"], [1, "detail-panel-overlay", 3, "click"], [1, "detail-panel-header"], [1, "detail-panel-title"], [1, "detail-icon"], [1, "detail-logo", 3, "src", "alt"], [1, "detail-title-info"], [1, "detail-subtitle"], [1, "detail-panel-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "detail-panel-content"], [1, "detail-section"], [1, "detail-badges"], [1, "feature-badge"], [1, "detail-section-title"], [1, "fa-solid", "fa-cog"], [1, "detail-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value"], [1, "fa-solid", "fa-clock"], [1, "detail-panel-actions"], ["type", "button", 1, "detail-action-btn", "secondary"], ["type", "button", 1, "detail-action-btn", "primary", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "fa-solid", "fa-bolt"], [1, "fa-solid", "fa-align-left"], [1, "detail-description"], [1, "fa-solid", "fa-check", 2, "color", "#10b981"], [1, "fa-solid", "fa-times", 2, "color", "#ef4444"], ["type", "button", 1, "detail-action-btn", "secondary", 3, "click"]], template: function AgentConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
1420
1429
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "h2", 4);
1421
1430
  i0.ɵɵelement(4, "i", 5);
1422
1431
  i0.ɵɵtext(5, " Agent Configuration ");
@@ -1446,18 +1455,15 @@ let AgentConfigurationComponent = class AgentConfigurationComponent extends Base
1446
1455
  i0.ɵɵelement(21, "i", 18);
1447
1456
  i0.ɵɵtext(22, " New Agent ");
1448
1457
  i0.ɵɵelementEnd()()();
1449
- i0.ɵɵelementStart(23, "div", 19)(24, "kendo-splitter", 20);
1450
- i0.ɵɵlistener("layoutChange", function AgentConfigurationComponent_Template_kendo_splitter_layoutChange_24_listener($event) { return ctx.onMainSplitterChange($event); });
1451
- i0.ɵɵelementStart(25, "kendo-splitter-pane", 21)(26, "mj-agent-filter-panel", 22);
1452
- i0.ɵɵlistener("filtersChange", function AgentConfigurationComponent_Template_mj_agent_filter_panel_filtersChange_26_listener($event) { return ctx.onFiltersChange($event); })("filterChange", function AgentConfigurationComponent_Template_mj_agent_filter_panel_filterChange_26_listener() { return ctx.onFilterChange(); })("resetFilters", function AgentConfigurationComponent_Template_mj_agent_filter_panel_resetFilters_26_listener() { return ctx.onResetFilters(); })("closePanel", function AgentConfigurationComponent_Template_mj_agent_filter_panel_closePanel_26_listener() { return ctx.toggleFilterPanel(); });
1453
- i0.ɵɵelementEnd()();
1454
- i0.ɵɵelementStart(27, "kendo-splitter-pane", 23)(28, "div", 24);
1455
- i0.ɵɵconditionalCreate(29, AgentConfigurationComponent_Conditional_29_Template, 2, 0, "div", 25);
1456
- i0.ɵɵconditionalCreate(30, AgentConfigurationComponent_Conditional_30_Template, 2, 1);
1458
+ i0.ɵɵelementStart(23, "div", 19)(24, "as-split", 20);
1459
+ i0.ɵɵconditionalCreate(25, AgentConfigurationComponent_Conditional_25_Template, 2, 6, "as-split-area", 21);
1460
+ i0.ɵɵelementStart(26, "as-split-area")(27, "div", 22);
1461
+ i0.ɵɵconditionalCreate(28, AgentConfigurationComponent_Conditional_28_Template, 2, 0, "div", 23);
1462
+ i0.ɵɵconditionalCreate(29, AgentConfigurationComponent_Conditional_29_Template, 2, 1);
1457
1463
  i0.ɵɵelementEnd()()()();
1458
- i0.ɵɵconditionalCreate(31, AgentConfigurationComponent_Conditional_31_Template, 1, 0, "div", 26);
1459
- i0.ɵɵelementStart(32, "div", 27);
1460
- i0.ɵɵconditionalCreate(33, AgentConfigurationComponent_Conditional_33_Template, 71, 26);
1464
+ i0.ɵɵconditionalCreate(30, AgentConfigurationComponent_Conditional_30_Template, 1, 0, "div", 24);
1465
+ i0.ɵɵelementStart(31, "div", 25);
1466
+ i0.ɵɵconditionalCreate(32, AgentConfigurationComponent_Conditional_32_Template, 71, 26);
1461
1467
  i0.ɵɵelementEnd()();
1462
1468
  } if (rf & 2) {
1463
1469
  i0.ɵɵadvance(8);
@@ -1471,22 +1477,18 @@ let AgentConfigurationComponent = class AgentConfigurationComponent extends Base
1471
1477
  i0.ɵɵadvance(2);
1472
1478
  i0.ɵɵclassProp("active", ctx.viewMode === "tree");
1473
1479
  i0.ɵɵadvance(7);
1474
- i0.ɵɵproperty("size", ctx.filterPanelVisible ? "320px" : "0px")("collapsible", false)("resizable", ctx.filterPanelVisible)("scrollable", false)("hidden", !ctx.filterPanelVisible);
1475
- i0.ɵɵadvance();
1476
- i0.ɵɵproperty("agents", ctx.agents)("filteredAgents", ctx.filteredAgents)("filters", ctx.currentFilters);
1477
- i0.ɵɵadvance();
1478
- i0.ɵɵproperty("resizable", true)("scrollable", true);
1479
- i0.ɵɵadvance(2);
1480
- i0.ɵɵconditional(ctx.isLoading ? 29 : -1);
1480
+ i0.ɵɵconditional(ctx.filterPanelVisible ? 25 : -1);
1481
+ i0.ɵɵadvance(3);
1482
+ i0.ɵɵconditional(ctx.isLoading ? 28 : -1);
1481
1483
  i0.ɵɵadvance();
1482
- i0.ɵɵconditional(!ctx.isLoading ? 30 : -1);
1484
+ i0.ɵɵconditional(!ctx.isLoading ? 29 : -1);
1483
1485
  i0.ɵɵadvance();
1484
- i0.ɵɵconditional(ctx.detailPanelVisible ? 31 : -1);
1486
+ i0.ɵɵconditional(ctx.detailPanelVisible ? 30 : -1);
1485
1487
  i0.ɵɵadvance();
1486
1488
  i0.ɵɵclassProp("visible", ctx.detailPanelVisible);
1487
1489
  i0.ɵɵadvance();
1488
- i0.ɵɵconditional(ctx.selectedAgent ? 33 : -1);
1489
- } }, dependencies: [i4.NgTemplateOutlet, i5.SplitterComponent, i5.SplitterPaneComponent, i6.LoadingComponent, i7.AgentFilterPanelComponent, i4.DatePipe, i8.HighlightSearchPipe], styles: ["\n\n\n\n\n\n\n\n.agent-configuration-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n}\n\n\n\n.dashboard-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n z-index: 10;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.dashboard-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 22px;\n}\n\n.filter-toggle-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.filter-toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.filter-toggle-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.item-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n padding: 6px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 20px;\n border: 1px solid var(--mj-border-default);\n}\n\n.header-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n padding: 3px;\n border: 1px solid var(--mj-border-default);\n}\n\n.view-btn[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n padding: 8px 14px;\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 15px;\n}\n\n.view-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.view-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.control-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.control-btn.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n}\n\n.control-btn.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.main-splitter[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\nkendo-splitter[_ngcontent-%COMP%] {\n background: transparent;\n}\n\n[_nghost-%COMP%] .k-splitter {\n border: none;\n background: transparent;\n}\n\n[_nghost-%COMP%] .k-splitbar {\n background: var(--mj-border-default);\n width: 6px;\n}\n\n[_nghost-%COMP%] .k-splitbar:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n[_nghost-%COMP%] .k-pane {\n overflow: hidden;\n}\n\n\n\n\n\n\n.agents-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 28px;\n background: var(--mj-bg-surface-card);\n}\n\n\n\n.agents-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));\n gap: 24px;\n}\n\n.agent-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n border: 1px solid var(--mj-border-default);\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n position: relative;\n}\n\n.agent-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.agent-card[_ngcontent-%COMP%]:hover {\n box-shadow: 0 20px 40px -15px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n transform: translateY(-4px);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.agent-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.agent-card.expanded[_ngcontent-%COMP%] {\n box-shadow: 0 25px 50px -12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n border-color: var(--mj-brand-accent);\n}\n\n.agent-card.expanded[_ngcontent-%COMP%]::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n padding: 24px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n cursor: pointer;\n user-select: none;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.card-header[_ngcontent-%COMP%]:hover {\n background-color: var(--mj-bg-surface-hover);\n}\n\n.agent-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 18px;\n flex: 1;\n}\n\n.agent-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.agent-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.agent-icon[_ngcontent-%COMP%] .agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.agent-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin-bottom: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 6px;\n background: var(--mj-bg-surface-sunken);\n padding: 4px 10px;\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.meta-item.status-active[_ngcontent-%COMP%] {\n color: var(--mj-color-success-700);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-success-700);\n}\n\n.meta-item.status-pending[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-700);\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-pending[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-700);\n}\n\n.meta-item.status-disabled[_ngcontent-%COMP%], \n.meta-item.status-inactive[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n}\n\n.meta-item.status-disabled[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.meta-item.status-inactive[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n\n\n.meta-item.type-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.meta-item.type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-disabled);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 8px;\n border-radius: 8px;\n}\n\n.expand-icon[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.expand-icon.rotated[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n color: var(--mj-brand-primary);\n}\n\n.card-body[_ngcontent-%COMP%] {\n padding: 0 24px 24px 24px;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin: 18px 0 0 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-muted);\n}\n\n.agent-description.text-muted[_ngcontent-%COMP%] {\n font-style: italic;\n color: var(--mj-text-disabled);\n}\n\n\n\n.expanded-content[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: _ngcontent-%COMP%_slideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-12px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 18px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 15px;\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n\n\n.card-actions[_ngcontent-%COMP%] {\n padding: 18px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 10px 20px;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n}\n\n.action-btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.action-btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-2px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n\n\n.agents-list[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.agents-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n}\n\n.agents-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.agents-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 16px 20px;\n text-align: left;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n cursor: pointer;\n user-select: none;\n transition: all 0.2s ease;\n}\n\n.agents-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n}\n\n.agents-table[_ngcontent-%COMP%] th.sorted[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.sort-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sort-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: all 0.2s ease;\n}\n\n.agents-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:hover .sort-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.agents-table[_ngcontent-%COMP%] th.sorted[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.agents-table[_ngcontent-%COMP%] th.sorted.desc[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n}\n\n.agents-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.agents-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.agents-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.agents-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 18px 20px;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.agent-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n}\n\n.agent-icon-small[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.agent-icon-small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n.agent-icon-small[_ngcontent-%COMP%] .agent-logo-small[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 10px;\n}\n\n.agent-name-cell[_ngcontent-%COMP%] .agent-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0;\n white-space: normal;\n}\n\n.agent-description-small[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n line-height: 1.4;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n}\n\n.status-badge.status-active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n\n.status-badge.status-pending[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n\n.status-badge.status-disabled[_ngcontent-%COMP%], \n.status-badge.status-inactive[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.status-unknown[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.execution-mode[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.table-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n}\n\n.action-btn-small[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn-small[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.action-btn-small.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.action-btn-small.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 100px 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 80px;\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n margin-bottom: 28px;\n display: block;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-size: 24px;\n font-weight: 700;\n margin: 0 0 12px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n line-height: 1.6;\n max-width: 420px;\n margin: 0 auto 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 14px 28px;\n border-radius: 12px;\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: inline-flex;\n align-items: center;\n gap: 10px;\n box-shadow: 0 4px 15px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.empty-state-btn[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 25px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 400px;\n}\n\n\n\n@media (max-width: 768px) {\n .dashboard-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n padding: 16px 20px;\n }\n\n .header-info[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: center;\n }\n\n .header-controls[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .agents-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .agents-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n .agent-stats[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 18px;\n }\n\n .card-body[_ngcontent-%COMP%] {\n padding: 0 18px 18px 18px;\n }\n\n .card-actions[_ngcontent-%COMP%] {\n padding: 14px 18px;\n flex-wrap: wrap;\n }\n}\n\n\n\n\n\n\n.detail-panel-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(4px);\n z-index: 1000;\n animation: _ngcontent-%COMP%_fadeIn 0.25s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -480px;\n width: 480px;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n}\n\n.detail-panel.visible[_ngcontent-%COMP%] {\n right: 0;\n}\n\n\n\n.detail-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.detail-panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.detail-icon[_ngcontent-%COMP%] .detail-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.detail-title-info[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 4px 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.detail-panel-close[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.detail-panel-close[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n\n\n\n.detail-panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n}\n\n.detail-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.detail-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.feature-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.feature-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.detail-section-title[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.detail-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.detail-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-secondary);\n}\n\n.detail-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 14px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n.detail-code-block[_ngcontent-%COMP%] {\n background: var(--mj-text-primary);\n color: var(--mj-border-default);\n padding: 16px;\n border-radius: 10px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.6;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n\n\n.detail-panel-actions[_ngcontent-%COMP%] {\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.detail-action-btn[_ngcontent-%COMP%] {\n flex: 1;\n padding: 14px 20px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.detail-action-btn.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border: 2px solid transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-action-btn.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n\n\n@media (max-width: 520px) {\n .detail-panel[_ngcontent-%COMP%] {\n width: 100%;\n right: -100%;\n }\n\n .detail-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n[_nghost-%COMP%] .search-highlight, \n.search-highlight[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: inherit;\n}\n\n\n\n\n\n\n.agents-tree[_ngcontent-%COMP%] {\n padding: 8px 16px;\n}\n\n.tree-category-group[_ngcontent-%COMP%] {\n margin-bottom: 2px;\n}\n\n.tree-category-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 8px;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s ease;\n}\n\n.tree-category-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-chevron[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-muted);\n width: 12px;\n text-align: center;\n transition: transform 0.15s ease;\n}\n\n.tree-folder-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-brand-primary);\n}\n\n.tree-category-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.tree-category-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n font-weight: 500;\n}\n\n\n\n.tree-agent-list[_ngcontent-%COMP%] {\n padding-left: 24px;\n}\n\n.tree-agent-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.tree-agent-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-agent-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.tree-agent-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-inverse);\n}\n\n.tree-agent-logo[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n object-fit: cover;\n}\n\n.tree-agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.tree-agent-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-agent-type[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.tree-agent-status[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n padding: 2px 8px;\n border-radius: 4px;\n white-space: nowrap;\n}\n\n.tree-agent-status.status-active[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n}\n\n.tree-agent-status.status-disabled[_ngcontent-%COMP%], \n.tree-agent-status.status-inactive[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n}\n\n.tree-agent-status.status-pending[_ngcontent-%COMP%] {\n color: var(--mj-status-warning-text);\n background: var(--mj-status-warning-bg);\n}"] });
1490
+ i0.ɵɵconditional(ctx.selectedAgent ? 32 : -1);
1491
+ } }, dependencies: [i4.NgTemplateOutlet, i5.SplitComponent, i5.SplitAreaComponent, i6.LoadingComponent, i7.AgentFilterPanelComponent, i4.DatePipe, i8.HighlightSearchPipe], styles: ["\n\n\n\n\n\n\n\n.agent-configuration-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n}\n\n\n\n.dashboard-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n z-index: 10;\n}\n\n.header-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.dashboard-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 22px;\n}\n\n.filter-toggle-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.filter-toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.filter-toggle-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.item-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n padding: 6px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 20px;\n border: 1px solid var(--mj-border-default);\n}\n\n.header-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n padding: 3px;\n border: 1px solid var(--mj-border-default);\n}\n\n.view-btn[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n padding: 8px 14px;\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 15px;\n}\n\n.view-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.view-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.control-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.control-btn.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n}\n\n.control-btn.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.main-splitter[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\nas-split[_ngcontent-%COMP%] {\n background: transparent;\n}\n\n\n\n\n\n\n.agents-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 28px;\n background: var(--mj-bg-surface-card);\n}\n\n\n\n.agents-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));\n gap: 24px;\n}\n\n.agent-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n border: 1px solid var(--mj-border-default);\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n position: relative;\n}\n\n.agent-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.agent-card[_ngcontent-%COMP%]:hover {\n box-shadow: 0 20px 40px -15px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n transform: translateY(-4px);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.agent-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.agent-card.expanded[_ngcontent-%COMP%] {\n box-shadow: 0 25px 50px -12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n border-color: var(--mj-brand-accent);\n}\n\n.agent-card.expanded[_ngcontent-%COMP%]::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n padding: 24px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n cursor: pointer;\n user-select: none;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.card-header[_ngcontent-%COMP%]:hover {\n background-color: var(--mj-bg-surface-hover);\n}\n\n.agent-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 18px;\n flex: 1;\n}\n\n.agent-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.agent-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.agent-icon[_ngcontent-%COMP%] .agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.agent-details[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin-bottom: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 6px;\n background: var(--mj-bg-surface-sunken);\n padding: 4px 10px;\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.meta-item.status-active[_ngcontent-%COMP%] {\n color: var(--mj-color-success-700);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-success-700);\n}\n\n.meta-item.status-pending[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-700);\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-pending[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-700);\n}\n\n.meta-item.status-disabled[_ngcontent-%COMP%], \n.meta-item.status-inactive[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n}\n\n.meta-item.status-disabled[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.meta-item.status-inactive[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n\n\n.meta-item.type-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.meta-item.type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-disabled);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 8px;\n border-radius: 8px;\n}\n\n.expand-icon[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.expand-icon.rotated[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n color: var(--mj-brand-primary);\n}\n\n.card-body[_ngcontent-%COMP%] {\n padding: 0 24px 24px 24px;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin: 18px 0 0 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-muted);\n}\n\n.agent-description.text-muted[_ngcontent-%COMP%] {\n font-style: italic;\n color: var(--mj-text-disabled);\n}\n\n\n\n.expanded-content[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: _ngcontent-%COMP%_slideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-12px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 18px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 15px;\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n\n\n.card-actions[_ngcontent-%COMP%] {\n padding: 18px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 10px 20px;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n}\n\n.action-btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.action-btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-2px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n\n\n.agents-list[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.agents-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n}\n\n.agents-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.agents-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 16px 20px;\n text-align: left;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n cursor: pointer;\n user-select: none;\n transition: all 0.2s ease;\n}\n\n.agents-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n}\n\n.agents-table[_ngcontent-%COMP%] th.sorted[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.sort-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sort-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: all 0.2s ease;\n}\n\n.agents-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:hover .sort-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.agents-table[_ngcontent-%COMP%] th.sorted[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.agents-table[_ngcontent-%COMP%] th.sorted.desc[_ngcontent-%COMP%] .sort-icon[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n}\n\n.agents-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.agents-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.agents-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.agents-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 18px 20px;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.agent-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n}\n\n.agent-icon-small[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.agent-icon-small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n.agent-icon-small[_ngcontent-%COMP%] .agent-logo-small[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 10px;\n}\n\n.agent-name-cell[_ngcontent-%COMP%] .agent-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0;\n white-space: normal;\n}\n\n.agent-description-small[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n line-height: 1.4;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n}\n\n.status-badge.status-active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n\n.status-badge.status-pending[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n\n.status-badge.status-disabled[_ngcontent-%COMP%], \n.status-badge.status-inactive[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.status-unknown[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.execution-mode[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.table-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n}\n\n.action-btn-small[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn-small[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.action-btn-small.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.action-btn-small.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 100px 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 80px;\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n margin-bottom: 28px;\n display: block;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-size: 24px;\n font-weight: 700;\n margin: 0 0 12px 0;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n line-height: 1.6;\n max-width: 420px;\n margin: 0 auto 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 14px 28px;\n border-radius: 12px;\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: inline-flex;\n align-items: center;\n gap: 10px;\n box-shadow: 0 4px 15px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.empty-state-btn[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 25px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 400px;\n}\n\n\n\n@media (max-width: 768px) {\n .dashboard-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n padding: 16px 20px;\n }\n\n .header-info[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: center;\n }\n\n .header-controls[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .agents-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .agents-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n .agent-stats[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 18px;\n }\n\n .card-body[_ngcontent-%COMP%] {\n padding: 0 18px 18px 18px;\n }\n\n .card-actions[_ngcontent-%COMP%] {\n padding: 14px 18px;\n flex-wrap: wrap;\n }\n}\n\n\n\n\n\n\n.detail-panel-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(4px);\n z-index: 1000;\n animation: _ngcontent-%COMP%_fadeIn 0.25s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -480px;\n width: 480px;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n}\n\n.detail-panel.visible[_ngcontent-%COMP%] {\n right: 0;\n}\n\n\n\n.detail-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.detail-panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.detail-icon[_ngcontent-%COMP%] .detail-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.detail-title-info[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 4px 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.detail-panel-close[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.detail-panel-close[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n\n\n\n.detail-panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n}\n\n.detail-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.detail-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.feature-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.feature-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.detail-section-title[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.detail-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.detail-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-secondary);\n}\n\n.detail-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 14px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n.detail-code-block[_ngcontent-%COMP%] {\n background: var(--mj-text-primary);\n color: var(--mj-border-default);\n padding: 16px;\n border-radius: 10px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.6;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n\n\n.detail-panel-actions[_ngcontent-%COMP%] {\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.detail-action-btn[_ngcontent-%COMP%] {\n flex: 1;\n padding: 14px 20px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.detail-action-btn.secondary[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.detail-action-btn.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border: 2px solid transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-action-btn.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n\n\n@media (max-width: 520px) {\n .detail-panel[_ngcontent-%COMP%] {\n width: 100%;\n right: -100%;\n }\n\n .detail-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n\n[_nghost-%COMP%] .search-highlight, \n.search-highlight[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: inherit;\n}\n\n\n\n\n\n\n.agents-tree[_ngcontent-%COMP%] {\n padding: 8px 16px;\n}\n\n.tree-category-group[_ngcontent-%COMP%] {\n margin-bottom: 2px;\n}\n\n.tree-category-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 8px;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s ease;\n}\n\n.tree-category-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-chevron[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-muted);\n width: 12px;\n text-align: center;\n transition: transform 0.15s ease;\n}\n\n.tree-folder-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-brand-primary);\n}\n\n.tree-category-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.tree-category-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n font-weight: 500;\n}\n\n\n\n.tree-agent-list[_ngcontent-%COMP%] {\n padding-left: 24px;\n}\n\n.tree-agent-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.tree-agent-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-agent-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.tree-agent-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-inverse);\n}\n\n.tree-agent-logo[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n object-fit: cover;\n}\n\n.tree-agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.tree-agent-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-agent-type[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.tree-agent-status[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n padding: 2px 8px;\n border-radius: 4px;\n white-space: nowrap;\n}\n\n.tree-agent-status.status-active[_ngcontent-%COMP%] {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n}\n\n.tree-agent-status.status-disabled[_ngcontent-%COMP%], \n.tree-agent-status.status-inactive[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n}\n\n.tree-agent-status.status-pending[_ngcontent-%COMP%] {\n color: var(--mj-status-warning-text);\n background: var(--mj-status-warning-bg);\n}"] });
1490
1492
  };
1491
1493
  AgentConfigurationComponent = __decorate([
1492
1494
  RegisterClass(BaseResourceComponent, 'AIAgentsResource')
@@ -1494,7 +1496,7 @@ AgentConfigurationComponent = __decorate([
1494
1496
  export { AgentConfigurationComponent };
1495
1497
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentConfigurationComponent, [{
1496
1498
  type: Component,
1497
- args: [{ standalone: false, selector: 'app-agent-configuration', template: "<div class=\"agent-configuration-container\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <h2 class=\"dashboard-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h2>\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=\"item-count\">{{ filteredAgents.length }} agents</span>\n </div>\n \n <div class=\"header-controls\">\n <div class=\"view-toggle\">\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"setViewMode('grid')\"\n title=\"Grid View\">\n <i class=\"fa-solid fa-grip\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"setViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'tree'\"\n (click)=\"setViewMode('tree')\"\n title=\"Category Tree View\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </button>\n </div>\n \n <button \n type=\"button\" \n class=\"control-btn primary\"\n (click)=\"createNewAgent()\"\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\" >\n <kendo-splitter \n class=\"main-splitter\"\n orientation=\"horizontal\"\n (layoutChange)=\"onMainSplitterChange($event)\"\n >\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]=\"true\">\n <div class=\"agents-content\">\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agents...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <!-- Agents Display -->\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 <button \n type=\"button\" \n class=\"empty-state-btn\"\n (click)=\"createNewAgent()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create New Agent\n </button>\n </div>\n } @else {\n <!-- Grid View -->\n @if (viewMode === 'grid') {\n <div class=\"agents-grid\">\n @for (agent of filteredAgents; track agent.ID) {\n <div class=\"agent-card\" [class.expanded]=\"expandedAgentId === agent.ID\">\n <!-- Card Header -->\n <div class=\"card-header\" (click)=\"toggleAgentExpansion(agent.ID)\">\n <div class=\"agent-info\">\n <div class=\"agent-icon\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div class=\"agent-details\">\n <h4 class=\"agent-name\" [innerHTML]=\"agent.Name | highlightSearch:currentFilters.searchTerm\"></h4>\n <div class=\"agent-meta\">\n <span class=\"meta-item type-badge\">\n <i class=\"fa-solid fa-tag\"></i>\n {{ getAgentTypeName(agent) }}\n </span>\n @if (agent.Status) {\n <span class=\"meta-item\" [class]=\"'status-' + agent.Status.toLowerCase()\">\n <i class=\"fa-solid fa-circle\" style=\"font-size: 8px;\"></i>\n {{ agent.Status }}\n </span>\n }\n </div>\n </div>\n </div>\n \n <i class=\"fa-solid fa-chevron-down expand-icon\" \n [class.rotated]=\"expandedAgentId === agent.ID\"></i>\n </div>\n\n <!-- Card Body -->\n <div class=\"card-body\">\n @if (agent.Description) {\n <p class=\"agent-description\" [innerHTML]=\"agent.Description | highlightSearch:currentFilters.searchTerm\"></p>\n } @else {\n <p class=\"agent-description text-muted\">No description provided</p>\n }\n \n <!-- Expandable Content -->\n @if (expandedAgentId === agent.ID) {\n <div class=\"expanded-content\">\n <div class=\"agent-stats\">\n @if (agent.Parent) {\n <div class=\"stat-item\">\n <span class=\"stat-label\">Parent</span>\n <span class=\"stat-value\">{{ agent.Parent }}</span>\n </div>\n }\n <div class=\"stat-item\">\n <span class=\"stat-label\">Context Compression</span>\n <span class=\"stat-value\">\n @if (agent.EnableContextCompression) {\n <i class=\"fa-solid fa-check\" style=\"color: #28a745;\"></i> Enabled\n } @else {\n <i class=\"fa-solid fa-times\" style=\"color: #dc3545;\"></i> Disabled\n }\n </span>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\">\n @if (UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn\"\n (click)=\"showAgentDetails(agent, $event)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n Details\n </button>\n }\n\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn action-btn-primary\"\n (click)=\"runAgent(agent); $event.stopPropagation()\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n Run\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n \n <!-- Tree View (Mac Finder style) -->\n @if (viewMode === 'tree') {\n <div class=\"agents-tree\">\n @for (node of categoryTree; track node.Category.ID) {\n @if (hasVisibleContent(node)) {\n <ng-container *ngTemplateOutlet=\"categoryNodeTpl; context: { $implicit: node, depth: 0 }\"></ng-container>\n }\n }\n\n <!-- Uncategorized agents -->\n @if (uncategorizedAgents.length > 0) {\n <div class=\"tree-category-group\">\n <div class=\"tree-category-header depth-0\">\n <i class=\"fa-solid fa-folder-open tree-folder-icon\"></i>\n <span class=\"tree-category-name\">Uncategorized</span>\n <span class=\"tree-category-count\">{{ uncategorizedAgents.length }}</span>\n </div>\n <div class=\"tree-agent-list\">\n @for (agent of uncategorizedAgents; track agent.ID) {\n <div class=\"tree-agent-row\" (click)=\"showAgentDetails(agent)\">\n <div class=\"tree-agent-icon\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"tree-agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div class=\"tree-agent-info\">\n <span class=\"tree-agent-name\">{{ agent.Name }}</span>\n <span class=\"tree-agent-type\">{{ getAgentTypeName(agent) }}</span>\n </div>\n <span class=\"tree-agent-status\" [class]=\"'status-' + (agent.Status || 'unknown').toLowerCase()\">\n {{ agent.Status }}\n </span>\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"runAgent(agent); $event.stopPropagation()\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Recursive category node template -->\n <ng-template #categoryNodeTpl let-node let-depth=\"depth\">\n <div class=\"tree-category-group\">\n <div class=\"tree-category-header\" [class]=\"'depth-' + depth\" (click)=\"toggleCategoryNode(node)\">\n <i class=\"fa-solid tree-chevron\"\n [class.fa-chevron-right]=\"!node.Expanded\"\n [class.fa-chevron-down]=\"node.Expanded\"></i>\n <i class=\"fa-solid tree-folder-icon\"\n [class.fa-folder]=\"!node.Expanded\"\n [class.fa-folder-open]=\"node.Expanded\"></i>\n <span class=\"tree-category-name\">{{ node.Category.Name }}</span>\n <span class=\"tree-category-count\">{{ getAgentCount(node) }}</span>\n </div>\n\n @if (node.Expanded) {\n <!-- Agents directly in this category -->\n @if (node.Agents.length > 0) {\n <div class=\"tree-agent-list\" [style.padding-left.px]=\"(depth + 1) * 24\">\n @for (agent of node.Agents; track agent.ID) {\n <div class=\"tree-agent-row\" (click)=\"showAgentDetails(agent)\">\n <div class=\"tree-agent-icon\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"tree-agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div class=\"tree-agent-info\">\n <span class=\"tree-agent-name\">{{ agent.Name }}</span>\n <span class=\"tree-agent-type\">{{ getAgentTypeName(agent) }}</span>\n </div>\n <span class=\"tree-agent-status\" [class]=\"'status-' + (agent.Status || 'unknown').toLowerCase()\">\n {{ agent.Status }}\n </span>\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"runAgent(agent); $event.stopPropagation()\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- Child categories -->\n @for (child of node.Children; track child.Category.ID) {\n @if (hasVisibleContent(child)) {\n <div [style.padding-left.px]=\"(depth + 1) * 24\">\n <ng-container *ngTemplateOutlet=\"categoryNodeTpl; context: { $implicit: child, depth: depth + 1 }\"></ng-container>\n </div>\n }\n }\n }\n </div>\n </ng-template>\n\n <!-- List View -->\n @if (viewMode === 'list') {\n <div class=\"agents-list\">\n <table class=\"agents-table\">\n <thead>\n <tr>\n <th (click)=\"sortBy('Name')\"\n [class.sorted]=\"sortColumn === 'Name'\"\n [class.desc]=\"sortColumn === 'Name' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Name\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th>Type</th>\n <th (click)=\"sortBy('Status')\"\n [class.sorted]=\"sortColumn === 'Status'\"\n [class.desc]=\"sortColumn === 'Status' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Status\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (agent of filteredAgents; track agent.ID) {\n <tr>\n <td>\n <div class=\"agent-name-cell\">\n <div class=\"agent-icon-small\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"agent-logo-small\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div>\n <div class=\"agent-name\" [innerHTML]=\"agent.Name | highlightSearch:currentFilters.searchTerm\"></div>\n @if (agent.Description) {\n <div class=\"agent-description-small\" [innerHTML]=\"agent.Description | highlightSearch:currentFilters.searchTerm\"></div>\n }\n </div>\n </div>\n </td>\n <td>\n <span class=\"type-badge\">\n {{ getAgentTypeName(agent) }}\n </span>\n </td>\n <td>\n <span class=\"status-badge\" [class]=\"'status-' + (agent.Status || 'unknown').toLowerCase()\">\n {{ agent.Status || 'Unknown' }}\n </span>\n </td>\n <td>\n <div class=\"table-actions\">\n @if (UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small\"\n (click)=\"showAgentDetails(agent)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n </button>\n }\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"runAgent(agent)\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n }\n }\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n\n <!-- Detail Panel Overlay -->\n @if (detailPanelVisible) {\n <div class=\"detail-panel-overlay\" (click)=\"closeDetailPanel()\"></div>\n }\n\n <!-- Detail Panel -->\n <div class=\"detail-panel\" [class.visible]=\"detailPanelVisible\">\n @if (selectedAgent) {\n <!-- Panel Header -->\n <div class=\"detail-panel-header\">\n <div class=\"detail-panel-title\">\n <div class=\"detail-icon\" [style.background-color]=\"getAgentIconColor(selectedAgent)\">\n @if (hasLogoURL(selectedAgent)) {\n <img [src]=\"selectedAgent.LogoURL\" [alt]=\"selectedAgent.Name + ' logo'\" class=\"detail-logo\">\n } @else {\n <i [class]=\"getAgentIcon(selectedAgent)\"></i>\n }\n </div>\n <div class=\"detail-title-info\">\n <h3>{{ selectedAgent.Name }}</h3>\n <span class=\"detail-subtitle\">{{ getAgentTypeName(selectedAgent) }}</span>\n </div>\n </div>\n <button class=\"detail-panel-close\" (click)=\"closeDetailPanel()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Panel Content -->\n <div class=\"detail-panel-content\">\n <!-- Status and Type Section -->\n <div class=\"detail-section\">\n <div class=\"detail-badges\">\n <span class=\"status-badge\" [class]=\"'status-' + (selectedAgent.Status || 'unknown').toLowerCase()\">\n <i class=\"fa-solid fa-circle\" style=\"font-size: 8px;\"></i>\n {{ selectedAgent.Status || 'Unknown' }}\n </span>\n @if (selectedAgent.ExposeAsAction) {\n <span class=\"feature-badge\">\n <i class=\"fa-solid fa-bolt\"></i>\n Exposed as Action\n </span>\n }\n </div>\n </div>\n\n <!-- Description -->\n @if (selectedAgent.Description) {\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-align-left\"></i>\n Description\n </h4>\n <p class=\"detail-description\">{{ selectedAgent.Description }}</p>\n </div>\n }\n\n <!-- Configuration Details -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-cog\"></i>\n Configuration\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Execution Mode</span>\n <span class=\"detail-value\">\n <i [class]=\"getExecutionModeIcon(selectedAgent.ExecutionMode)\"></i>\n {{ selectedAgent.ExecutionMode }}\n </span>\n </div>\n @if (getParentAgentName(selectedAgent)) {\n <div class=\"detail-item\">\n <span class=\"detail-label\">Parent Agent</span>\n <span class=\"detail-value\">{{ getParentAgentName(selectedAgent) }}</span>\n </div>\n }\n <div class=\"detail-item\">\n <span class=\"detail-label\">Context Compression</span>\n <span class=\"detail-value\">\n @if (selectedAgent.EnableContextCompression) {\n <i class=\"fa-solid fa-check\" style=\"color: #10b981;\"></i> Enabled\n } @else {\n <i class=\"fa-solid fa-times\" style=\"color: #ef4444;\"></i> Disabled\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Exposed as Action</span>\n <span class=\"detail-value\">\n @if (selectedAgent.ExposeAsAction) {\n <i class=\"fa-solid fa-check\" style=\"color: #10b981;\"></i> Yes\n } @else {\n <i class=\"fa-solid fa-times\" style=\"color: #ef4444;\"></i> No\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Model Selection</span>\n <span class=\"detail-value\">{{ selectedAgent.ModelSelectionMode }}</span>\n </div>\n </div>\n </div>\n\n <!-- Timestamps -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-clock\"></i>\n Timestamps\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Created</span>\n <span class=\"detail-value\">{{ selectedAgent.__mj_CreatedAt | date:'medium' }}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Updated</span>\n <span class=\"detail-value\">{{ selectedAgent.__mj_UpdatedAt | date:'medium' }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Panel Actions -->\n <div class=\"detail-panel-actions\">\n @if (selectedAgent.Status === 'Active') {\n <button\n type=\"button\"\n class=\"detail-action-btn secondary\"\n (click)=\"runAgent(selectedAgent)\">\n <i class=\"fa-solid fa-play\"></i>\n Run Agent\n </button>\n }\n <button\n type=\"button\"\n class=\"detail-action-btn primary\"\n (click)=\"openAgentFromPanel()\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n Open Full Record\n </button>\n </div>\n }\n </div>\n</div>\n\n<!-- AI Agent Test Harness - Now handled by service with minimize support -->", styles: ["/* ============================================\n AI Agents Dashboard - World-Class Design\n Clean white header with brand blue accents\n ============================================ */\n\n/* Container */\n.agent-configuration-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n}\n\n/* Dashboard Header - Clean White Style */\n.dashboard-header {\n background: var(--mj-bg-surface);\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n z-index: 10;\n}\n\n.header-info {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.dashboard-title {\n margin: 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-title i {\n color: var(--mj-brand-primary);\n font-size: 22px;\n}\n\n.filter-toggle-btn {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.filter-toggle-btn:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.filter-toggle-btn i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.item-count {\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n padding: 6px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 20px;\n border: 1px solid var(--mj-border-default);\n}\n\n.header-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n padding: 3px;\n border: 1px solid var(--mj-border-default);\n}\n\n.view-btn {\n background: transparent;\n border: none;\n padding: 8px 14px;\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 15px;\n}\n\n.view-btn:hover {\n color: var(--mj-text-secondary);\n}\n\n.view-btn.active {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.control-btn:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn i {\n font-size: 14px;\n}\n\n.control-btn.primary {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n}\n\n.control-btn.primary:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n/* Main Content */\n.main-content {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.main-splitter {\n flex: 1;\n min-height: 0;\n}\n\n/* Splitter Styling */\nkendo-splitter {\n background: transparent;\n}\n\n:host ::ng-deep .k-splitter {\n border: none;\n background: transparent;\n}\n\n:host ::ng-deep .k-splitbar {\n background: var(--mj-border-default);\n width: 6px;\n}\n\n:host ::ng-deep .k-splitbar:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n:host ::ng-deep .k-pane {\n overflow: hidden;\n}\n\n/* Filter Panel Styles - used by child component */\n\n/* Agents Content */\n.agents-content {\n height: 100%;\n overflow-y: auto;\n padding: 28px;\n background: var(--mj-bg-surface-card);\n}\n\n/* Grid View */\n.agents-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));\n gap: 24px;\n}\n\n.agent-card {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n border: 1px solid var(--mj-border-default);\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n position: relative;\n}\n\n.agent-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.agent-card:hover {\n box-shadow: 0 20px 40px -15px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n transform: translateY(-4px);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.agent-card:hover::before {\n opacity: 1;\n}\n\n.agent-card.expanded {\n box-shadow: 0 25px 50px -12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n border-color: var(--mj-brand-accent);\n}\n\n.agent-card.expanded::before {\n opacity: 1;\n}\n\n.card-header {\n padding: 24px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n cursor: pointer;\n user-select: none;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.card-header:hover {\n background-color: var(--mj-bg-surface-hover);\n}\n\n.agent-info {\n display: flex;\n gap: 18px;\n flex: 1;\n}\n\n.agent-icon {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.agent-icon i {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.agent-icon .agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.agent-details {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin-bottom: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-meta {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n font-size: 13px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 6px;\n background: var(--mj-bg-surface-sunken);\n padding: 4px 10px;\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.meta-item.status-active {\n color: var(--mj-color-success-700);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-active i {\n color: var(--mj-color-success-700);\n}\n\n.meta-item.status-pending {\n color: var(--mj-color-warning-700);\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-pending i {\n color: var(--mj-color-warning-700);\n}\n\n.meta-item.status-disabled,\n.meta-item.status-inactive {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n}\n\n.meta-item.status-disabled i,\n.meta-item.status-inactive i {\n color: var(--mj-text-muted);\n}\n\n/* Type Badge - for Agent Type display */\n.type-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.type-badge i {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n/* Type badge in meta context (grid view) */\n.meta-item.type-badge {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.meta-item.type-badge i {\n color: var(--mj-brand-primary);\n}\n\n.expand-icon {\n font-size: 16px;\n color: var(--mj-text-disabled);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 8px;\n border-radius: 8px;\n}\n\n.expand-icon:hover {\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.expand-icon.rotated {\n transform: rotate(180deg);\n color: var(--mj-brand-primary);\n}\n\n.card-body {\n padding: 0 24px 24px 24px;\n}\n\n.agent-description {\n margin: 18px 0 0 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-muted);\n}\n\n.agent-description.text-muted {\n font-style: italic;\n color: var(--mj-text-disabled);\n}\n\n/* Expanded Content */\n.expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: slideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-12px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-stats {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 18px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.stat-label {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-value {\n font-size: 15px;\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n/* Card Actions */\n.card-actions {\n padding: 18px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.action-btn {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 10px 20px;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.action-btn:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n}\n\n.action-btn-primary {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.action-btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-2px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n/* List View */\n.agents-list {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.agents-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.agents-table thead {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.agents-table th {\n padding: 16px 20px;\n text-align: left;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n cursor: pointer;\n user-select: none;\n transition: all 0.2s ease;\n}\n\n.agents-table th:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n}\n\n.agents-table th.sorted {\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.sort-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sort-icon {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: all 0.2s ease;\n}\n\n.agents-table th:hover .sort-icon {\n color: var(--mj-brand-primary);\n}\n\n.agents-table th.sorted .sort-icon {\n color: var(--mj-brand-primary);\n}\n\n.agents-table th.sorted.desc .sort-icon {\n transform: rotate(180deg);\n}\n\n.agents-table tbody tr {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.agents-table tbody tr:last-child {\n border-bottom: none;\n}\n\n.agents-table tbody tr:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.agents-table td {\n padding: 18px 20px;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.agent-name-cell {\n display: flex;\n align-items: center;\n gap: 14px;\n}\n\n.agent-icon-small {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.agent-icon-small i {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n.agent-icon-small .agent-logo-small {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 10px;\n}\n\n.agent-name-cell .agent-name {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0;\n white-space: normal;\n}\n\n.agent-description-small {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n line-height: 1.4;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-badge i {\n font-size: 8px;\n}\n\n.status-badge.status-active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n\n.status-badge.status-pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n\n.status-badge.status-disabled,\n.status-badge.status-inactive {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.status-unknown {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.execution-mode {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.execution-mode i {\n color: var(--mj-brand-primary);\n}\n\n.table-actions {\n display: flex;\n gap: 10px;\n}\n\n.action-btn-small {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn-small:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.action-btn-small.primary {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.action-btn-small.primary:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n padding: 100px 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 80px;\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n margin-bottom: 28px;\n display: block;\n}\n\n.empty-state h3 {\n color: var(--mj-text-primary);\n font-size: 24px;\n font-weight: 700;\n margin: 0 0 12px 0;\n}\n\n.empty-state p {\n font-size: 16px;\n line-height: 1.6;\n max-width: 420px;\n margin: 0 auto 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state-btn {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 14px 28px;\n border-radius: 12px;\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: inline-flex;\n align-items: center;\n gap: 10px;\n box-shadow: 0 4px 15px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.empty-state-btn:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 25px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n/* Loading State */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 400px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .dashboard-header {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n padding: 16px 20px;\n }\n\n .header-info {\n flex-wrap: wrap;\n justify-content: center;\n }\n\n .header-controls {\n justify-content: center;\n }\n\n .agents-content {\n padding: 16px;\n }\n\n .agents-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n .agent-stats {\n grid-template-columns: 1fr;\n }\n\n .card-header {\n padding: 18px;\n }\n\n .card-body {\n padding: 0 18px 18px 18px;\n }\n\n .card-actions {\n padding: 14px 18px;\n flex-wrap: wrap;\n }\n}\n\n/* =============================================\n Detail Panel - Slide-in Overlay\n ============================================= */\n\n.detail-panel-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(4px);\n z-index: 1000;\n animation: fadeIn 0.25s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.detail-panel {\n position: fixed;\n top: 0;\n right: -480px;\n width: 480px;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n}\n\n.detail-panel.visible {\n right: 0;\n}\n\n/* Detail Panel Header */\n.detail-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.detail-panel-title {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.detail-icon {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-icon i {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.detail-icon .detail-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.detail-title-info h3 {\n margin: 0 0 4px 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-subtitle {\n font-size: 13px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.detail-panel-close {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.detail-panel-close:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n\n/* Detail Panel Content */\n.detail-panel-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n.detail-section {\n margin-bottom: 28px;\n}\n\n.detail-section:last-child {\n margin-bottom: 0;\n}\n\n.detail-badges {\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.feature-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.feature-badge i {\n font-size: 11px;\n}\n\n.detail-section-title {\n margin: 0 0 16px 0;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.detail-section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.detail-description {\n margin: 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-secondary);\n}\n\n.detail-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 14px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-value i {\n font-size: 13px;\n}\n\n.detail-code-block {\n background: var(--mj-text-primary);\n color: var(--mj-border-default);\n padding: 16px;\n border-radius: 10px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.6;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Detail Panel Actions */\n.detail-panel-actions {\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.detail-action-btn {\n flex: 1;\n padding: 14px 20px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.detail-action-btn.secondary {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.detail-action-btn.secondary:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.detail-action-btn.primary {\n background: var(--mj-brand-primary);\n border: 2px solid transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-action-btn.primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n/* Detail Panel Responsive */\n@media (max-width: 520px) {\n .detail-panel {\n width: 100%;\n right: -100%;\n }\n\n .detail-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* Search Highlight */\n:host ::ng-deep .search-highlight,\n.search-highlight {\n background-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: inherit;\n}\n\n/* ============================================\n Tree View - Mac Finder Style\n ============================================ */\n\n.agents-tree {\n padding: 8px 16px;\n}\n\n.tree-category-group {\n margin-bottom: 2px;\n}\n\n.tree-category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 8px;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s ease;\n}\n\n.tree-category-header:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-chevron {\n font-size: 10px;\n color: var(--mj-text-muted);\n width: 12px;\n text-align: center;\n transition: transform 0.15s ease;\n}\n\n.tree-folder-icon {\n font-size: 14px;\n color: var(--mj-brand-primary);\n}\n\n.tree-category-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.tree-category-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n font-weight: 500;\n}\n\n/* Agent rows within tree */\n.tree-agent-list {\n padding-left: 24px;\n}\n\n.tree-agent-row {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.tree-agent-row:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-agent-icon {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.tree-agent-icon i {\n font-size: 12px;\n color: var(--mj-text-inverse);\n}\n\n.tree-agent-logo {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n object-fit: cover;\n}\n\n.tree-agent-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.tree-agent-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-agent-type {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.tree-agent-status {\n font-size: 11px;\n font-weight: 500;\n padding: 2px 8px;\n border-radius: 4px;\n white-space: nowrap;\n}\n\n.tree-agent-status.status-active {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n}\n\n.tree-agent-status.status-disabled,\n.tree-agent-status.status-inactive {\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n}\n\n.tree-agent-status.status-pending {\n color: var(--mj-status-warning-text);\n background: var(--mj-status-warning-bg);\n}\n"] }]
1499
+ args: [{ standalone: false, selector: 'app-agent-configuration', template: "<div class=\"agent-configuration-container\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <h2 class=\"dashboard-title\">\n <i class=\"fa-solid fa-robot\"></i>\n Agent Configuration\n </h2>\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=\"item-count\">{{ filteredAgents.length }} agents</span>\n </div>\n \n <div class=\"header-controls\">\n <div class=\"view-toggle\">\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"setViewMode('grid')\"\n title=\"Grid View\">\n <i class=\"fa-solid fa-grip\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"setViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'tree'\"\n (click)=\"setViewMode('tree')\"\n title=\"Category Tree View\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </button>\n </div>\n \n <button \n type=\"button\" \n class=\"control-btn primary\"\n (click)=\"createNewAgent()\"\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\" >\n <as-split direction=\"horizontal\" class=\"main-splitter\">\n\n <!-- Filter Panel (Left) -->\n @if (filterPanelVisible) {\n <as-split-area [size]=\"20\" [minSize]=\"15\" [maxSize]=\"30\">\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 </as-split-area>\n }\n\n <!-- Agents List Panel -->\n <as-split-area>\n <div class=\"agents-content\">\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agents...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <!-- Agents Display -->\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 <button \n type=\"button\" \n class=\"empty-state-btn\"\n (click)=\"createNewAgent()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create New Agent\n </button>\n </div>\n } @else {\n <!-- Grid View -->\n @if (viewMode === 'grid') {\n <div class=\"agents-grid\">\n @for (agent of filteredAgents; track agent.ID) {\n <div class=\"agent-card\" [class.expanded]=\"expandedAgentId === agent.ID\">\n <!-- Card Header -->\n <div class=\"card-header\" (click)=\"toggleAgentExpansion(agent.ID)\">\n <div class=\"agent-info\">\n <div class=\"agent-icon\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div class=\"agent-details\">\n <h4 class=\"agent-name\" [innerHTML]=\"agent.Name | highlightSearch:currentFilters.searchTerm\"></h4>\n <div class=\"agent-meta\">\n <span class=\"meta-item type-badge\">\n <i class=\"fa-solid fa-tag\"></i>\n {{ getAgentTypeName(agent) }}\n </span>\n @if (agent.Status) {\n <span class=\"meta-item\" [class]=\"'status-' + agent.Status.toLowerCase()\">\n <i class=\"fa-solid fa-circle\" style=\"font-size: 8px;\"></i>\n {{ agent.Status }}\n </span>\n }\n </div>\n </div>\n </div>\n \n <i class=\"fa-solid fa-chevron-down expand-icon\" \n [class.rotated]=\"expandedAgentId === agent.ID\"></i>\n </div>\n\n <!-- Card Body -->\n <div class=\"card-body\">\n @if (agent.Description) {\n <p class=\"agent-description\" [innerHTML]=\"agent.Description | highlightSearch:currentFilters.searchTerm\"></p>\n } @else {\n <p class=\"agent-description text-muted\">No description provided</p>\n }\n \n <!-- Expandable Content -->\n @if (expandedAgentId === agent.ID) {\n <div class=\"expanded-content\">\n <div class=\"agent-stats\">\n @if (agent.Parent) {\n <div class=\"stat-item\">\n <span class=\"stat-label\">Parent</span>\n <span class=\"stat-value\">{{ agent.Parent }}</span>\n </div>\n }\n <div class=\"stat-item\">\n <span class=\"stat-label\">Context Compression</span>\n <span class=\"stat-value\">\n @if (agent.EnableContextCompression) {\n <i class=\"fa-solid fa-check\" style=\"color: #28a745;\"></i> Enabled\n } @else {\n <i class=\"fa-solid fa-times\" style=\"color: #dc3545;\"></i> Disabled\n }\n </span>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\">\n @if (UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn\"\n (click)=\"showAgentDetails(agent, $event)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n Details\n </button>\n }\n\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn action-btn-primary\"\n (click)=\"runAgent(agent); $event.stopPropagation()\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n Run\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n \n <!-- Tree View (Mac Finder style) -->\n @if (viewMode === 'tree') {\n <div class=\"agents-tree\">\n @for (node of categoryTree; track node.Category.ID) {\n @if (hasVisibleContent(node)) {\n <ng-container *ngTemplateOutlet=\"categoryNodeTpl; context: { $implicit: node, depth: 0 }\"></ng-container>\n }\n }\n\n <!-- Uncategorized agents -->\n @if (uncategorizedAgents.length > 0) {\n <div class=\"tree-category-group\">\n <div class=\"tree-category-header depth-0\">\n <i class=\"fa-solid fa-folder-open tree-folder-icon\"></i>\n <span class=\"tree-category-name\">Uncategorized</span>\n <span class=\"tree-category-count\">{{ uncategorizedAgents.length }}</span>\n </div>\n <div class=\"tree-agent-list\">\n @for (agent of uncategorizedAgents; track agent.ID) {\n <div class=\"tree-agent-row\" (click)=\"showAgentDetails(agent)\">\n <div class=\"tree-agent-icon\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"tree-agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div class=\"tree-agent-info\">\n <span class=\"tree-agent-name\">{{ agent.Name }}</span>\n <span class=\"tree-agent-type\">{{ getAgentTypeName(agent) }}</span>\n </div>\n <span class=\"tree-agent-status\" [class]=\"'status-' + (agent.Status || 'unknown').toLowerCase()\">\n {{ agent.Status }}\n </span>\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"runAgent(agent); $event.stopPropagation()\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Recursive category node template -->\n <ng-template #categoryNodeTpl let-node let-depth=\"depth\">\n <div class=\"tree-category-group\">\n <div class=\"tree-category-header\" [class]=\"'depth-' + depth\" (click)=\"toggleCategoryNode(node)\">\n <i class=\"fa-solid tree-chevron\"\n [class.fa-chevron-right]=\"!node.Expanded\"\n [class.fa-chevron-down]=\"node.Expanded\"></i>\n <i class=\"fa-solid tree-folder-icon\"\n [class.fa-folder]=\"!node.Expanded\"\n [class.fa-folder-open]=\"node.Expanded\"></i>\n <span class=\"tree-category-name\">{{ node.Category.Name }}</span>\n <span class=\"tree-category-count\">{{ getAgentCount(node) }}</span>\n </div>\n\n @if (node.Expanded) {\n <!-- Agents directly in this category -->\n @if (node.Agents.length > 0) {\n <div class=\"tree-agent-list\" [style.padding-left.px]=\"(depth + 1) * 24\">\n @for (agent of node.Agents; track agent.ID) {\n <div class=\"tree-agent-row\" (click)=\"showAgentDetails(agent)\">\n <div class=\"tree-agent-icon\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"tree-agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div class=\"tree-agent-info\">\n <span class=\"tree-agent-name\">{{ agent.Name }}</span>\n <span class=\"tree-agent-type\">{{ getAgentTypeName(agent) }}</span>\n </div>\n <span class=\"tree-agent-status\" [class]=\"'status-' + (agent.Status || 'unknown').toLowerCase()\">\n {{ agent.Status }}\n </span>\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"runAgent(agent); $event.stopPropagation()\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- Child categories -->\n @for (child of node.Children; track child.Category.ID) {\n @if (hasVisibleContent(child)) {\n <div [style.padding-left.px]=\"(depth + 1) * 24\">\n <ng-container *ngTemplateOutlet=\"categoryNodeTpl; context: { $implicit: child, depth: depth + 1 }\"></ng-container>\n </div>\n }\n }\n }\n </div>\n </ng-template>\n\n <!-- List View -->\n @if (viewMode === 'list') {\n <div class=\"agents-list\">\n <table class=\"agents-table\">\n <thead>\n <tr>\n <th (click)=\"sortBy('Name')\"\n [class.sorted]=\"sortColumn === 'Name'\"\n [class.desc]=\"sortColumn === 'Name' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Name\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th>Type</th>\n <th (click)=\"sortBy('Status')\"\n [class.sorted]=\"sortColumn === 'Status'\"\n [class.desc]=\"sortColumn === 'Status' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Status\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (agent of filteredAgents; track agent.ID) {\n <tr>\n <td>\n <div class=\"agent-name-cell\">\n <div class=\"agent-icon-small\" [style.background-color]=\"getAgentIconColor(agent)\">\n @if (hasLogoURL(agent)) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name + ' logo'\" class=\"agent-logo-small\">\n } @else {\n <i [class]=\"getAgentIcon(agent)\"></i>\n }\n </div>\n <div>\n <div class=\"agent-name\" [innerHTML]=\"agent.Name | highlightSearch:currentFilters.searchTerm\"></div>\n @if (agent.Description) {\n <div class=\"agent-description-small\" [innerHTML]=\"agent.Description | highlightSearch:currentFilters.searchTerm\"></div>\n }\n </div>\n </div>\n </td>\n <td>\n <span class=\"type-badge\">\n {{ getAgentTypeName(agent) }}\n </span>\n </td>\n <td>\n <span class=\"status-badge\" [class]=\"'status-' + (agent.Status || 'unknown').toLowerCase()\">\n {{ agent.Status || 'Unknown' }}\n </span>\n </td>\n <td>\n <div class=\"table-actions\">\n @if (UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small\"\n (click)=\"showAgentDetails(agent)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n </button>\n }\n @if (agent.Status === 'Active' && UserCanReadAgents) {\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"runAgent(agent)\"\n title=\"Run Agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n }\n }\n </div>\n </as-split-area>\n </as-split>\n </div>\n\n <!-- Detail Panel Overlay -->\n @if (detailPanelVisible) {\n <div class=\"detail-panel-overlay\" (click)=\"closeDetailPanel()\"></div>\n }\n\n <!-- Detail Panel -->\n <div class=\"detail-panel\" [class.visible]=\"detailPanelVisible\">\n @if (selectedAgent) {\n <!-- Panel Header -->\n <div class=\"detail-panel-header\">\n <div class=\"detail-panel-title\">\n <div class=\"detail-icon\" [style.background-color]=\"getAgentIconColor(selectedAgent)\">\n @if (hasLogoURL(selectedAgent)) {\n <img [src]=\"selectedAgent.LogoURL\" [alt]=\"selectedAgent.Name + ' logo'\" class=\"detail-logo\">\n } @else {\n <i [class]=\"getAgentIcon(selectedAgent)\"></i>\n }\n </div>\n <div class=\"detail-title-info\">\n <h3>{{ selectedAgent.Name }}</h3>\n <span class=\"detail-subtitle\">{{ getAgentTypeName(selectedAgent) }}</span>\n </div>\n </div>\n <button class=\"detail-panel-close\" (click)=\"closeDetailPanel()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Panel Content -->\n <div class=\"detail-panel-content\">\n <!-- Status and Type Section -->\n <div class=\"detail-section\">\n <div class=\"detail-badges\">\n <span class=\"status-badge\" [class]=\"'status-' + (selectedAgent.Status || 'unknown').toLowerCase()\">\n <i class=\"fa-solid fa-circle\" style=\"font-size: 8px;\"></i>\n {{ selectedAgent.Status || 'Unknown' }}\n </span>\n @if (selectedAgent.ExposeAsAction) {\n <span class=\"feature-badge\">\n <i class=\"fa-solid fa-bolt\"></i>\n Exposed as Action\n </span>\n }\n </div>\n </div>\n\n <!-- Description -->\n @if (selectedAgent.Description) {\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-align-left\"></i>\n Description\n </h4>\n <p class=\"detail-description\">{{ selectedAgent.Description }}</p>\n </div>\n }\n\n <!-- Configuration Details -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-cog\"></i>\n Configuration\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Execution Mode</span>\n <span class=\"detail-value\">\n <i [class]=\"getExecutionModeIcon(selectedAgent.ExecutionMode)\"></i>\n {{ selectedAgent.ExecutionMode }}\n </span>\n </div>\n @if (getParentAgentName(selectedAgent)) {\n <div class=\"detail-item\">\n <span class=\"detail-label\">Parent Agent</span>\n <span class=\"detail-value\">{{ getParentAgentName(selectedAgent) }}</span>\n </div>\n }\n <div class=\"detail-item\">\n <span class=\"detail-label\">Context Compression</span>\n <span class=\"detail-value\">\n @if (selectedAgent.EnableContextCompression) {\n <i class=\"fa-solid fa-check\" style=\"color: #10b981;\"></i> Enabled\n } @else {\n <i class=\"fa-solid fa-times\" style=\"color: #ef4444;\"></i> Disabled\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Exposed as Action</span>\n <span class=\"detail-value\">\n @if (selectedAgent.ExposeAsAction) {\n <i class=\"fa-solid fa-check\" style=\"color: #10b981;\"></i> Yes\n } @else {\n <i class=\"fa-solid fa-times\" style=\"color: #ef4444;\"></i> No\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Model Selection</span>\n <span class=\"detail-value\">{{ selectedAgent.ModelSelectionMode }}</span>\n </div>\n </div>\n </div>\n\n <!-- Timestamps -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-clock\"></i>\n Timestamps\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Created</span>\n <span class=\"detail-value\">{{ selectedAgent.__mj_CreatedAt | date:'medium' }}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Updated</span>\n <span class=\"detail-value\">{{ selectedAgent.__mj_UpdatedAt | date:'medium' }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Panel Actions -->\n <div class=\"detail-panel-actions\">\n @if (selectedAgent.Status === 'Active') {\n <button\n type=\"button\"\n class=\"detail-action-btn secondary\"\n (click)=\"runAgent(selectedAgent)\">\n <i class=\"fa-solid fa-play\"></i>\n Run Agent\n </button>\n }\n <button\n type=\"button\"\n class=\"detail-action-btn primary\"\n (click)=\"openAgentFromPanel()\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n Open Full Record\n </button>\n </div>\n }\n </div>\n</div>\n\n<!-- AI Agent Test Harness - Now handled by service with minimize support -->", styles: ["/* ============================================\n AI Agents Dashboard - World-Class Design\n Clean white header with brand blue accents\n ============================================ */\n\n/* Container */\n.agent-configuration-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface-card);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\n}\n\n/* Dashboard Header - Clean White Style */\n.dashboard-header {\n background: var(--mj-bg-surface);\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n z-index: 10;\n}\n\n.header-info {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.dashboard-title {\n margin: 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.dashboard-title i {\n color: var(--mj-brand-primary);\n font-size: 22px;\n}\n\n.filter-toggle-btn {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.filter-toggle-btn:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.filter-toggle-btn i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.item-count {\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n padding: 6px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 20px;\n border: 1px solid var(--mj-border-default);\n}\n\n.header-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n padding: 3px;\n border: 1px solid var(--mj-border-default);\n}\n\n.view-btn {\n background: transparent;\n border: none;\n padding: 8px 14px;\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 15px;\n}\n\n.view-btn:hover {\n color: var(--mj-text-secondary);\n}\n\n.view-btn.active {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n padding: 10px 18px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.control-btn:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.control-btn i {\n font-size: 14px;\n}\n\n.control-btn.primary {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n}\n\n.control-btn.primary:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n/* Main Content */\n.main-content {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.main-splitter {\n flex: 1;\n min-height: 0;\n}\n\n/* Splitter Styling */\nas-split {\n background: transparent;\n}\n\n/* Filter Panel Styles - used by child component */\n\n/* Agents Content */\n.agents-content {\n height: 100%;\n overflow-y: auto;\n padding: 28px;\n background: var(--mj-bg-surface-card);\n}\n\n/* Grid View */\n.agents-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));\n gap: 24px;\n}\n\n.agent-card {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);\n border: 1px solid var(--mj-border-default);\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n position: relative;\n}\n\n.agent-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.agent-card:hover {\n box-shadow: 0 20px 40px -15px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n transform: translateY(-4px);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.agent-card:hover::before {\n opacity: 1;\n}\n\n.agent-card.expanded {\n box-shadow: 0 25px 50px -12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n border-color: var(--mj-brand-accent);\n}\n\n.agent-card.expanded::before {\n opacity: 1;\n}\n\n.card-header {\n padding: 24px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n cursor: pointer;\n user-select: none;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.card-header:hover {\n background-color: var(--mj-bg-surface-hover);\n}\n\n.agent-info {\n display: flex;\n gap: 18px;\n flex: 1;\n}\n\n.agent-icon {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.agent-icon i {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.agent-icon .agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.agent-details {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin-bottom: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.agent-meta {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n font-size: 13px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 6px;\n background: var(--mj-bg-surface-sunken);\n padding: 4px 10px;\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n.meta-item.status-active {\n color: var(--mj-color-success-700);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-active i {\n color: var(--mj-color-success-700);\n}\n\n.meta-item.status-pending {\n color: var(--mj-color-warning-700);\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.status-pending i {\n color: var(--mj-color-warning-700);\n}\n\n.meta-item.status-disabled,\n.meta-item.status-inactive {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n}\n\n.meta-item.status-disabled i,\n.meta-item.status-inactive i {\n color: var(--mj-text-muted);\n}\n\n/* Type Badge - for Agent Type display */\n.type-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.type-badge i {\n font-size: 11px;\n color: var(--mj-brand-primary);\n}\n\n/* Type badge in meta context (grid view) */\n.meta-item.type-badge {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n}\n\n.meta-item.type-badge i {\n color: var(--mj-brand-primary);\n}\n\n.expand-icon {\n font-size: 16px;\n color: var(--mj-text-disabled);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 8px;\n border-radius: 8px;\n}\n\n.expand-icon:hover {\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-sunken);\n}\n\n.expand-icon.rotated {\n transform: rotate(180deg);\n color: var(--mj-brand-primary);\n}\n\n.card-body {\n padding: 0 24px 24px 24px;\n}\n\n.agent-description {\n margin: 18px 0 0 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-muted);\n}\n\n.agent-description.text-muted {\n font-style: italic;\n color: var(--mj-text-disabled);\n}\n\n/* Expanded Content */\n.expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: slideDown 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-12px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.agent-stats {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 18px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.stat-label {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-value {\n font-size: 15px;\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n\n/* Card Actions */\n.card-actions {\n padding: 18px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.action-btn {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 10px 20px;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.action-btn:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n}\n\n.action-btn-primary {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.action-btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-2px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n/* List View */\n.agents-list {\n background: var(--mj-bg-surface);\n border-radius: 16px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.agents-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.agents-table thead {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.agents-table th {\n padding: 16px 20px;\n text-align: left;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n cursor: pointer;\n user-select: none;\n transition: all 0.2s ease;\n}\n\n.agents-table th:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n}\n\n.agents-table th.sorted {\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.sort-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sort-icon {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: all 0.2s ease;\n}\n\n.agents-table th:hover .sort-icon {\n color: var(--mj-brand-primary);\n}\n\n.agents-table th.sorted .sort-icon {\n color: var(--mj-brand-primary);\n}\n\n.agents-table th.sorted.desc .sort-icon {\n transform: rotate(180deg);\n}\n\n.agents-table tbody tr {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background-color 0.2s;\n}\n\n.agents-table tbody tr:last-child {\n border-bottom: none;\n}\n\n.agents-table tbody tr:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.agents-table td {\n padding: 18px 20px;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.agent-name-cell {\n display: flex;\n align-items: center;\n gap: 14px;\n}\n\n.agent-icon-small {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.agent-icon-small i {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n.agent-icon-small .agent-logo-small {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 10px;\n}\n\n.agent-name-cell .agent-name {\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 0;\n white-space: normal;\n}\n\n.agent-description-small {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n line-height: 1.4;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-badge i {\n font-size: 8px;\n}\n\n.status-badge.status-active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-color-success-700);\n}\n\n.status-badge.status-pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-color-warning-700);\n}\n\n.status-badge.status-disabled,\n.status-badge.status-inactive {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.status-unknown {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.execution-mode {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.execution-mode i {\n color: var(--mj-brand-primary);\n}\n\n.table-actions {\n display: flex;\n gap: 10px;\n}\n\n.action-btn-small {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n padding: 8px 12px;\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-btn-small:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.action-btn-small.primary {\n background: var(--mj-brand-primary);\n border-color: transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n}\n\n.action-btn-small.primary:hover {\n background: var(--mj-brand-primary-hover);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n padding: 100px 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 80px;\n background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n margin-bottom: 28px;\n display: block;\n}\n\n.empty-state h3 {\n color: var(--mj-text-primary);\n font-size: 24px;\n font-weight: 700;\n margin: 0 0 12px 0;\n}\n\n.empty-state p {\n font-size: 16px;\n line-height: 1.6;\n max-width: 420px;\n margin: 0 auto 32px;\n color: var(--mj-text-muted);\n}\n\n.empty-state-btn {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 14px 28px;\n border-radius: 12px;\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: inline-flex;\n align-items: center;\n gap: 10px;\n box-shadow: 0 4px 15px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.empty-state-btn:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 25px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n/* Loading State */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 400px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .dashboard-header {\n flex-direction: column;\n gap: 16px;\n align-items: stretch;\n padding: 16px 20px;\n }\n\n .header-info {\n flex-wrap: wrap;\n justify-content: center;\n }\n\n .header-controls {\n justify-content: center;\n }\n\n .agents-content {\n padding: 16px;\n }\n\n .agents-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n .agent-stats {\n grid-template-columns: 1fr;\n }\n\n .card-header {\n padding: 18px;\n }\n\n .card-body {\n padding: 0 18px 18px 18px;\n }\n\n .card-actions {\n padding: 14px 18px;\n flex-wrap: wrap;\n }\n}\n\n/* =============================================\n Detail Panel - Slide-in Overlay\n ============================================= */\n\n.detail-panel-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(4px);\n z-index: 1000;\n animation: fadeIn 0.25s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.detail-panel {\n position: fixed;\n top: 0;\n right: -480px;\n width: 480px;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: -8px 0 32px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n}\n\n.detail-panel.visible {\n right: 0;\n}\n\n/* Detail Panel Header */\n.detail-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.detail-panel-title {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.detail-icon {\n width: 56px;\n height: 56px;\n border-radius: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n background: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-icon i {\n color: var(--mj-text-inverse);\n font-size: 24px;\n}\n\n.detail-icon .detail-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 14px;\n}\n\n.detail-title-info h3 {\n margin: 0 0 4px 0;\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.detail-subtitle {\n font-size: 13px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.detail-panel-close {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.detail-panel-close:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n\n/* Detail Panel Content */\n.detail-panel-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n.detail-section {\n margin-bottom: 28px;\n}\n\n.detail-section:last-child {\n margin-bottom: 0;\n}\n\n.detail-badges {\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.feature-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.feature-badge i {\n font-size: 11px;\n}\n\n.detail-section-title {\n margin: 0 0 16px 0;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.detail-section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n}\n\n.detail-description {\n margin: 0;\n font-size: 14px;\n line-height: 1.7;\n color: var(--mj-text-secondary);\n}\n\n.detail-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 14px;\n background: var(--mj-bg-surface-card);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-value i {\n font-size: 13px;\n}\n\n.detail-code-block {\n background: var(--mj-text-primary);\n color: var(--mj-border-default);\n padding: 16px;\n border-radius: 10px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.6;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Detail Panel Actions */\n.detail-panel-actions {\n padding: 20px 24px;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.detail-action-btn {\n flex: 1;\n padding: 14px 20px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.detail-action-btn.secondary {\n background: var(--mj-bg-surface);\n border: 2px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n}\n\n.detail-action-btn.secondary:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.detail-action-btn.primary {\n background: var(--mj-brand-primary);\n border: 2px solid transparent;\n color: var(--mj-text-inverse);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.detail-action-btn.primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 6px 16px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n/* Detail Panel Responsive */\n@media (max-width: 520px) {\n .detail-panel {\n width: 100%;\n right: -100%;\n }\n\n .detail-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* Search Highlight */\n:host ::ng-deep .search-highlight,\n.search-highlight {\n background-color: color-mix(in srgb, var(--mj-status-warning) 40%, var(--mj-bg-surface));\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: inherit;\n}\n\n/* ============================================\n Tree View - Mac Finder Style\n ============================================ */\n\n.agents-tree {\n padding: 8px 16px;\n}\n\n.tree-category-group {\n margin-bottom: 2px;\n}\n\n.tree-category-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-radius: 8px;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s ease;\n}\n\n.tree-category-header:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-chevron {\n font-size: 10px;\n color: var(--mj-text-muted);\n width: 12px;\n text-align: center;\n transition: transform 0.15s ease;\n}\n\n.tree-folder-icon {\n font-size: 14px;\n color: var(--mj-brand-primary);\n}\n\n.tree-category-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.tree-category-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n font-weight: 500;\n}\n\n/* Agent rows within tree */\n.tree-agent-list {\n padding-left: 24px;\n}\n\n.tree-agent-row {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.tree-agent-row:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.tree-agent-icon {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.tree-agent-icon i {\n font-size: 12px;\n color: var(--mj-text-inverse);\n}\n\n.tree-agent-logo {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n object-fit: cover;\n}\n\n.tree-agent-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.tree-agent-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-agent-type {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.tree-agent-status {\n font-size: 11px;\n font-weight: 500;\n padding: 2px 8px;\n border-radius: 4px;\n white-space: nowrap;\n}\n\n.tree-agent-status.status-active {\n color: var(--mj-status-success-text);\n background: var(--mj-status-success-bg);\n}\n\n.tree-agent-status.status-disabled,\n.tree-agent-status.status-inactive {\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n}\n\n.tree-agent-status.status-pending {\n color: var(--mj-status-warning-text);\n background: var(--mj-status-warning-bg);\n}\n"] }]
1498
1500
  }], () => [{ type: i1.AITestHarnessDialogService }, { type: i2.CreateAgentService }, { type: i3.NavigationService }, { type: i0.ChangeDetectorRef }], null); })();
1499
1501
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AgentConfigurationComponent, { className: "AgentConfigurationComponent", filePath: "src/AI/components/agents/agent-configuration.component.ts", lineNumber: 61 }); })();
1500
1502
  //# sourceMappingURL=agent-configuration.component.js.map