@memberjunction/ng-dashboards 5.10.1 → 5.12.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 (231) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +34 -2
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +586 -223
  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/agents/agent-filter-panel.component.d.ts +8 -0
  7. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  8. package/dist/AI/components/agents/agent-filter-panel.component.js +85 -52
  9. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  10. package/dist/AI/components/charts/performance-heatmap.component.d.ts +1 -0
  11. package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
  12. package/dist/AI/components/charts/performance-heatmap.component.js +27 -5
  13. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  14. package/dist/AI/components/charts/time-series-chart.component.d.ts +5 -0
  15. package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
  16. package/dist/AI/components/charts/time-series-chart.component.js +23 -8
  17. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  18. package/dist/AI/components/execution-monitoring.component.js +2 -2
  19. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  20. package/dist/AI/components/models/model-management.component.js +2 -2
  21. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
  22. package/dist/AI/components/prompts/prompt-filter-panel.component.js +2 -2
  23. package/dist/AI/components/prompts/prompt-management.component.js +3 -3
  24. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  25. package/dist/AI/components/prompts/prompt-version-control.component.js +2 -2
  26. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +83 -0
  27. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -0
  28. package/dist/AI/components/requests/agent-requests-resource.component.js +547 -0
  29. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -0
  30. package/dist/AI/components/system/system-config-filter-panel.component.js +2 -2
  31. package/dist/AI/components/system/system-configuration.component.js +2 -2
  32. package/dist/AI/components/widgets/kpi-card.component.js +7 -7
  33. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  34. package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
  35. package/dist/AI/components/widgets/live-execution-widget.component.js +6 -6
  36. package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
  37. package/dist/AI/index.d.ts +1 -0
  38. package/dist/AI/index.d.ts.map +1 -1
  39. package/dist/AI/index.js +2 -0
  40. package/dist/AI/index.js.map +1 -1
  41. package/dist/APIKeys/api-applications-panel.component.js +3 -3
  42. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  43. package/dist/APIKeys/api-key-create-dialog.component.js +3 -3
  44. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  45. package/dist/APIKeys/api-key-edit-panel.component.js +1 -1
  46. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  47. package/dist/APIKeys/api-key-list.component.js +3 -3
  48. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  49. package/dist/APIKeys/api-keys-resource.component.js +1 -1
  50. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  51. package/dist/APIKeys/api-scopes-panel.component.js +2 -2
  52. package/dist/APIKeys/api-usage-panel.component.js +2 -2
  53. package/dist/Actions/components/actions-overview.component.js +2 -2
  54. package/dist/Actions/components/execution-monitoring.component.js +2 -2
  55. package/dist/Actions/components/explorer/action-breadcrumb.component.js +2 -2
  56. package/dist/Actions/components/explorer/action-card.component.js +2 -2
  57. package/dist/Actions/components/explorer/action-explorer.component.js +2 -2
  58. package/dist/Actions/components/explorer/action-list-item.component.js +2 -2
  59. package/dist/Actions/components/explorer/action-toolbar.component.js +2 -2
  60. package/dist/Actions/components/explorer/action-tree-panel.component.js +2 -2
  61. package/dist/Actions/components/explorer/new-action-panel.component.js +2 -2
  62. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  63. package/dist/Actions/components/explorer/new-category-panel.component.js +2 -2
  64. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  65. package/dist/Communication/communication-dashboard.component.js +2 -2
  66. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  67. package/dist/Communication/communication-logs-resource.component.js +3 -3
  68. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  69. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  70. package/dist/Communication/communication-monitor-resource.component.js +5 -5
  71. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  72. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  73. package/dist/Communication/communication-providers-resource.component.js +3 -3
  74. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  75. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  76. package/dist/Communication/communication-runs-resource.component.js +3 -3
  77. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  78. package/dist/Communication/communication-templates-resource.component.js +2 -2
  79. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  80. package/dist/ComponentStudio/component-studio-dashboard.component.js +2 -2
  81. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +2 -2
  82. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +2 -2
  83. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -2
  84. package/dist/ComponentStudio/components/browser/component-browser.component.js +2 -2
  85. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +2 -2
  86. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  87. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +2 -2
  88. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  89. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +2 -2
  90. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  91. package/dist/ComponentStudio/components/editors/spec-editor.component.js +2 -2
  92. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  93. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +2 -2
  94. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +2 -2
  95. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  96. package/dist/ComponentStudio/components/text-import-dialog.component.js +2 -2
  97. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  98. package/dist/ComponentStudio/components/workspace/component-preview.component.js +2 -2
  99. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +2 -2
  100. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
  101. package/dist/Credentials/components/credentials-audit-resource.component.js +9 -9
  102. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  103. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  104. package/dist/Credentials/components/credentials-categories-resource.component.js +11 -3
  105. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  106. package/dist/Credentials/components/credentials-list-resource.component.js +2 -2
  107. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  108. package/dist/Credentials/components/credentials-overview-resource.component.js +12 -11
  109. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  110. package/dist/Credentials/components/credentials-types-resource.component.js +9 -9
  111. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  112. package/dist/Credentials/credentials-dashboard.component.js +2 -2
  113. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +2 -2
  114. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +2 -2
  115. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +2 -2
  116. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +2 -2
  117. package/dist/DataExplorer/components/view-selector/view-selector.component.js +2 -2
  118. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +6 -2
  119. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  120. package/dist/DataExplorer/data-explorer-dashboard.component.js +26 -8
  121. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  122. package/dist/Home/home-dashboard.component.js +2 -2
  123. package/dist/Integration/components/activity/activity.component.d.ts +1 -1
  124. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  125. package/dist/Integration/components/activity/activity.component.js +5 -5
  126. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  127. package/dist/Integration/components/connections/connections.component.d.ts +31 -2
  128. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  129. package/dist/Integration/components/connections/connections.component.js +753 -412
  130. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  131. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +3 -3
  132. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  133. package/dist/Integration/components/overview/overview.component.d.ts +0 -1
  134. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  135. package/dist/Integration/components/overview/overview.component.js +3 -6
  136. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  137. package/dist/Integration/components/pipelines/pipelines.component.js +3 -3
  138. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  139. package/dist/Integration/components/schedules/schedules.component.d.ts +20 -0
  140. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  141. package/dist/Integration/components/schedules/schedules.component.js +97 -5
  142. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  143. package/dist/Integration/components/visual-editor/visual-editor.component.js +2 -2
  144. package/dist/Integration/components/widgets/integration-card.component.d.ts.map +1 -1
  145. package/dist/Integration/components/widgets/integration-card.component.js +5 -1
  146. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  147. package/dist/Integration/components/widgets/run-history-panel.component.js +2 -2
  148. package/dist/Integration/components/widgets/run-history-panel.component.js.map +1 -1
  149. package/dist/Integration/integration.module.d.ts +2 -1
  150. package/dist/Integration/integration.module.d.ts.map +1 -1
  151. package/dist/Integration/integration.module.js +7 -3
  152. package/dist/Integration/integration.module.js.map +1 -1
  153. package/dist/Integration/services/integration-data.service.d.ts +27 -2
  154. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  155. package/dist/Integration/services/integration-data.service.js +107 -4
  156. package/dist/Integration/services/integration-data.service.js.map +1 -1
  157. package/dist/Lists/components/lists-browse-resource.component.js +2 -2
  158. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  159. package/dist/Lists/components/lists-categories-resource.component.js +2 -2
  160. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  161. package/dist/Lists/components/lists-my-lists-resource.component.js +2 -2
  162. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  163. package/dist/Lists/components/lists-operations-resource.component.js +2 -2
  164. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  165. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +3 -3
  166. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  167. package/dist/MCP/components/mcp-connection-dialog.component.js +2 -2
  168. package/dist/MCP/components/mcp-log-detail-panel.component.js +2 -2
  169. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  170. package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
  171. package/dist/MCP/components/mcp-test-tool-dialog.component.js +2 -2
  172. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  173. package/dist/MCP/mcp-dashboard.component.js +2 -2
  174. package/dist/MCP/mcp-filter-panel.component.js +2 -2
  175. package/dist/QueryBrowser/query-browser-resource.component.d.ts +55 -1
  176. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  177. package/dist/QueryBrowser/query-browser-resource.component.js +664 -199
  178. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  179. package/dist/Scheduling/components/index.d.ts +0 -1
  180. package/dist/Scheduling/components/index.d.ts.map +1 -1
  181. package/dist/Scheduling/components/index.js +0 -1
  182. package/dist/Scheduling/components/index.js.map +1 -1
  183. package/dist/Scheduling/components/scheduling-activity.component.js +2 -2
  184. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +6 -9
  185. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  186. package/dist/Scheduling/components/scheduling-jobs.component.js +118 -110
  187. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  188. package/dist/Scheduling/components/scheduling-overview.component.js +3 -3
  189. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  190. package/dist/Scheduling/scheduling-dashboard.component.js +2 -2
  191. package/dist/SystemDiagnostics/system-diagnostics.component.js +4 -4
  192. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  193. package/dist/Testing/components/testing-analytics.component.js +2 -2
  194. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  195. package/dist/Testing/components/testing-dashboard-tab.component.js +4 -4
  196. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  197. package/dist/Testing/components/testing-explorer.component.js +2 -2
  198. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  199. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  200. package/dist/Testing/components/testing-review.component.js +5 -5
  201. package/dist/Testing/components/testing-review.component.js.map +1 -1
  202. package/dist/Testing/components/testing-runs.component.js +2 -2
  203. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  204. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +2 -2
  205. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  206. package/dist/Testing/components/widgets/suite-tree.component.js +4 -4
  207. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  208. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +2 -2
  209. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  210. package/dist/Testing/testing-dashboard.component.js +2 -2
  211. package/dist/VersionHistory/components/diff-resource.component.js +2 -2
  212. package/dist/VersionHistory/components/graph-resource.component.js +2 -2
  213. package/dist/VersionHistory/components/labels-resource.component.js +3 -3
  214. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  215. package/dist/VersionHistory/components/restore-resource.component.js +3 -3
  216. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  217. package/dist/__tests__/integration-data-service.test.js +1 -0
  218. package/dist/__tests__/integration-data-service.test.js.map +1 -1
  219. package/dist/module.d.ts +52 -49
  220. package/dist/module.d.ts.map +1 -1
  221. package/dist/module.js +25 -6
  222. package/dist/module.js.map +1 -1
  223. package/dist/public-api.d.ts +1 -1
  224. package/dist/public-api.d.ts.map +1 -1
  225. package/dist/public-api.js +1 -1
  226. package/dist/public-api.js.map +1 -1
  227. package/package.json +42 -40
  228. package/dist/Scheduling/components/job-slideout.component.d.ts +0 -45
  229. package/dist/Scheduling/components/job-slideout.component.d.ts.map +0 -1
  230. package/dist/Scheduling/components/job-slideout.component.js +0 -459
  231. package/dist/Scheduling/components/job-slideout.component.js.map +0 -1
@@ -0,0 +1,547 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @fileoverview Agent Requests Resource Component
9
+ *
10
+ * Dashboard resource for the AI application's "Requests" tab.
11
+ * Displays all agent feedback requests with filtering by status, priority,
12
+ * request type, and agent. Opens the generic agent-request-panel for
13
+ * viewing details and responding.
14
+ */
15
+ import { Component } from '@angular/core';
16
+ import { Subject } from 'rxjs';
17
+ import { debounceTime, takeUntil } from 'rxjs/operators';
18
+ import { RunView } from '@memberjunction/core';
19
+ import { UserInfoEngine } from '@memberjunction/core-entities';
20
+ import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
21
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "@angular/forms";
24
+ import * as i2 from "@memberjunction/ng-shared-generic";
25
+ import * as i3 from "@memberjunction/ng-agent-requests";
26
+ import * as i4 from "@angular/common";
27
+ const _forTrack0 = ($index, $item) => $item.ID;
28
+ const _forTrack1 = ($index, $item) => $item.Value;
29
+ function AgentRequestsResourceComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "span", 5);
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const ctx_r0 = i0.ɵɵnextContext();
35
+ i0.ɵɵadvance();
36
+ i0.ɵɵtextInterpolate(ctx_r0.PendingCount);
37
+ } }
38
+ function AgentRequestsResourceComponent_For_17_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "option", 14);
40
+ i0.ɵɵtext(1);
41
+ i0.ɵɵelementEnd();
42
+ } if (rf & 2) {
43
+ const status_r2 = ctx.$implicit;
44
+ i0.ɵɵproperty("value", status_r2);
45
+ i0.ɵɵadvance();
46
+ i0.ɵɵtextInterpolate(status_r2);
47
+ } }
48
+ function AgentRequestsResourceComponent_For_22_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "option", 14);
50
+ i0.ɵɵtext(1);
51
+ i0.ɵɵelementEnd();
52
+ } if (rf & 2) {
53
+ const type_r3 = ctx.$implicit;
54
+ i0.ɵɵproperty("value", type_r3.ID);
55
+ i0.ɵɵadvance();
56
+ i0.ɵɵtextInterpolate(type_r3.Name);
57
+ } }
58
+ function AgentRequestsResourceComponent_For_27_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "option", 14);
60
+ i0.ɵɵtext(1);
61
+ i0.ɵɵelementEnd();
62
+ } if (rf & 2) {
63
+ const opt_r4 = ctx.$implicit;
64
+ i0.ɵɵproperty("value", opt_r4.Value);
65
+ i0.ɵɵadvance();
66
+ i0.ɵɵtextInterpolate(opt_r4.Label);
67
+ } }
68
+ function AgentRequestsResourceComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
69
+ const _r5 = i0.ɵɵgetCurrentView();
70
+ i0.ɵɵelementStart(0, "button", 20);
71
+ i0.ɵɵlistener("click", function AgentRequestsResourceComponent_Conditional_28_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.ClearFilters()); });
72
+ i0.ɵɵelement(1, "i", 21);
73
+ i0.ɵɵtext(2, " Clear Filters ");
74
+ i0.ɵɵelementEnd();
75
+ } }
76
+ function AgentRequestsResourceComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
77
+ i0.ɵɵelementStart(0, "div", 16);
78
+ i0.ɵɵelement(1, "mj-loading", 22);
79
+ i0.ɵɵelementEnd();
80
+ } }
81
+ function AgentRequestsResourceComponent_Conditional_30_Conditional_2_Template(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵelementStart(0, "p", 24);
83
+ i0.ɵɵtext(1, "No agent requests yet");
84
+ i0.ɵɵelementEnd();
85
+ i0.ɵɵelementStart(2, "p", 25);
86
+ i0.ɵɵtext(3, "When agents need human input, their requests will appear here.");
87
+ i0.ɵɵelementEnd();
88
+ } }
89
+ function AgentRequestsResourceComponent_Conditional_30_Conditional_3_Template(rf, ctx) { if (rf & 1) {
90
+ const _r6 = i0.ɵɵgetCurrentView();
91
+ i0.ɵɵelementStart(0, "p", 24);
92
+ i0.ɵɵtext(1, "No requests match your filters");
93
+ i0.ɵɵelementEnd();
94
+ i0.ɵɵelementStart(2, "button", 20);
95
+ i0.ɵɵlistener("click", function AgentRequestsResourceComponent_Conditional_30_Conditional_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.ClearFilters()); });
96
+ i0.ɵɵtext(3, "Clear Filters");
97
+ i0.ɵɵelementEnd();
98
+ } }
99
+ function AgentRequestsResourceComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
100
+ i0.ɵɵelementStart(0, "div", 17);
101
+ i0.ɵɵelement(1, "i", 23);
102
+ i0.ɵɵconditionalCreate(2, AgentRequestsResourceComponent_Conditional_30_Conditional_2_Template, 4, 0)(3, AgentRequestsResourceComponent_Conditional_30_Conditional_3_Template, 4, 0);
103
+ i0.ɵɵelementEnd();
104
+ } if (rf & 2) {
105
+ const ctx_r0 = i0.ɵɵnextContext();
106
+ i0.ɵɵadvance(2);
107
+ i0.ɵɵconditional(ctx_r0.Requests.length === 0 ? 2 : 3);
108
+ } }
109
+ function AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "span", 32);
111
+ i0.ɵɵtext(1, "Expired");
112
+ i0.ɵɵelementEnd();
113
+ } }
114
+ function AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "span", 35);
116
+ i0.ɵɵelement(1, "i", 39);
117
+ i0.ɵɵtext(2);
118
+ i0.ɵɵelementEnd();
119
+ } if (rf & 2) {
120
+ const request_r8 = i0.ɵɵnextContext().$implicit;
121
+ i0.ɵɵadvance(2);
122
+ i0.ɵɵtextInterpolate1(" ", request_r8.Agent, " ");
123
+ } }
124
+ function AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
125
+ i0.ɵɵelementStart(0, "span", 35);
126
+ i0.ɵɵelement(1, "i", 40);
127
+ i0.ɵɵtext(2);
128
+ i0.ɵɵpipe(3, "date");
129
+ i0.ɵɵelementEnd();
130
+ } if (rf & 2) {
131
+ const request_r8 = i0.ɵɵnextContext().$implicit;
132
+ i0.ɵɵadvance(2);
133
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, request_r8.__mj_CreatedAt, "short"), " ");
134
+ } }
135
+ function AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
136
+ i0.ɵɵelementStart(0, "span", 35);
137
+ i0.ɵɵelement(1, "i", 41);
138
+ i0.ɵɵtext(2);
139
+ i0.ɵɵpipe(3, "date");
140
+ i0.ɵɵelementEnd();
141
+ } if (rf & 2) {
142
+ const request_r8 = i0.ɵɵnextContext().$implicit;
143
+ const ctx_r0 = i0.ɵɵnextContext(2);
144
+ i0.ɵɵclassProp("expired", ctx_r0.IsExpired(request_r8));
145
+ i0.ɵɵadvance(2);
146
+ i0.ɵɵtextInterpolate1(" Expires ", i0.ɵɵpipeBind2(3, 3, request_r8.ExpiresAt, "short"), " ");
147
+ } }
148
+ function AgentRequestsResourceComponent_Conditional_31_For_2_Template(rf, ctx) { if (rf & 1) {
149
+ const _r7 = i0.ɵɵgetCurrentView();
150
+ i0.ɵɵelementStart(0, "div", 27);
151
+ i0.ɵɵlistener("click", function AgentRequestsResourceComponent_Conditional_31_For_2_Template_div_click_0_listener() { const request_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.OnRequestClick(request_r8)); });
152
+ i0.ɵɵelementStart(1, "div", 28);
153
+ i0.ɵɵelement(2, "i");
154
+ i0.ɵɵelementEnd();
155
+ i0.ɵɵelementStart(3, "div", 29)(4, "div", 30)(5, "span", 31);
156
+ i0.ɵɵtext(6);
157
+ i0.ɵɵelementEnd();
158
+ i0.ɵɵelementStart(7, "span");
159
+ i0.ɵɵtext(8);
160
+ i0.ɵɵelementEnd();
161
+ i0.ɵɵelementStart(9, "span");
162
+ i0.ɵɵtext(10);
163
+ i0.ɵɵelementEnd();
164
+ i0.ɵɵconditionalCreate(11, AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_11_Template, 2, 0, "span", 32);
165
+ i0.ɵɵelementEnd();
166
+ i0.ɵɵelementStart(12, "p", 33);
167
+ i0.ɵɵtext(13);
168
+ i0.ɵɵelementEnd();
169
+ i0.ɵɵelementStart(14, "div", 34);
170
+ i0.ɵɵconditionalCreate(15, AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_15_Template, 3, 1, "span", 35);
171
+ i0.ɵɵconditionalCreate(16, AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_16_Template, 4, 4, "span", 35);
172
+ i0.ɵɵconditionalCreate(17, AgentRequestsResourceComponent_Conditional_31_For_2_Conditional_17_Template, 4, 6, "span", 36);
173
+ i0.ɵɵelementEnd()();
174
+ i0.ɵɵelementStart(18, "div", 37);
175
+ i0.ɵɵelement(19, "i", 38);
176
+ i0.ɵɵelementEnd()();
177
+ } if (rf & 2) {
178
+ const request_r8 = ctx.$implicit;
179
+ const ctx_r0 = i0.ɵɵnextContext(2);
180
+ i0.ɵɵclassProp("actionable", request_r8.Status === "Requested")("expired", ctx_r0.IsExpired(request_r8));
181
+ i0.ɵɵadvance(2);
182
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("", ctx_r0.GetRequestTypeIcon(request_r8.RequestTypeID), " type-icon"));
183
+ i0.ɵɵadvance(4);
184
+ i0.ɵɵtextInterpolate(ctx_r0.GetRequestTypeName(request_r8.RequestTypeID));
185
+ i0.ɵɵadvance();
186
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("priority-badge ", ctx_r0.GetPriorityClass(request_r8.Priority)));
187
+ i0.ɵɵadvance();
188
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.GetPriorityLabel(request_r8.Priority), " ");
189
+ i0.ɵɵadvance();
190
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("status-badge status-", request_r8.Status.toLowerCase()));
191
+ i0.ɵɵadvance();
192
+ i0.ɵɵtextInterpolate1(" ", request_r8.Status, " ");
193
+ i0.ɵɵadvance();
194
+ i0.ɵɵconditional(ctx_r0.IsExpired(request_r8) && request_r8.Status === "Requested" ? 11 : -1);
195
+ i0.ɵɵadvance(2);
196
+ i0.ɵɵtextInterpolate(request_r8.Request);
197
+ i0.ɵɵadvance(2);
198
+ i0.ɵɵconditional(request_r8.Agent ? 15 : -1);
199
+ i0.ɵɵadvance();
200
+ i0.ɵɵconditional(request_r8.__mj_CreatedAt ? 16 : -1);
201
+ i0.ɵɵadvance();
202
+ i0.ɵɵconditional(request_r8.ExpiresAt ? 17 : -1);
203
+ } }
204
+ function AgentRequestsResourceComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
205
+ i0.ɵɵelementStart(0, "div", 18);
206
+ i0.ɵɵrepeaterCreate(1, AgentRequestsResourceComponent_Conditional_31_For_2_Template, 20, 21, "div", 26, _forTrack0);
207
+ i0.ɵɵelementEnd();
208
+ } if (rf & 2) {
209
+ const ctx_r0 = i0.ɵɵnextContext();
210
+ i0.ɵɵadvance();
211
+ i0.ɵɵrepeater(ctx_r0.FilteredRequests);
212
+ } }
213
+ function AgentRequestsResourceComponent_Conditional_32_Template(rf, ctx) { if (rf & 1) {
214
+ const _r9 = i0.ɵɵgetCurrentView();
215
+ i0.ɵɵelementStart(0, "mj-agent-request-dialog", 42);
216
+ i0.ɵɵlistener("Close", function AgentRequestsResourceComponent_Conditional_32_Template_mj_agent_request_dialog_Close_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnPanelClose($event)); });
217
+ i0.ɵɵelementEnd();
218
+ } if (rf & 2) {
219
+ const ctx_r0 = i0.ɵɵnextContext();
220
+ i0.ɵɵproperty("Visible", ctx_r0.ShowRequestPanel)("Request", ctx_r0.SelectedRequest);
221
+ } }
222
+ let AgentRequestsResourceComponent = class AgentRequestsResourceComponent extends BaseResourceComponent {
223
+ cdr;
224
+ USER_SETTINGS_KEY = 'AI.AgentRequests.UserPreferences';
225
+ settingsPersistSubject = new Subject();
226
+ destroy$ = new Subject();
227
+ settingsLoaded = false;
228
+ IsLoading = false;
229
+ Requests = [];
230
+ FilteredRequests = [];
231
+ RequestTypes = [];
232
+ // Panel state
233
+ SelectedRequest = null;
234
+ ShowRequestPanel = false;
235
+ // Filter state
236
+ Filters = {
237
+ SearchTerm: '',
238
+ Status: '',
239
+ RequestType: '',
240
+ Priority: ''
241
+ };
242
+ // Available filter options
243
+ StatusOptions = ['Requested', 'Approved', 'Rejected', 'Responded', 'Canceled', 'Expired'];
244
+ PriorityOptions = [
245
+ { Label: 'Critical (76-100)', Value: 'critical' },
246
+ { Label: 'High (51-75)', Value: 'high' },
247
+ { Label: 'Normal (26-50)', Value: 'normal' },
248
+ { Label: 'Low (1-25)', Value: 'low' }
249
+ ];
250
+ searchSubject = new Subject();
251
+ constructor(cdr) {
252
+ super();
253
+ this.cdr = cdr;
254
+ }
255
+ async ngAfterViewInit() {
256
+ this.setupSearchDebounce();
257
+ await this.loadUserSettings();
258
+ await this.loadData();
259
+ this.autoOpenRequestFromQueryParams();
260
+ this.NotifyLoadComplete();
261
+ }
262
+ ngOnDestroy() {
263
+ this.destroy$.next();
264
+ this.destroy$.complete();
265
+ }
266
+ async GetResourceDisplayName(data) {
267
+ return 'Agent Requests';
268
+ }
269
+ async GetResourceIconClass(data) {
270
+ return 'fa-solid fa-inbox';
271
+ }
272
+ /** Count of pending (Requested) items */
273
+ get PendingCount() {
274
+ return this.Requests.filter(r => r.Status === 'Requested').length;
275
+ }
276
+ /** Open the detail panel for a request */
277
+ OnRequestClick(request) {
278
+ this.SelectedRequest = request;
279
+ this.ShowRequestPanel = true;
280
+ this.cdr.detectChanges();
281
+ }
282
+ /** Handle panel close */
283
+ OnPanelClose(result) {
284
+ this.ShowRequestPanel = false;
285
+ this.SelectedRequest = null;
286
+ if (result.Success) {
287
+ // Refresh the list to reflect the status change
288
+ this.loadData();
289
+ }
290
+ this.cdr.detectChanges();
291
+ }
292
+ /** Handle search input */
293
+ OnSearchChange(term) {
294
+ this.searchSubject.next(term);
295
+ }
296
+ /** Handle filter changes */
297
+ OnFilterChange() {
298
+ this.applyFilters();
299
+ this.saveUserSettings();
300
+ }
301
+ /** Clear all filters */
302
+ ClearFilters() {
303
+ this.Filters = { SearchTerm: '', Status: '', RequestType: '', Priority: '' };
304
+ this.applyFilters();
305
+ this.saveUserSettings();
306
+ }
307
+ /** Get the request type name by ID */
308
+ GetRequestTypeName(typeId) {
309
+ if (!typeId)
310
+ return '';
311
+ const type = this.RequestTypes.find(t => UUIDsEqual(t.ID, typeId));
312
+ return type?.Name ?? '';
313
+ }
314
+ /** Get the request type icon by ID */
315
+ GetRequestTypeIcon(typeId) {
316
+ if (!typeId)
317
+ return 'fa-solid fa-question-circle';
318
+ const type = this.RequestTypes.find(t => UUIDsEqual(t.ID, typeId));
319
+ return type?.Icon ?? 'fa-solid fa-question-circle';
320
+ }
321
+ /** Get priority label from numeric value */
322
+ GetPriorityLabel(priority) {
323
+ if (priority <= 25)
324
+ return 'Low';
325
+ if (priority <= 50)
326
+ return 'Normal';
327
+ if (priority <= 75)
328
+ return 'High';
329
+ return 'Critical';
330
+ }
331
+ /** Get priority CSS class from numeric value */
332
+ GetPriorityClass(priority) {
333
+ if (priority <= 25)
334
+ return 'priority-low';
335
+ if (priority <= 50)
336
+ return 'priority-normal';
337
+ if (priority <= 75)
338
+ return 'priority-high';
339
+ return 'priority-critical';
340
+ }
341
+ /** Whether a request is expired */
342
+ IsExpired(request) {
343
+ if (!request.ExpiresAt)
344
+ return false;
345
+ return new Date(request.ExpiresAt) < new Date();
346
+ }
347
+ // ---- Private Methods ----
348
+ /**
349
+ * If a requestId was passed via configuration (e.g. from a notification click),
350
+ * auto-open that request in the detail panel.
351
+ */
352
+ autoOpenRequestFromQueryParams() {
353
+ const requestId = this.Data?.Configuration?.requestId
354
+ || this.Data?.Configuration?.queryParams?.requestId;
355
+ if (!requestId)
356
+ return;
357
+ const match = this.Requests.find(r => UUIDsEqual(r.ID, requestId));
358
+ if (match) {
359
+ this.OnRequestClick(match);
360
+ }
361
+ }
362
+ async loadData() {
363
+ this.IsLoading = true;
364
+ this.cdr.detectChanges();
365
+ try {
366
+ const rv = new RunView();
367
+ const [requestsResult, typesResult] = await rv.RunViews([
368
+ {
369
+ EntityName: 'MJ: AI Agent Requests',
370
+ OrderBy: 'Priority DESC, __mj_CreatedAt DESC',
371
+ ResultType: 'entity_object'
372
+ },
373
+ {
374
+ EntityName: 'MJ: AI Agent Request Types',
375
+ OrderBy: 'Name',
376
+ ResultType: 'entity_object'
377
+ }
378
+ ]);
379
+ if (requestsResult.Success) {
380
+ this.Requests = requestsResult.Results;
381
+ }
382
+ if (typesResult.Success) {
383
+ this.RequestTypes = typesResult.Results;
384
+ }
385
+ this.applyFilters();
386
+ }
387
+ catch (error) {
388
+ console.error('Error loading agent requests:', error);
389
+ }
390
+ finally {
391
+ this.IsLoading = false;
392
+ this.cdr.detectChanges();
393
+ }
394
+ }
395
+ applyFilters() {
396
+ let filtered = [...this.Requests];
397
+ // Status filter
398
+ if (this.Filters.Status) {
399
+ filtered = filtered.filter(r => r.Status === this.Filters.Status);
400
+ }
401
+ // Request type filter
402
+ if (this.Filters.RequestType) {
403
+ filtered = filtered.filter(r => r.RequestTypeID && UUIDsEqual(r.RequestTypeID, this.Filters.RequestType));
404
+ }
405
+ // Priority filter
406
+ if (this.Filters.Priority) {
407
+ filtered = filtered.filter(r => {
408
+ const p = r.Priority;
409
+ switch (this.Filters.Priority) {
410
+ case 'low': return p <= 25;
411
+ case 'normal': return p > 25 && p <= 50;
412
+ case 'high': return p > 50 && p <= 75;
413
+ case 'critical': return p > 75;
414
+ default: return true;
415
+ }
416
+ });
417
+ }
418
+ // Search term filter
419
+ if (this.Filters.SearchTerm) {
420
+ const term = this.Filters.SearchTerm.toLowerCase();
421
+ filtered = filtered.filter(r => (r.Request && r.Request.toLowerCase().includes(term)) ||
422
+ (r.Agent && r.Agent.toLowerCase().includes(term)) ||
423
+ (r.Response && r.Response.toLowerCase().includes(term)));
424
+ }
425
+ this.FilteredRequests = filtered;
426
+ this.cdr.detectChanges();
427
+ }
428
+ setupSearchDebounce() {
429
+ this.searchSubject.pipe(debounceTime(300), takeUntil(this.destroy$)).subscribe(term => {
430
+ this.Filters.SearchTerm = term;
431
+ this.applyFilters();
432
+ this.saveUserSettings();
433
+ });
434
+ this.settingsPersistSubject.pipe(debounceTime(500), takeUntil(this.destroy$)).subscribe(() => this.persistUserSettings());
435
+ }
436
+ async loadUserSettings() {
437
+ try {
438
+ const prefs = UserInfoEngine.Instance.GetSetting(this.USER_SETTINGS_KEY);
439
+ if (prefs) {
440
+ const parsed = JSON.parse(prefs);
441
+ if (parsed.Filters) {
442
+ this.Filters = { ...this.Filters, ...parsed.Filters };
443
+ }
444
+ }
445
+ }
446
+ catch {
447
+ // Use defaults
448
+ }
449
+ this.settingsLoaded = true;
450
+ }
451
+ saveUserSettings() {
452
+ if (this.settingsLoaded) {
453
+ this.settingsPersistSubject.next();
454
+ }
455
+ }
456
+ async persistUserSettings() {
457
+ try {
458
+ const prefs = {
459
+ Filters: this.Filters,
460
+ SortColumn: 'Priority',
461
+ SortDirection: 'desc'
462
+ };
463
+ await UserInfoEngine.Instance.SetSetting(this.USER_SETTINGS_KEY, JSON.stringify(prefs));
464
+ }
465
+ catch {
466
+ // Silent failure for settings persistence
467
+ }
468
+ }
469
+ static ɵfac = function AgentRequestsResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgentRequestsResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
470
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentRequestsResourceComponent, selectors: [["app-agent-requests-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 33, vars: 8, consts: [[1, "agent-requests-container"], [1, "requests-header"], [1, "header-left"], [1, "page-title"], [1, "fa-solid", "fa-inbox"], [1, "pending-badge"], [1, "header-right"], [1, "search-box"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search requests...", 1, "search-input", 3, "ngModelChange", "ngModel"], [1, "filter-bar"], [1, "filter-group"], [1, "filter-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value"], [1, "clear-filters-btn"], [1, "loading-container"], [1, "empty-state"], [1, "requests-list"], [3, "Visible", "Request"], [1, "clear-filters-btn", 3, "click"], [1, "fa-solid", "fa-times"], ["text", "Loading agent requests..."], [1, "fa-solid", "fa-inbox", "empty-icon"], [1, "empty-text"], [1, "empty-subtext"], [1, "request-card", 3, "actionable", "expired"], [1, "request-card", 3, "click"], [1, "card-left"], [1, "card-content"], [1, "card-top-row"], [1, "request-type-name"], [1, "expired-tag"], [1, "request-text"], [1, "card-meta"], [1, "meta-item"], [1, "meta-item", 3, "expired"], [1, "card-right"], [1, "fa-solid", "fa-chevron-right"], [1, "fa-solid", "fa-robot"], [1, "fa-regular", "fa-clock"], [1, "fa-solid", "fa-hourglass-end"], [3, "Close", "Visible", "Request"]], template: function AgentRequestsResourceComponent_Template(rf, ctx) { if (rf & 1) {
471
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h2", 3);
472
+ i0.ɵɵelement(4, "i", 4);
473
+ i0.ɵɵtext(5, " Agent Requests ");
474
+ i0.ɵɵconditionalCreate(6, AgentRequestsResourceComponent_Conditional_6_Template, 2, 1, "span", 5);
475
+ i0.ɵɵelementEnd()();
476
+ i0.ɵɵelementStart(7, "div", 6)(8, "div", 7);
477
+ i0.ɵɵelement(9, "i", 8);
478
+ i0.ɵɵelementStart(10, "input", 9);
479
+ i0.ɵɵlistener("ngModelChange", function AgentRequestsResourceComponent_Template_input_ngModelChange_10_listener($event) { return ctx.OnSearchChange($event); });
480
+ i0.ɵɵelementEnd()()()();
481
+ i0.ɵɵelementStart(11, "div", 10)(12, "div", 11)(13, "select", 12);
482
+ i0.ɵɵtwoWayListener("ngModelChange", function AgentRequestsResourceComponent_Template_select_ngModelChange_13_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.Filters.Status, $event) || (ctx.Filters.Status = $event); return $event; });
483
+ i0.ɵɵlistener("ngModelChange", function AgentRequestsResourceComponent_Template_select_ngModelChange_13_listener() { return ctx.OnFilterChange(); });
484
+ i0.ɵɵelementStart(14, "option", 13);
485
+ i0.ɵɵtext(15, "All Statuses");
486
+ i0.ɵɵelementEnd();
487
+ i0.ɵɵrepeaterCreate(16, AgentRequestsResourceComponent_For_17_Template, 2, 2, "option", 14, i0.ɵɵrepeaterTrackByIdentity);
488
+ i0.ɵɵelementEnd();
489
+ i0.ɵɵelementStart(18, "select", 12);
490
+ i0.ɵɵtwoWayListener("ngModelChange", function AgentRequestsResourceComponent_Template_select_ngModelChange_18_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.Filters.RequestType, $event) || (ctx.Filters.RequestType = $event); return $event; });
491
+ i0.ɵɵlistener("ngModelChange", function AgentRequestsResourceComponent_Template_select_ngModelChange_18_listener() { return ctx.OnFilterChange(); });
492
+ i0.ɵɵelementStart(19, "option", 13);
493
+ i0.ɵɵtext(20, "All Types");
494
+ i0.ɵɵelementEnd();
495
+ i0.ɵɵrepeaterCreate(21, AgentRequestsResourceComponent_For_22_Template, 2, 2, "option", 14, _forTrack0);
496
+ i0.ɵɵelementEnd();
497
+ i0.ɵɵelementStart(23, "select", 12);
498
+ i0.ɵɵtwoWayListener("ngModelChange", function AgentRequestsResourceComponent_Template_select_ngModelChange_23_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.Filters.Priority, $event) || (ctx.Filters.Priority = $event); return $event; });
499
+ i0.ɵɵlistener("ngModelChange", function AgentRequestsResourceComponent_Template_select_ngModelChange_23_listener() { return ctx.OnFilterChange(); });
500
+ i0.ɵɵelementStart(24, "option", 13);
501
+ i0.ɵɵtext(25, "All Priorities");
502
+ i0.ɵɵelementEnd();
503
+ i0.ɵɵrepeaterCreate(26, AgentRequestsResourceComponent_For_27_Template, 2, 2, "option", 14, _forTrack1);
504
+ i0.ɵɵelementEnd()();
505
+ i0.ɵɵconditionalCreate(28, AgentRequestsResourceComponent_Conditional_28_Template, 3, 0, "button", 15);
506
+ i0.ɵɵelementEnd();
507
+ i0.ɵɵconditionalCreate(29, AgentRequestsResourceComponent_Conditional_29_Template, 2, 0, "div", 16)(30, AgentRequestsResourceComponent_Conditional_30_Template, 4, 1, "div", 17)(31, AgentRequestsResourceComponent_Conditional_31_Template, 3, 0, "div", 18);
508
+ i0.ɵɵelementEnd();
509
+ i0.ɵɵconditionalCreate(32, AgentRequestsResourceComponent_Conditional_32_Template, 1, 2, "mj-agent-request-dialog", 19);
510
+ } if (rf & 2) {
511
+ i0.ɵɵadvance(6);
512
+ i0.ɵɵconditional(ctx.PendingCount > 0 ? 6 : -1);
513
+ i0.ɵɵadvance(4);
514
+ i0.ɵɵproperty("ngModel", ctx.Filters.SearchTerm);
515
+ i0.ɵɵadvance(3);
516
+ i0.ɵɵtwoWayProperty("ngModel", ctx.Filters.Status);
517
+ i0.ɵɵadvance(3);
518
+ i0.ɵɵrepeater(ctx.StatusOptions);
519
+ i0.ɵɵadvance(2);
520
+ i0.ɵɵtwoWayProperty("ngModel", ctx.Filters.RequestType);
521
+ i0.ɵɵadvance(3);
522
+ i0.ɵɵrepeater(ctx.RequestTypes);
523
+ i0.ɵɵadvance(2);
524
+ i0.ɵɵtwoWayProperty("ngModel", ctx.Filters.Priority);
525
+ i0.ɵɵadvance(3);
526
+ i0.ɵɵrepeater(ctx.PriorityOptions);
527
+ i0.ɵɵadvance(2);
528
+ i0.ɵɵconditional(ctx.Filters.Status || ctx.Filters.RequestType || ctx.Filters.Priority || ctx.Filters.SearchTerm ? 28 : -1);
529
+ i0.ɵɵadvance();
530
+ i0.ɵɵconditional(ctx.IsLoading ? 29 : ctx.FilteredRequests.length === 0 ? 30 : 31);
531
+ i0.ɵɵadvance(3);
532
+ i0.ɵɵconditional(ctx.ShowRequestPanel && ctx.SelectedRequest ? 32 : -1);
533
+ } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.NgModel, i2.LoadingComponent, i3.AgentRequestDialogComponent, i4.DatePipe], styles: [".agent-requests-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 20px;\n background: var(--mj-bg-page);\n}\n\n\n\n.requests-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.page-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.page-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.pending-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 22px;\n height: 22px;\n padding: 0 6px;\n border-radius: 11px;\n font-size: 12px;\n font-weight: 700;\n background: var(--mj-status-warning);\n color: var(--mj-text-inverse);\n}\n\n\n\n.search-box[_ngcontent-%COMP%] {\n position: relative;\n width: 280px;\n}\n\n.search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px 8px 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n box-sizing: border-box;\n}\n\n.search-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-border-focus);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n\n\n.filter-bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.filter-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.clear-filters-btn[_ngcontent-%COMP%] {\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.clear-filters-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 60px 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 20px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n}\n\n.empty-text[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-subtext[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n\n\n.requests-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n overflow-y: auto;\n}\n\n.request-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 14px;\n padding: 14px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.request-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.request-card.actionable[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.request-card.expired[_ngcontent-%COMP%] {\n opacity: 0.7;\n}\n\n.card-left[_ngcontent-%COMP%] {\n flex-shrink: 0;\n padding-top: 2px;\n}\n\n.type-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n}\n\n.card-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-top-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.request-type-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.request-text[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-item.expired[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n}\n\n.card-right[_ngcontent-%COMP%] {\n flex-shrink: 0;\n color: var(--mj-text-disabled);\n font-size: 12px;\n padding-top: 4px;\n}\n\n\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-requested[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid var(--mj-status-info-border);\n}\n\n.status-approved[_ngcontent-%COMP%], \n.status-responded[_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid var(--mj-status-success-border);\n}\n\n.status-rejected[_ngcontent-%COMP%], \n.status-canceled[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n}\n\n.status-expired[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n}\n\n.priority-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.priority-low[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.priority-normal[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.priority-high[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.priority-critical[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.expired-tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}"] });
534
+ };
535
+ AgentRequestsResourceComponent = __decorate([
536
+ RegisterClass(BaseResourceComponent, 'AIAgentRequestsResource')
537
+ ], AgentRequestsResourceComponent);
538
+ export { AgentRequestsResourceComponent };
539
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentRequestsResourceComponent, [{
540
+ type: Component,
541
+ args: [{ standalone: false, selector: 'app-agent-requests-resource', template: "<div class=\"agent-requests-container\">\n <!-- Header -->\n <div class=\"requests-header\">\n <div class=\"header-left\">\n <h2 class=\"page-title\">\n <i class=\"fa-solid fa-inbox\"></i> Agent Requests\n @if (PendingCount > 0) {\n <span class=\"pending-badge\">{{ PendingCount }}</span>\n }\n </h2>\n </div>\n <div class=\"header-right\">\n <div class=\"search-box\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search requests...\"\n [ngModel]=\"Filters.SearchTerm\"\n (ngModelChange)=\"OnSearchChange($event)\">\n </div>\n </div>\n </div>\n\n <!-- Filters -->\n <div class=\"filter-bar\">\n <div class=\"filter-group\">\n <select class=\"filter-select\" [(ngModel)]=\"Filters.Status\" (ngModelChange)=\"OnFilterChange()\">\n <option value=\"\">All Statuses</option>\n @for (status of StatusOptions; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n\n <select class=\"filter-select\" [(ngModel)]=\"Filters.RequestType\" (ngModelChange)=\"OnFilterChange()\">\n <option value=\"\">All Types</option>\n @for (type of RequestTypes; track type.ID) {\n <option [value]=\"type.ID\">{{ type.Name }}</option>\n }\n </select>\n\n <select class=\"filter-select\" [(ngModel)]=\"Filters.Priority\" (ngModelChange)=\"OnFilterChange()\">\n <option value=\"\">All Priorities</option>\n @for (opt of PriorityOptions; track opt.Value) {\n <option [value]=\"opt.Value\">{{ opt.Label }}</option>\n }\n </select>\n </div>\n\n @if (Filters.Status || Filters.RequestType || Filters.Priority || Filters.SearchTerm) {\n <button class=\"clear-filters-btn\" (click)=\"ClearFilters()\">\n <i class=\"fa-solid fa-times\"></i> Clear Filters\n </button>\n }\n </div>\n\n <!-- Content -->\n @if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agent requests...\"></mj-loading>\n </div>\n } @else if (FilteredRequests.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox empty-icon\"></i>\n @if (Requests.length === 0) {\n <p class=\"empty-text\">No agent requests yet</p>\n <p class=\"empty-subtext\">When agents need human input, their requests will appear here.</p>\n } @else {\n <p class=\"empty-text\">No requests match your filters</p>\n <button class=\"clear-filters-btn\" (click)=\"ClearFilters()\">Clear Filters</button>\n }\n </div>\n } @else {\n <div class=\"requests-list\">\n @for (request of FilteredRequests; track request.ID) {\n <div\n class=\"request-card\"\n [class.actionable]=\"request.Status === 'Requested'\"\n [class.expired]=\"IsExpired(request)\"\n (click)=\"OnRequestClick(request)\">\n <div class=\"card-left\">\n <i class=\"{{ GetRequestTypeIcon(request.RequestTypeID) }} type-icon\"></i>\n </div>\n <div class=\"card-content\">\n <div class=\"card-top-row\">\n <span class=\"request-type-name\">{{ GetRequestTypeName(request.RequestTypeID) }}</span>\n <span class=\"priority-badge {{ GetPriorityClass(request.Priority) }}\">\n {{ GetPriorityLabel(request.Priority) }}\n </span>\n <span class=\"status-badge status-{{ request.Status.toLowerCase() }}\">\n {{ request.Status }}\n </span>\n @if (IsExpired(request) && request.Status === 'Requested') {\n <span class=\"expired-tag\">Expired</span>\n }\n </div>\n <p class=\"request-text\">{{ request.Request }}</p>\n <div class=\"card-meta\">\n @if (request.Agent) {\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-robot\"></i> {{ request.Agent }}\n </span>\n }\n @if (request.__mj_CreatedAt) {\n <span class=\"meta-item\">\n <i class=\"fa-regular fa-clock\"></i> {{ request.__mj_CreatedAt | date:'short' }}\n </span>\n }\n @if (request.ExpiresAt) {\n <span class=\"meta-item\" [class.expired]=\"IsExpired(request)\">\n <i class=\"fa-solid fa-hourglass-end\"></i> Expires {{ request.ExpiresAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"card-right\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n </div>\n }\n</div>\n\n<!-- Agent Request Detail Panel -->\n@if (ShowRequestPanel && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestPanel\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnPanelClose($event)\">\n </mj-agent-request-dialog>\n}\n", styles: [".agent-requests-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 20px;\n background: var(--mj-bg-page);\n}\n\n/* Header */\n.requests-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.page-title {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.page-title i {\n color: var(--mj-brand-primary);\n}\n\n.pending-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 22px;\n height: 22px;\n padding: 0 6px;\n border-radius: 11px;\n font-size: 12px;\n font-weight: 700;\n background: var(--mj-status-warning);\n color: var(--mj-text-inverse);\n}\n\n/* Search */\n.search-box {\n position: relative;\n width: 280px;\n}\n\n.search-icon {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-muted);\n font-size: 13px;\n}\n\n.search-input {\n width: 100%;\n padding: 8px 12px 8px 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n box-sizing: border-box;\n}\n\n.search-input:focus {\n outline: none;\n border-color: var(--mj-border-focus);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n/* Filters */\n.filter-bar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.filter-group {\n display: flex;\n gap: 8px;\n}\n\n.filter-select {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.clear-filters-btn {\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.clear-filters-btn:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n/* Loading */\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 60px 0;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 20px;\n text-align: center;\n}\n\n.empty-icon {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n}\n\n.empty-text {\n margin: 0 0 8px 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-subtext {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n/* Request Cards */\n.requests-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n overflow-y: auto;\n}\n\n.request-card {\n display: flex;\n align-items: flex-start;\n gap: 14px;\n padding: 14px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.request-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.request-card.actionable {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.request-card.expired {\n opacity: 0.7;\n}\n\n.card-left {\n flex-shrink: 0;\n padding-top: 2px;\n}\n\n.type-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n}\n\n.card-content {\n flex: 1;\n min-width: 0;\n}\n\n.card-top-row {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.request-type-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.request-text {\n margin: 0 0 8px 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.card-meta {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-item.expired {\n color: var(--mj-status-error-text);\n}\n\n.card-right {\n flex-shrink: 0;\n color: var(--mj-text-disabled);\n font-size: 12px;\n padding-top: 4px;\n}\n\n/* Badges */\n.status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-requested {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid var(--mj-status-info-border);\n}\n\n.status-approved,\n.status-responded {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid var(--mj-status-success-border);\n}\n\n.status-rejected,\n.status-canceled {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n}\n\n.status-expired {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n}\n\n.priority-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.priority-low {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.priority-normal {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.priority-high {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.priority-critical {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.expired-tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n"] }]
542
+ }], () => [{ type: i0.ChangeDetectorRef }], null); })();
543
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AgentRequestsResourceComponent, { className: "AgentRequestsResourceComponent", filePath: "src/AI/components/requests/agent-requests-resource.component.ts", lineNumber: 43 }); })();
544
+ export function LoadAgentRequestsResource() {
545
+ // Prevents tree-shaking
546
+ }
547
+ //# sourceMappingURL=agent-requests-resource.component.js.map