@memberjunction/ng-core-entity-forms 6.2.1 → 6.3.0-edge.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 +5 -6
  2. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js +3 -3
  4. package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js.map +1 -1
  5. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.d.ts +12 -0
  6. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js +293 -230
  8. package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
  9. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +2 -2
  10. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +2 -2
  11. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +11 -0
  12. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  13. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +862 -812
  14. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  15. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +2 -2
  16. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +2 -2
  17. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +2 -2
  18. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +2 -2
  19. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +2 -2
  20. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +2 -2
  21. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +12 -0
  22. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  23. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +821 -763
  24. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  25. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +2 -2
  26. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +10 -0
  27. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  28. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +700 -605
  29. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  30. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +10 -0
  31. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  32. package/dist/lib/custom/Actions/action-execution-log-form.component.js +223 -175
  33. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  34. package/dist/lib/custom/Actions/action-form.component.d.ts +10 -0
  35. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  36. package/dist/lib/custom/Actions/action-form.component.js +502 -453
  37. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  38. package/dist/lib/custom/Companies/company-header.panel.d.ts.map +1 -1
  39. package/dist/lib/custom/Companies/company-header.panel.js +3 -3
  40. package/dist/lib/custom/Companies/company-header.panel.js.map +1 -1
  41. package/dist/lib/custom/Conversations/conversation-header.panel.d.ts.map +1 -1
  42. package/dist/lib/custom/Conversations/conversation-header.panel.js +3 -3
  43. package/dist/lib/custom/Conversations/conversation-header.panel.js.map +1 -1
  44. package/dist/lib/custom/Employees/employee-header.panel.d.ts.map +1 -1
  45. package/dist/lib/custom/Employees/employee-header.panel.js +3 -3
  46. package/dist/lib/custom/Employees/employee-header.panel.js.map +1 -1
  47. package/dist/lib/custom/Entities/entity-form.component.d.ts +15 -0
  48. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  49. package/dist/lib/custom/Entities/entity-form.component.js +836 -801
  50. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  51. package/dist/lib/custom/EntityActions/entityaction.form.component.js +2 -2
  52. package/dist/lib/custom/Files/file-form.component.js +2 -2
  53. package/dist/lib/custom/Lists/list-form.component.d.ts +5 -0
  54. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  55. package/dist/lib/custom/Lists/list-form.component.js +355 -338
  56. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  57. package/dist/lib/custom/MLModels/ml-model-form.component.js +3 -3
  58. package/dist/lib/custom/MLModels/ml-model-form.component.js.map +1 -1
  59. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +17 -35
  60. package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
  61. package/dist/lib/custom/MLModels/ml-model-view-models.js +55 -54
  62. package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
  63. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +7 -99
  64. package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
  65. package/dist/lib/custom/MLModels/ps-model-detail.component.js +124 -303
  66. package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
  67. package/dist/lib/custom/Queries/query-form.component.d.ts +9 -0
  68. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  69. package/dist/lib/custom/Queries/query-form.component.js +493 -444
  70. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  71. package/dist/lib/custom/Queries/query-run-dialog.component.js +2 -2
  72. package/dist/lib/custom/Templates/template-param-dialog.component.js +2 -2
  73. package/dist/lib/custom/Templates/templates-form.component.d.ts +9 -0
  74. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  75. package/dist/lib/custom/Templates/templates-form.component.js +118 -74
  76. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  77. package/dist/lib/custom/Tests/test-form.component.d.ts +5 -0
  78. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  79. package/dist/lib/custom/Tests/test-form.component.js +471 -451
  80. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  81. package/dist/lib/custom/Tests/test-run-form.component.d.ts +5 -0
  82. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  83. package/dist/lib/custom/Tests/test-run-form.component.js +312 -289
  84. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  85. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +5 -0
  86. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  87. package/dist/lib/custom/Tests/test-suite-form.component.js +697 -677
  88. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  89. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +5 -0
  90. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  91. package/dist/lib/custom/Tests/test-suite-run-form.component.js +453 -433
  92. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  93. package/dist/lib/custom/Users/user-header.panel.d.ts.map +1 -1
  94. package/dist/lib/custom/Users/user-header.panel.js +3 -3
  95. package/dist/lib/custom/Users/user-header.panel.js.map +1 -1
  96. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts +2 -2
  97. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts.map +1 -1
  98. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js +30 -13
  99. package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js.map +1 -1
  100. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +23 -0
  101. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  102. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +276 -216
  103. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  104. package/dist/lib/custom/custom-forms.module.d.ts +1 -1
  105. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  106. package/dist/lib/custom/custom-forms.module.js +7 -1
  107. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  108. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  109. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +32 -14
  110. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  111. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.d.ts.map +1 -1
  112. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +119 -95
  113. package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
  114. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.d.ts +10 -0
  115. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.d.ts.map +1 -0
  116. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.js +124 -0
  117. package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.js.map +1 -0
  118. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.d.ts +10 -0
  119. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.d.ts.map +1 -0
  120. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.js +99 -0
  121. package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.js.map +1 -0
  122. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +2 -2
  123. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  124. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.d.ts +10 -0
  125. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.d.ts.map +1 -0
  126. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.js +95 -0
  127. package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.js.map +1 -0
  128. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.d.ts +10 -0
  129. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.d.ts.map +1 -0
  130. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.js +60 -0
  131. package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.js.map +1 -0
  132. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  133. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +124 -106
  134. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  135. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.d.ts.map +1 -1
  136. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js +12 -4
  137. package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js.map +1 -1
  138. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.d.ts.map +1 -1
  139. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +19 -11
  140. package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
  141. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.d.ts +10 -0
  142. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.d.ts.map +1 -0
  143. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.js +62 -0
  144. package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.js.map +1 -0
  145. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts.map +1 -1
  146. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +26 -12
  147. package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -1
  148. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.d.ts +10 -0
  149. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.d.ts.map +1 -0
  150. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.js +140 -0
  151. package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.js.map +1 -0
  152. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.d.ts.map +1 -1
  153. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +69 -15
  154. package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
  155. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.d.ts.map +1 -1
  156. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +31 -13
  157. package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
  158. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.d.ts +10 -0
  159. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.d.ts.map +1 -0
  160. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.js +205 -0
  161. package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.js.map +1 -0
  162. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.d.ts.map +1 -1
  163. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js +24 -6
  164. package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js.map +1 -1
  165. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.d.ts +10 -0
  166. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.d.ts.map +1 -0
  167. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.js +173 -0
  168. package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.js.map +1 -0
  169. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.d.ts.map +1 -1
  170. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js +46 -24
  171. package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js.map +1 -1
  172. package/dist/lib/generated/Entities/MJMLTrainingRun/mjmltrainingrun.form.component.js +22 -14
  173. package/dist/lib/generated/Entities/MJMLTrainingRun/mjmltrainingrun.form.component.js.map +1 -1
  174. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.d.ts +10 -0
  175. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.d.ts.map +1 -0
  176. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.js +175 -0
  177. package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.js.map +1 -0
  178. package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +8 -6
  179. package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
  180. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
  181. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +44 -36
  182. package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.d.ts.map +1 -1
  184. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +54 -32
  185. package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
  186. package/dist/lib/generated/generated-forms.module.d.ts +452 -443
  187. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  188. package/dist/lib/generated/generated-forms.module.js +27 -0
  189. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  190. package/dist/lib/panels/feature-values/feature-values.panel.js +1 -1
  191. package/dist/lib/panels/feature-values/feature-values.panel.js.map +1 -1
  192. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +1 -1
  193. package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
  194. package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
  195. package/dist/lib/shared/components/template-editor.component.js +2 -2
  196. package/dist/lib/shared/phone-hero.d.ts +17 -0
  197. package/dist/lib/shared/phone-hero.d.ts.map +1 -0
  198. package/dist/lib/shared/phone-hero.js +30 -0
  199. package/dist/lib/shared/phone-hero.js.map +1 -0
  200. package/dist/lib/shared/phone-sections-state.d.ts +28 -0
  201. package/dist/lib/shared/phone-sections-state.d.ts.map +1 -0
  202. package/dist/lib/shared/phone-sections-state.js +38 -0
  203. package/dist/lib/shared/phone-sections-state.js.map +1 -0
  204. package/package.json +50 -50
@@ -23,6 +23,7 @@ import { AIEngineBase } from '@memberjunction/ai-engine-base';
23
23
  import { ActionEngineBase } from '@memberjunction/actions-base';
24
24
  import { PromptSelectorDialogComponent } from './prompt-selector-dialog.component';
25
25
  import { CreateAgentService } from '@memberjunction/ng-agents';
26
+ import { JoinHeroSummary } from '../../shared/phone-hero';
26
27
  import * as i0 from "@angular/core";
27
28
  import * as i1 from "@angular/forms";
28
29
  import * as i2 from "@memberjunction/ng-ui-components";
@@ -41,7 +42,7 @@ const _forTrack2 = ($index, $item) => $item.agent.ID;
41
42
  const _forTrack3 = ($index, $item) => $item.ScopeID;
42
43
  const _forTrack4 = ($index, $item) => $item.Principal + $item.Level;
43
44
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelement(0, "img", 14);
45
+ i0.ɵɵelement(0, "img", 15);
45
46
  } if (rf & 2) {
46
47
  const ctx_r1 = i0.ɵɵnextContext(3);
47
48
  i0.ɵɵproperty("src", ctx_r1.record.LogoURL, i0.ɵɵsanitizeUrl)("alt", ctx_r1.record.Name + " logo");
@@ -54,7 +55,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
54
55
  } }
55
56
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
56
57
  const _r4 = i0.ɵɵgetCurrentView();
57
- i0.ɵɵelementStart(0, "input", 26);
58
+ i0.ɵɵelementStart(0, "input", 28);
58
59
  i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_9_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Name, $event) || (ctx_r1.record.Name = $event); return i0.ɵɵresetView($event); });
59
60
  i0.ɵɵelementEnd();
60
61
  } if (rf & 2) {
@@ -62,7 +63,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
62
63
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.record.Name);
63
64
  } }
64
65
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "h1", 18);
66
+ i0.ɵɵelementStart(0, "h1", 19);
66
67
  i0.ɵɵtext(1);
67
68
  i0.ɵɵelementEnd();
68
69
  } if (rf & 2) {
@@ -71,8 +72,8 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
71
72
  i0.ɵɵtextInterpolate(ctx_r1.record.Name || "Untitled AI Agent");
72
73
  } }
73
74
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_12_Template(rf, ctx) { if (rf & 1) {
74
- i0.ɵɵelementStart(0, "span", 27);
75
- i0.ɵɵelement(1, "i", 28);
75
+ i0.ɵɵelementStart(0, "span", 29);
76
+ i0.ɵɵelement(1, "i", 30);
76
77
  i0.ɵɵtext(2);
77
78
  i0.ɵɵelementEnd();
78
79
  } if (rf & 2) {
@@ -82,7 +83,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
82
83
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status, " ");
83
84
  } }
84
85
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_13_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "span", 21);
86
+ i0.ɵɵelementStart(0, "span", 22);
86
87
  i0.ɵɵtext(1);
87
88
  i0.ɵɵelementEnd();
88
89
  } if (rf & 2) {
@@ -92,11 +93,11 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
92
93
  } }
93
94
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
94
95
  const _r5 = i0.ɵɵgetCurrentView();
95
- i0.ɵɵelementStart(0, "span", 29);
96
+ i0.ɵɵelementStart(0, "span", 31);
96
97
  i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_14_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToParentAgent()); });
97
- i0.ɵɵelement(1, "i", 30);
98
+ i0.ɵɵelement(1, "i", 32);
98
99
  i0.ɵɵtext(2);
99
- i0.ɵɵelement(3, "i", 31);
100
+ i0.ɵɵelement(3, "i", 33);
100
101
  i0.ɵɵelementEnd();
101
102
  } if (rf & 2) {
102
103
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -106,14 +107,14 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
106
107
  } }
107
108
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
108
109
  const _r6 = i0.ɵɵgetCurrentView();
109
- i0.ɵɵelementStart(0, "button", 32);
110
+ i0.ɵɵelementStart(0, "button", 34);
110
111
  i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestHarness()); });
111
- i0.ɵɵelement(1, "i", 33);
112
+ i0.ɵɵelement(1, "i", 35);
112
113
  i0.ɵɵtext(2, " Run ");
113
114
  i0.ɵɵelementEnd();
114
- i0.ɵɵelementStart(3, "button", 34);
115
+ i0.ɵɵelementStart(3, "button", 36);
115
116
  i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openPermissionsDialog()); });
116
- i0.ɵɵelement(4, "i", 35);
117
+ i0.ɵɵelement(4, "i", 37);
117
118
  i0.ɵɵtext(5);
118
119
  i0.ɵɵelementEnd();
119
120
  } if (rf & 2) {
@@ -127,30 +128,48 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_
127
128
  i0.ɵɵadvance();
128
129
  i0.ɵɵtextInterpolate1(" ", ctx_r1.IsOpenToEveryone ? "Open" : "Restricted", " ");
129
130
  } }
131
+ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_19_Template(rf, ctx) { if (rf & 1) {
132
+ const _r7 = i0.ɵɵgetCurrentView();
133
+ i0.ɵɵelementStart(0, "button", 38);
134
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_19_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleHeroDetails()); });
135
+ i0.ɵɵelementStart(1, "span", 39);
136
+ i0.ɵɵtext(2);
137
+ i0.ɵɵelementEnd();
138
+ i0.ɵɵelement(3, "i", 40);
139
+ i0.ɵɵelementEnd();
140
+ } if (rf & 2) {
141
+ const ctx_r1 = i0.ɵɵnextContext(3);
142
+ i0.ɵɵattribute("aria-expanded", ctx_r1.HeroDetailsOpen);
143
+ i0.ɵɵadvance(2);
144
+ i0.ɵɵtextInterpolate(ctx_r1.HeroSummary);
145
+ } }
130
146
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
131
147
  const _r3 = i0.ɵɵgetCurrentView();
132
- i0.ɵɵelementStart(0, "div", 6)(1, "div", 9)(2, "button", 10);
148
+ i0.ɵɵelementStart(0, "div", 9)(1, "div", 10)(2, "button", 11);
133
149
  i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleHeaderCollapsed()); });
134
- i0.ɵɵelement(3, "i", 11);
150
+ i0.ɵɵelement(3, "i", 12);
135
151
  i0.ɵɵelementEnd();
136
- i0.ɵɵelementStart(4, "div", 12)(5, "div", 13);
137
- i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_6_Template, 1, 2, "img", 14)(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_7_Template, 1, 2, "i", 15);
152
+ i0.ɵɵelementStart(4, "div", 13)(5, "div", 14);
153
+ i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_6_Template, 1, 2, "img", 15)(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_7_Template, 1, 2, "i", 16);
138
154
  i0.ɵɵelementEnd();
139
- i0.ɵɵelementStart(8, "div", 16);
140
- i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_9_Template, 1, 1, "input", 17)(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_10_Template, 2, 1, "h1", 18);
141
- i0.ɵɵelementStart(11, "div", 19);
142
- i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_12_Template, 3, 3, "span", 20);
143
- i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_13_Template, 2, 1, "span", 21);
144
- i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_14_Template, 4, 3, "span", 22);
155
+ i0.ɵɵelementStart(8, "div", 17);
156
+ i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_9_Template, 1, 1, "input", 18)(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_10_Template, 2, 1, "h1", 19);
157
+ i0.ɵɵelementStart(11, "div", 20);
158
+ i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_12_Template, 3, 3, "span", 21);
159
+ i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_13_Template, 2, 1, "span", 22);
160
+ i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_14_Template, 4, 3, "span", 23);
145
161
  i0.ɵɵelementEnd()()();
146
- i0.ɵɵelementStart(15, "div", 23);
162
+ i0.ɵɵelementStart(15, "div", 24);
147
163
  i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_16_Template, 6, 9);
148
- i0.ɵɵelementStart(17, "button", 24);
164
+ i0.ɵɵelementStart(17, "button", 25);
149
165
  i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.refreshRelatedData()); });
150
- i0.ɵɵelement(18, "i", 25);
151
- i0.ɵɵelementEnd()()()();
166
+ i0.ɵɵelement(18, "i", 26);
167
+ i0.ɵɵelementEnd()()();
168
+ i0.ɵɵconditionalCreate(19, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Conditional_19_Template, 4, 2, "button", 27);
169
+ i0.ɵɵelementEnd();
152
170
  } if (rf & 2) {
153
171
  const ctx_r1 = i0.ɵɵnextContext(2);
172
+ i0.ɵɵclassProp("hero-view", !ctx_r1.EditMode)("hero-compact", !ctx_r1.EditMode && !ctx_r1.HeroDetailsOpen);
154
173
  i0.ɵɵadvance(6);
155
174
  i0.ɵɵconditional(ctx_r1.hasLogoURL() ? 6 : 7);
156
175
  i0.ɵɵadvance(3);
@@ -163,9 +182,11 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Template(rf,
163
182
  i0.ɵɵconditional(ctx_r1.record.Parent ? 14 : -1);
164
183
  i0.ɵɵadvance(2);
165
184
  i0.ɵɵconditional(ctx_r1.record.ID ? 16 : -1);
185
+ i0.ɵɵadvance(3);
186
+ i0.ɵɵconditional(!ctx_r1.EditMode && ctx_r1.HeroSummary ? 19 : -1);
166
187
  } }
167
188
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
168
- i0.ɵɵelementStart(0, "span", 42);
189
+ i0.ɵɵelementStart(0, "span", 47);
169
190
  i0.ɵɵtext(1);
170
191
  i0.ɵɵelementEnd();
171
192
  } if (rf & 2) {
@@ -175,14 +196,14 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_
175
196
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status, " ");
176
197
  } }
177
198
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_7_Template(rf, ctx) { if (rf & 1) {
178
- const _r8 = i0.ɵɵgetCurrentView();
179
- i0.ɵɵelementStart(0, "button", 43);
180
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestHarness()); });
181
- i0.ɵɵelement(1, "i", 33);
199
+ const _r9 = i0.ɵɵgetCurrentView();
200
+ i0.ɵɵelementStart(0, "button", 48);
201
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestHarness()); });
202
+ i0.ɵɵelement(1, "i", 35);
182
203
  i0.ɵɵelementEnd();
183
- i0.ɵɵelementStart(2, "button", 44);
184
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_7_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openPermissionsDialog()); });
185
- i0.ɵɵelement(3, "i", 35);
204
+ i0.ɵɵelementStart(2, "button", 49);
205
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_7_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openPermissionsDialog()); });
206
+ i0.ɵɵelement(3, "i", 37);
186
207
  i0.ɵɵelementEnd();
187
208
  } if (rf & 2) {
188
209
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -194,20 +215,20 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_
194
215
  i0.ɵɵclassProp("fa-lock-open", ctx_r1.IsOpenToEveryone)("fa-lock", !ctx_r1.IsOpenToEveryone);
195
216
  } }
196
217
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
197
- const _r7 = i0.ɵɵgetCurrentView();
198
- i0.ɵɵelementStart(0, "div", 7)(1, "button", 36);
199
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleHeaderCollapsed()); });
200
- i0.ɵɵelement(2, "i", 37);
218
+ const _r8 = i0.ɵɵgetCurrentView();
219
+ i0.ɵɵelementStart(0, "div", 7)(1, "button", 41);
220
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleHeaderCollapsed()); });
221
+ i0.ɵɵelement(2, "i", 42);
201
222
  i0.ɵɵelementEnd();
202
- i0.ɵɵelementStart(3, "span", 38);
223
+ i0.ɵɵelementStart(3, "span", 43);
203
224
  i0.ɵɵtext(4);
204
225
  i0.ɵɵelementEnd();
205
- i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_5_Template, 2, 3, "span", 39);
206
- i0.ɵɵelement(6, "div", 40);
226
+ i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_5_Template, 2, 3, "span", 44);
227
+ i0.ɵɵelement(6, "div", 45);
207
228
  i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Conditional_7_Template, 4, 8);
208
- i0.ɵɵelementStart(8, "button", 41);
209
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.refreshRelatedData()); });
210
- i0.ɵɵelement(9, "i", 25);
229
+ i0.ɵɵelementStart(8, "button", 46);
230
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.refreshRelatedData()); });
231
+ i0.ɵɵelement(9, "i", 26);
211
232
  i0.ɵɵelementEnd()();
212
233
  } if (rf & 2) {
213
234
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -220,28 +241,33 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template(rf,
220
241
  } }
221
242
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_5_Template(rf, ctx) { if (rf & 1) {
222
243
  i0.ɵɵelementStart(0, "div", 8);
223
- i0.ɵɵelement(1, "mj-loading", 45);
244
+ i0.ɵɵelement(1, "mj-loading", 50);
224
245
  i0.ɵɵelementEnd();
225
246
  } }
226
247
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
227
- const _r10 = i0.ɵɵgetCurrentView();
228
- i0.ɵɵelementStart(0, "div", 46)(1, "mj-tab-nav", 146);
229
- i0.ɵɵlistener("TabChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_0_Template_mj_tab_nav_TabChange_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormTabChange($event)); });
248
+ const _r11 = i0.ɵɵgetCurrentView();
249
+ i0.ɵɵelementStart(0, "div", 51)(1, "mj-section-picker", 151);
250
+ i0.ɵɵlistener("ActiveKeyChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_0_Template_mj_section_picker_ActiveKeyChange_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnSectionPicked($event)); });
251
+ i0.ɵɵelementEnd();
252
+ i0.ɵɵelementStart(2, "mj-tab-nav", 152);
253
+ i0.ɵɵlistener("TabChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_0_Template_mj_tab_nav_TabChange_2_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnFormTabChange($event)); });
230
254
  i0.ɵɵelementEnd()();
231
255
  } if (rf & 2) {
232
256
  const ctx_r1 = i0.ɵɵnextContext(3);
233
257
  i0.ɵɵadvance();
258
+ i0.ɵɵproperty("Items", ctx_r1.SectionPickerItems)("ActiveKey", ctx_r1.ActiveFormTab || "");
259
+ i0.ɵɵadvance();
234
260
  i0.ɵɵproperty("Tabs", ctx_r1.FormTabs)("ActiveKey", ctx_r1.ActiveFormTab || "");
235
261
  } }
236
262
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
237
- i0.ɵɵelement(0, "mj-loading", 148);
263
+ i0.ɵɵelement(0, "mj-loading", 154);
238
264
  } if (rf & 2) {
239
265
  const ctx_r1 = i0.ɵɵnextContext(4);
240
266
  i0.ɵɵproperty("text", i0.ɵɵinterpolate1("Loading ", ctx_r1.agentType == null ? null : ctx_r1.agentType.Name, " configuration..."));
241
267
  } }
242
268
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
243
- i0.ɵɵelementStart(0, "div", 147);
244
- i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_1_Conditional_1_Template, 1, 2, "mj-loading", 148);
269
+ i0.ɵɵelementStart(0, "div", 153);
270
+ i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_1_Conditional_1_Template, 1, 2, "mj-loading", 154);
245
271
  i0.ɵɵelementContainer(2, null, 1);
246
272
  i0.ɵɵelementEnd();
247
273
  } if (rf & 2) {
@@ -251,12 +277,12 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
251
277
  i0.ɵɵconditional(ctx_r1.loadingStates.customSection ? 1 : -1);
252
278
  } }
253
279
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
254
- const _r11 = i0.ɵɵgetCurrentView();
255
- i0.ɵɵelementStart(0, "div", 149)(1, "mj-agent-invocations", 150);
256
- i0.ɵɵlistener("RecordOpenRequested", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_2_Template_mj_agent_invocations_RecordOpenRequested_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnInvocationOpenRequested($event)); });
280
+ const _r12 = i0.ɵɵgetCurrentView();
281
+ i0.ɵɵelementStart(0, "div", 155)(1, "mj-agent-invocations", 156);
282
+ i0.ɵɵlistener("RecordOpenRequested", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_2_Template_mj_agent_invocations_RecordOpenRequested_1_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnInvocationOpenRequested($event)); });
257
283
  i0.ɵɵelementEnd()();
258
- i0.ɵɵelementStart(2, "div", 151);
259
- i0.ɵɵelement(3, "mj-agent-rubrics", 152);
284
+ i0.ɵɵelementStart(2, "div", 157);
285
+ i0.ɵɵelement(3, "mj-agent-rubrics", 158);
260
286
  i0.ɵɵelementEnd();
261
287
  } if (rf & 2) {
262
288
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -270,7 +296,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
270
296
  } }
271
297
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
272
298
  i0.ɵɵelementStart(0, "span");
273
- i0.ɵɵelement(1, "i", 156);
299
+ i0.ɵɵelement(1, "i", 162);
274
300
  i0.ɵɵelementEnd();
275
301
  } }
276
302
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Conditional_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
@@ -293,7 +319,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
293
319
  i0.ɵɵconditional(ctx_r1.executionHistoryCount < ctx_r1.totalExecutionHistoryCount ? 2 : -1);
294
320
  } }
295
321
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {
296
- i0.ɵɵelement(0, "i", 155);
322
+ i0.ɵɵelement(0, "i", 161);
297
323
  i0.ɵɵtext(1, " Execution History ");
298
324
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Conditional_2_Template, 2, 0, "span")(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Conditional_3_Template, 4, 2, "span");
299
325
  } if (rf & 2) {
@@ -302,7 +328,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
302
328
  i0.ɵɵconditional(ctx_r1.loadingStates.executionHistory ? 2 : ctx_r1.executionHistoryCount > 0 ? 3 : -1);
303
329
  } }
304
330
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
305
- i0.ɵɵelementStart(0, "span", 159);
331
+ i0.ɵɵelementStart(0, "span", 165);
306
332
  i0.ɵɵtext(1);
307
333
  i0.ɵɵelementEnd();
308
334
  } if (rf & 2) {
@@ -311,7 +337,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
311
337
  i0.ɵɵtextInterpolate(ctx_r1.totalExecutionHistoryCount);
312
338
  } }
313
339
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
314
- i0.ɵɵelementStart(0, "span", 159);
340
+ i0.ɵɵelementStart(0, "span", 165);
315
341
  i0.ɵɵtext(1);
316
342
  i0.ɵɵelementEnd();
317
343
  } if (rf & 2) {
@@ -320,18 +346,18 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
320
346
  i0.ɵɵtextInterpolate(ctx_r1.totalSessionCount);
321
347
  } }
322
348
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
323
- const _r12 = i0.ɵɵgetCurrentView();
324
- i0.ɵɵelementStart(0, "div", 154)(1, "button", 157);
325
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.setExecutionHistoryView("runs")); });
326
- i0.ɵɵelement(2, "i", 158);
349
+ const _r13 = i0.ɵɵgetCurrentView();
350
+ i0.ɵɵelementStart(0, "div", 160)(1, "button", 163);
351
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.setExecutionHistoryView("runs")); });
352
+ i0.ɵɵelement(2, "i", 164);
327
353
  i0.ɵɵtext(3, " Runs ");
328
- i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Conditional_4_Template, 2, 1, "span", 159);
354
+ i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Conditional_4_Template, 2, 1, "span", 165);
329
355
  i0.ɵɵelementEnd();
330
- i0.ɵɵelementStart(5, "button", 157);
331
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.setExecutionHistoryView("sessions")); });
332
- i0.ɵɵelement(6, "i", 160);
356
+ i0.ɵɵelementStart(5, "button", 163);
357
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.setExecutionHistoryView("sessions")); });
358
+ i0.ɵɵelement(6, "i", 166);
333
359
  i0.ɵɵtext(7, " Sessions ");
334
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Conditional_8_Template, 2, 1, "span", 159);
360
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Conditional_8_Template, 2, 1, "span", 165);
335
361
  i0.ɵɵelementEnd()();
336
362
  } if (rf & 2) {
337
363
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -345,131 +371,131 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
345
371
  i0.ɵɵconditional(ctx_r1.totalSessionCount > 0 ? 8 : -1);
346
372
  } }
347
373
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
348
- i0.ɵɵelement(0, "mj-loading", 161);
374
+ i0.ɵɵelement(0, "mj-loading", 167);
349
375
  } }
350
376
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
351
- i0.ɵɵelement(0, "mj-empty-state", 162);
377
+ i0.ɵɵelement(0, "mj-empty-state", 168);
352
378
  } }
353
379
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
354
- i0.ɵɵelementStart(0, "span", 172);
380
+ i0.ɵɵelementStart(0, "span", 178);
355
381
  i0.ɵɵtext(1, "as co-agent");
356
382
  i0.ɵɵelementEnd();
357
383
  } }
358
384
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
359
- i0.ɵɵelementStart(0, "span", 173);
385
+ i0.ɵɵelementStart(0, "span", 179);
360
386
  i0.ɵɵtext(1, "as target");
361
387
  i0.ɵɵelementEnd();
362
388
  } }
363
389
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
364
- i0.ɵɵelementStart(0, "div", 176);
365
- i0.ɵɵelement(1, "i", 186);
366
- i0.ɵɵelementStart(2, "span", 179);
390
+ i0.ɵɵelementStart(0, "div", 182);
391
+ i0.ɵɵelement(1, "i", 192);
392
+ i0.ɵɵelementStart(2, "span", 185);
367
393
  i0.ɵɵtext(3, "Target:");
368
394
  i0.ɵɵelementEnd();
369
- i0.ɵɵelementStart(4, "span", 180);
395
+ i0.ɵɵelementStart(4, "span", 186);
370
396
  i0.ɵɵtext(5);
371
397
  i0.ɵɵelementEnd()();
372
398
  } if (rf & 2) {
373
- const item_r14 = i0.ɵɵnextContext().$implicit;
399
+ const item_r15 = i0.ɵɵnextContext().$implicit;
374
400
  i0.ɵɵadvance(5);
375
- i0.ɵɵtextInterpolate(item_r14.targetAgentName);
401
+ i0.ɵɵtextInterpolate(item_r15.targetAgentName);
376
402
  } }
377
403
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_31_Template(rf, ctx) { if (rf & 1) {
378
- i0.ɵɵelementStart(0, "div", 176);
379
- i0.ɵɵelement(1, "i", 160);
380
- i0.ɵɵelementStart(2, "span", 179);
404
+ i0.ɵɵelementStart(0, "div", 182);
405
+ i0.ɵɵelement(1, "i", 166);
406
+ i0.ɵɵelementStart(2, "span", 185);
381
407
  i0.ɵɵtext(3, "Co-agent:");
382
408
  i0.ɵɵelementEnd();
383
- i0.ɵɵelementStart(4, "span", 180);
409
+ i0.ɵɵelementStart(4, "span", 186);
384
410
  i0.ɵɵtext(5);
385
411
  i0.ɵɵelementEnd()();
386
412
  } if (rf & 2) {
387
- const item_r14 = i0.ɵɵnextContext().$implicit;
413
+ const item_r15 = i0.ɵɵnextContext().$implicit;
388
414
  i0.ɵɵadvance(5);
389
- i0.ɵɵtextInterpolate(item_r14.row.Agent);
415
+ i0.ɵɵtextInterpolate(item_r15.row.Agent);
390
416
  } }
391
417
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
392
- const _r13 = i0.ɵɵgetCurrentView();
393
- i0.ɵɵelementStart(0, "div", 165);
394
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template_div_click_0_listener() { const item_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.openSessionRecord(item_r14.row.ID)); });
395
- i0.ɵɵelementStart(1, "div", 166)(2, "div", 167)(3, "div", 168)(4, "div", 169);
418
+ const _r14 = i0.ɵɵgetCurrentView();
419
+ i0.ɵɵelementStart(0, "div", 171);
420
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template_div_click_0_listener() { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.openSessionRecord(item_r15.row.ID)); });
421
+ i0.ɵɵelementStart(1, "div", 172)(2, "div", 173)(3, "div", 174)(4, "div", 175);
396
422
  i0.ɵɵelement(5, "i");
397
423
  i0.ɵɵelementEnd();
398
- i0.ɵɵelementStart(6, "div", 170)(7, "div", 171);
424
+ i0.ɵɵelementStart(6, "div", 176)(7, "div", 177);
399
425
  i0.ɵɵtext(8);
400
- i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_9_Template, 2, 0, "span", 172);
401
- i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_10_Template, 2, 0, "span", 173);
426
+ i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_9_Template, 2, 0, "span", 178);
427
+ i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_10_Template, 2, 0, "span", 179);
402
428
  i0.ɵɵelementEnd();
403
- i0.ɵɵelementStart(11, "div", 174);
429
+ i0.ɵɵelementStart(11, "div", 180);
404
430
  i0.ɵɵtext(12);
405
431
  i0.ɵɵpipe(13, "date");
406
432
  i0.ɵɵelementEnd()()();
407
- i0.ɵɵelementStart(14, "div", 175)(15, "div", 176)(16, "span", 177);
433
+ i0.ɵɵelementStart(14, "div", 181)(15, "div", 182)(16, "span", 183);
408
434
  i0.ɵɵtext(17);
409
435
  i0.ɵɵelementEnd()();
410
- i0.ɵɵelementStart(18, "div", 176);
411
- i0.ɵɵelement(19, "i", 178);
412
- i0.ɵɵelementStart(20, "span", 179);
436
+ i0.ɵɵelementStart(18, "div", 182);
437
+ i0.ɵɵelement(19, "i", 184);
438
+ i0.ɵɵelementStart(20, "span", 185);
413
439
  i0.ɵɵtext(21, "Duration:");
414
440
  i0.ɵɵelementEnd();
415
- i0.ɵɵelementStart(22, "span", 180);
441
+ i0.ɵɵelementStart(22, "span", 186);
416
442
  i0.ɵɵtext(23);
417
443
  i0.ɵɵelementEnd()();
418
- i0.ɵɵelementStart(24, "div", 176);
419
- i0.ɵɵelement(25, "i", 181);
420
- i0.ɵɵelementStart(26, "span", 179);
444
+ i0.ɵɵelementStart(24, "div", 182);
445
+ i0.ɵɵelement(25, "i", 187);
446
+ i0.ɵɵelementStart(26, "span", 185);
421
447
  i0.ɵɵtext(27, "Channels:");
422
448
  i0.ɵɵelementEnd();
423
- i0.ɵɵelementStart(28, "span", 180);
449
+ i0.ɵɵelementStart(28, "span", 186);
424
450
  i0.ɵɵtext(29);
425
451
  i0.ɵɵelementEnd()();
426
- i0.ɵɵconditionalCreate(30, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_30_Template, 6, 1, "div", 176);
427
- i0.ɵɵconditionalCreate(31, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_31_Template, 6, 1, "div", 176);
428
- i0.ɵɵelementStart(32, "div", 176);
429
- i0.ɵɵelement(33, "i", 182);
430
- i0.ɵɵelementStart(34, "span", 179);
452
+ i0.ɵɵconditionalCreate(30, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_30_Template, 6, 1, "div", 182);
453
+ i0.ɵɵconditionalCreate(31, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Conditional_31_Template, 6, 1, "div", 182);
454
+ i0.ɵɵelementStart(32, "div", 182);
455
+ i0.ɵɵelement(33, "i", 188);
456
+ i0.ɵɵelementStart(34, "span", 185);
431
457
  i0.ɵɵtext(35, "User:");
432
458
  i0.ɵɵelementEnd();
433
- i0.ɵɵelementStart(36, "span", 180);
459
+ i0.ɵɵelementStart(36, "span", 186);
434
460
  i0.ɵɵtext(37);
435
461
  i0.ɵɵelementEnd()()()();
436
- i0.ɵɵelementStart(38, "div", 183)(39, "button", 184);
437
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template_button_click_39_listener($event) { const item_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); ctx_r1.openSessionRecord(item_r14.row.ID); return i0.ɵɵresetView($event.stopPropagation()); });
438
- i0.ɵɵelement(40, "i", 185);
462
+ i0.ɵɵelementStart(38, "div", 189)(39, "button", 190);
463
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template_button_click_39_listener($event) { const item_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); ctx_r1.openSessionRecord(item_r15.row.ID); return i0.ɵɵresetView($event.stopPropagation()); });
464
+ i0.ɵɵelement(40, "i", 191);
439
465
  i0.ɵɵelementEnd()()()();
440
466
  } if (rf & 2) {
441
- const item_r14 = ctx.$implicit;
467
+ const item_r15 = ctx.$implicit;
442
468
  const ctx_r1 = i0.ɵɵnextContext(6);
443
469
  i0.ɵɵadvance(4);
444
- i0.ɵɵstyleProp("background-color", ctx_r1.getSessionStatusColor(item_r14.row.Status));
470
+ i0.ɵɵstyleProp("background-color", ctx_r1.getSessionStatusColor(item_r15.row.Status));
445
471
  i0.ɵɵadvance();
446
- i0.ɵɵclassMap(ctx_r1.getSessionStatusIcon(item_r14.row.Status));
472
+ i0.ɵɵclassMap(ctx_r1.getSessionStatusIcon(item_r15.row.Status));
447
473
  i0.ɵɵadvance(3);
448
- i0.ɵɵtextInterpolate1(" Session #", item_r14.row.ID.substring(0, 8), " ");
474
+ i0.ɵɵtextInterpolate1(" Session #", item_r15.row.ID.substring(0, 8), " ");
449
475
  i0.ɵɵadvance();
450
- i0.ɵɵconditional(item_r14.isCoAgent ? 9 : -1);
476
+ i0.ɵɵconditional(item_r15.isCoAgent ? 9 : -1);
451
477
  i0.ɵɵadvance();
452
- i0.ɵɵconditional(item_r14.isTarget ? 10 : -1);
478
+ i0.ɵɵconditional(item_r15.isTarget ? 10 : -1);
453
479
  i0.ɵɵadvance(2);
454
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(13, 15, item_r14.row.__mj_CreatedAt, "MMM d, h:mm a"));
480
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(13, 15, item_r15.row.__mj_CreatedAt, "MMM d, h:mm a"));
455
481
  i0.ɵɵadvance(4);
456
- i0.ɵɵattribute("data-status", item_r14.row.Status);
482
+ i0.ɵɵattribute("data-status", item_r15.row.Status);
457
483
  i0.ɵɵadvance();
458
- i0.ɵɵtextInterpolate(item_r14.row.Status);
484
+ i0.ɵɵtextInterpolate(item_r15.row.Status);
459
485
  i0.ɵɵadvance(6);
460
- i0.ɵɵtextInterpolate(ctx_r1.formatSessionDuration(item_r14));
486
+ i0.ɵɵtextInterpolate(ctx_r1.formatSessionDuration(item_r15));
461
487
  i0.ɵɵadvance(6);
462
- i0.ɵɵtextInterpolate(item_r14.channelCount);
488
+ i0.ɵɵtextInterpolate(item_r15.channelCount);
463
489
  i0.ɵɵadvance();
464
- i0.ɵɵconditional(item_r14.isCoAgent && item_r14.targetAgentName ? 30 : -1);
490
+ i0.ɵɵconditional(item_r15.isCoAgent && item_r15.targetAgentName ? 30 : -1);
465
491
  i0.ɵɵadvance();
466
- i0.ɵɵconditional(item_r14.isTarget && !item_r14.isCoAgent && item_r14.row.Agent ? 31 : -1);
492
+ i0.ɵɵconditional(item_r15.isTarget && !item_r15.isCoAgent && item_r15.row.Agent ? 31 : -1);
467
493
  i0.ɵɵadvance(6);
468
- i0.ɵɵtextInterpolate(item_r14.row.User);
494
+ i0.ɵɵtextInterpolate(item_r15.row.User);
469
495
  } }
470
496
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
471
- i0.ɵɵelementStart(0, "div", 163);
472
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template, 41, 18, "div", 164, _forTrack0);
497
+ i0.ɵɵelementStart(0, "div", 169);
498
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_For_2_Template, 41, 18, "div", 170, _forTrack0);
473
499
  i0.ɵɵelementEnd();
474
500
  } if (rf & 2) {
475
501
  const ctx_r1 = i0.ɵɵnextContext(5);
@@ -477,305 +503,305 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
477
503
  i0.ɵɵrepeater(ctx_r1.agentSessions);
478
504
  } }
479
505
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
480
- i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_0_Template, 1, 0, "mj-loading", 161)(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_1_Template, 1, 0, "mj-empty-state", 162)(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_Template, 3, 0, "div", 163);
506
+ i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_0_Template, 1, 0, "mj-loading", 167)(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_1_Template, 1, 0, "mj-empty-state", 168)(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Conditional_2_Template, 3, 0, "div", 169);
481
507
  } if (rf & 2) {
482
508
  const ctx_r1 = i0.ɵɵnextContext(4);
483
509
  i0.ɵɵconditional(ctx_r1.loadingSessions ? 0 : ctx_r1.agentSessions.length === 0 ? 1 : 2);
484
510
  } }
485
511
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
486
- i0.ɵɵelement(0, "mj-loading", 187);
512
+ i0.ɵɵelement(0, "mj-loading", 193);
487
513
  } }
488
514
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
489
- i0.ɵɵelement(0, "mj-empty-state", 188);
515
+ i0.ɵɵelement(0, "mj-empty-state", 194);
490
516
  } }
491
517
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
492
- i0.ɵɵelement(0, "mj-empty-state", 193);
518
+ i0.ɵɵelement(0, "mj-empty-state", 199);
493
519
  } if (rf & 2) {
494
520
  const ctx_r1 = i0.ɵɵnextContext(6);
495
521
  i0.ɵɵproperty("Message", ctx_r1.ExecutionSearchEmptyMessage);
496
522
  } }
497
523
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_14_Template(rf, ctx) { if (rf & 1) {
498
- i0.ɵɵelementStart(0, "div", 176);
499
- i0.ɵɵelement(1, "i", 201);
500
- i0.ɵɵelementStart(2, "span", 179);
524
+ i0.ɵɵelementStart(0, "div", 182);
525
+ i0.ɵɵelement(1, "i", 207);
526
+ i0.ɵɵelementStart(2, "span", 185);
501
527
  i0.ɵɵtext(3, "Config:");
502
528
  i0.ɵɵelementEnd();
503
- i0.ɵɵelementStart(4, "span", 180);
529
+ i0.ɵɵelementStart(4, "span", 186);
504
530
  i0.ɵɵtext(5);
505
531
  i0.ɵɵelementEnd()();
506
532
  } if (rf & 2) {
507
- const execution_r17 = i0.ɵɵnextContext().$implicit;
533
+ const execution_r18 = i0.ɵɵnextContext().$implicit;
508
534
  i0.ɵɵadvance(5);
509
- i0.ɵɵtextInterpolate(execution_r17.Configuration);
535
+ i0.ɵɵtextInterpolate(execution_r18.Configuration);
510
536
  } }
511
537
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_15_Template(rf, ctx) { if (rf & 1) {
512
- i0.ɵɵelementStart(0, "div", 176);
513
- i0.ɵɵelement(1, "i", 178);
514
- i0.ɵɵelementStart(2, "span", 179);
538
+ i0.ɵɵelementStart(0, "div", 182);
539
+ i0.ɵɵelement(1, "i", 184);
540
+ i0.ɵɵelementStart(2, "span", 185);
515
541
  i0.ɵɵtext(3, "Duration:");
516
542
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(4, "span", 180);
543
+ i0.ɵɵelementStart(4, "span", 186);
518
544
  i0.ɵɵtext(5);
519
545
  i0.ɵɵelementEnd()();
520
546
  } if (rf & 2) {
521
- const execution_r17 = i0.ɵɵnextContext().$implicit;
547
+ const execution_r18 = i0.ɵɵnextContext().$implicit;
522
548
  const ctx_r1 = i0.ɵɵnextContext(6);
523
549
  i0.ɵɵadvance(5);
524
- i0.ɵɵtextInterpolate(ctx_r1.formatExecutionTimeFromDates(execution_r17.StartedAt, execution_r17.CompletedAt));
550
+ i0.ɵɵtextInterpolate(ctx_r1.formatExecutionTimeFromDates(execution_r18.StartedAt, execution_r18.CompletedAt));
525
551
  } }
526
552
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_16_Template(rf, ctx) { if (rf & 1) {
527
- i0.ɵɵelementStart(0, "div", 176);
528
- i0.ɵɵelement(1, "i", 202);
529
- i0.ɵɵelementStart(2, "span", 179);
553
+ i0.ɵɵelementStart(0, "div", 182);
554
+ i0.ɵɵelement(1, "i", 208);
555
+ i0.ɵɵelementStart(2, "span", 185);
530
556
  i0.ɵɵtext(3, "Running:");
531
557
  i0.ɵɵelementEnd()();
532
558
  } }
533
559
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_17_Template(rf, ctx) { if (rf & 1) {
534
- i0.ɵɵelementStart(0, "div", 176);
535
- i0.ɵɵelement(1, "i", 203);
536
- i0.ɵɵelementStart(2, "span", 179);
560
+ i0.ɵɵelementStart(0, "div", 182);
561
+ i0.ɵɵelement(1, "i", 209);
562
+ i0.ɵɵelementStart(2, "span", 185);
537
563
  i0.ɵɵtext(3, "Tokens:");
538
564
  i0.ɵɵelementEnd();
539
- i0.ɵɵelementStart(4, "span", 180);
565
+ i0.ɵɵelementStart(4, "span", 186);
540
566
  i0.ɵɵtext(5);
541
567
  i0.ɵɵelementEnd()();
542
568
  } if (rf & 2) {
543
- const execution_r17 = i0.ɵɵnextContext().$implicit;
569
+ const execution_r18 = i0.ɵɵnextContext().$implicit;
544
570
  const ctx_r1 = i0.ɵɵnextContext(6);
545
571
  i0.ɵɵadvance(5);
546
- i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r17.TotalTokensUsedRollup || execution_r17.TotalTokensUsed));
572
+ i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r18.TotalTokensUsedRollup || execution_r18.TotalTokensUsed));
547
573
  } }
548
574
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_18_Template(rf, ctx) { if (rf & 1) {
549
- i0.ɵɵelementStart(0, "div", 176);
550
- i0.ɵɵelement(1, "i", 204);
551
- i0.ɵɵelementStart(2, "span", 179);
575
+ i0.ɵɵelementStart(0, "div", 182);
576
+ i0.ɵɵelement(1, "i", 210);
577
+ i0.ɵɵelementStart(2, "span", 185);
552
578
  i0.ɵɵtext(3, "Cost:");
553
579
  i0.ɵɵelementEnd();
554
- i0.ɵɵelementStart(4, "span", 180);
580
+ i0.ɵɵelementStart(4, "span", 186);
555
581
  i0.ɵɵtext(5);
556
582
  i0.ɵɵelementEnd()();
557
583
  } if (rf & 2) {
558
- const execution_r17 = i0.ɵɵnextContext().$implicit;
584
+ const execution_r18 = i0.ɵɵnextContext().$implicit;
559
585
  const ctx_r1 = i0.ɵɵnextContext(6);
560
586
  i0.ɵɵadvance(5);
561
- i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r17.TotalCostRollup || execution_r17.TotalCost));
587
+ i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r18.TotalCostRollup || execution_r18.TotalCost));
562
588
  } }
563
589
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_11_Template(rf, ctx) { if (rf & 1) {
564
- i0.ɵɵelementStart(0, "div", 207);
565
- i0.ɵɵelement(1, "i", 213);
566
- i0.ɵɵelementStart(2, "div", 208)(3, "span", 209);
590
+ i0.ɵɵelementStart(0, "div", 213);
591
+ i0.ɵɵelement(1, "i", 219);
592
+ i0.ɵɵelementStart(2, "div", 214)(3, "span", 215);
567
593
  i0.ɵɵtext(4, "Completed");
568
594
  i0.ɵɵelementEnd();
569
- i0.ɵɵelementStart(5, "span", 210);
595
+ i0.ɵɵelementStart(5, "span", 216);
570
596
  i0.ɵɵtext(6);
571
597
  i0.ɵɵpipe(7, "date");
572
598
  i0.ɵɵelementEnd()()();
573
599
  } if (rf & 2) {
574
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
600
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
575
601
  i0.ɵɵadvance(6);
576
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, execution_r17.CompletedAt, "medium"));
602
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, execution_r18.CompletedAt, "medium"));
577
603
  } }
578
604
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_12_Template(rf, ctx) { if (rf & 1) {
579
- i0.ɵɵelementStart(0, "div", 207);
580
- i0.ɵɵelement(1, "i", 203);
581
- i0.ɵɵelementStart(2, "div", 208)(3, "span", 209);
605
+ i0.ɵɵelementStart(0, "div", 213);
606
+ i0.ɵɵelement(1, "i", 209);
607
+ i0.ɵɵelementStart(2, "div", 214)(3, "span", 215);
582
608
  i0.ɵɵtext(4, "Direct Tokens");
583
609
  i0.ɵɵelementEnd();
584
- i0.ɵɵelementStart(5, "span", 210);
610
+ i0.ɵɵelementStart(5, "span", 216);
585
611
  i0.ɵɵtext(6);
586
612
  i0.ɵɵelementEnd()()();
587
613
  } if (rf & 2) {
588
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
614
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
589
615
  const ctx_r1 = i0.ɵɵnextContext(6);
590
616
  i0.ɵɵadvance(6);
591
- i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r17.TotalTokensUsed));
617
+ i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r18.TotalTokensUsed));
592
618
  } }
593
619
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_13_Template(rf, ctx) { if (rf & 1) {
594
- i0.ɵɵelementStart(0, "div", 207);
595
- i0.ɵɵelement(1, "i", 30);
596
- i0.ɵɵelementStart(2, "div", 208)(3, "span", 209);
620
+ i0.ɵɵelementStart(0, "div", 213);
621
+ i0.ɵɵelement(1, "i", 32);
622
+ i0.ɵɵelementStart(2, "div", 214)(3, "span", 215);
597
623
  i0.ɵɵtext(4, "Total + Sub-agents");
598
624
  i0.ɵɵelementEnd();
599
- i0.ɵɵelementStart(5, "span", 210);
625
+ i0.ɵɵelementStart(5, "span", 216);
600
626
  i0.ɵɵtext(6);
601
627
  i0.ɵɵelementEnd()()();
602
628
  } if (rf & 2) {
603
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
629
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
604
630
  const ctx_r1 = i0.ɵɵnextContext(6);
605
631
  i0.ɵɵadvance(6);
606
- i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r17.TotalTokensUsedRollup));
632
+ i0.ɵɵtextInterpolate(ctx_r1.formatTokenCount(execution_r18.TotalTokensUsedRollup));
607
633
  } }
608
634
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_14_Template(rf, ctx) { if (rf & 1) {
609
- i0.ɵɵelementStart(0, "div", 207);
610
- i0.ɵɵelement(1, "i", 204);
611
- i0.ɵɵelementStart(2, "div", 208)(3, "span", 209);
635
+ i0.ɵɵelementStart(0, "div", 213);
636
+ i0.ɵɵelement(1, "i", 210);
637
+ i0.ɵɵelementStart(2, "div", 214)(3, "span", 215);
612
638
  i0.ɵɵtext(4, "Direct Cost");
613
639
  i0.ɵɵelementEnd();
614
- i0.ɵɵelementStart(5, "span", 210);
640
+ i0.ɵɵelementStart(5, "span", 216);
615
641
  i0.ɵɵtext(6);
616
642
  i0.ɵɵelementEnd()()();
617
643
  } if (rf & 2) {
618
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
644
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
619
645
  const ctx_r1 = i0.ɵɵnextContext(6);
620
646
  i0.ɵɵadvance(6);
621
- i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r17.TotalCost));
647
+ i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r18.TotalCost));
622
648
  } }
623
649
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_15_Template(rf, ctx) { if (rf & 1) {
624
- i0.ɵɵelementStart(0, "div", 207);
625
- i0.ɵɵelement(1, "i", 214);
626
- i0.ɵɵelementStart(2, "div", 208)(3, "span", 209);
650
+ i0.ɵɵelementStart(0, "div", 213);
651
+ i0.ɵɵelement(1, "i", 220);
652
+ i0.ɵɵelementStart(2, "div", 214)(3, "span", 215);
627
653
  i0.ɵɵtext(4, "Total + Sub-agents");
628
654
  i0.ɵɵelementEnd();
629
- i0.ɵɵelementStart(5, "span", 210);
655
+ i0.ɵɵelementStart(5, "span", 216);
630
656
  i0.ɵɵtext(6);
631
657
  i0.ɵɵelementEnd()()();
632
658
  } if (rf & 2) {
633
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
659
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
634
660
  const ctx_r1 = i0.ɵɵnextContext(6);
635
661
  i0.ɵɵadvance(6);
636
- i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r17.TotalCostRollup));
662
+ i0.ɵɵtextInterpolate1("$", ctx_r1.formatCost(execution_r18.TotalCostRollup));
637
663
  } }
638
664
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_16_Template(rf, ctx) { if (rf & 1) {
639
- i0.ɵɵelementStart(0, "div", 207);
640
- i0.ɵɵelement(1, "i", 215);
641
- i0.ɵɵelementStart(2, "div", 208)(3, "span", 209);
665
+ i0.ɵɵelementStart(0, "div", 213);
666
+ i0.ɵɵelement(1, "i", 221);
667
+ i0.ɵɵelementStart(2, "div", 214)(3, "span", 215);
642
668
  i0.ɵɵtext(4, "Conversation");
643
669
  i0.ɵɵelementEnd();
644
- i0.ɵɵelementStart(5, "span", 210);
670
+ i0.ɵɵelementStart(5, "span", 216);
645
671
  i0.ɵɵtext(6);
646
672
  i0.ɵɵelementEnd()()();
647
673
  } if (rf & 2) {
648
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
674
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
649
675
  i0.ɵɵadvance(6);
650
- i0.ɵɵtextInterpolate1("", execution_r17.ConversationID.substring(0, 8), "...");
676
+ i0.ɵɵtextInterpolate1("", execution_r18.ConversationID.substring(0, 8), "...");
651
677
  } }
652
678
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
653
- i0.ɵɵelementStart(0, "div", 211)(1, "h5");
654
- i0.ɵɵelement(2, "i", 216);
679
+ i0.ɵɵelementStart(0, "div", 217)(1, "h5");
680
+ i0.ɵɵelement(2, "i", 222);
655
681
  i0.ɵɵtext(3, " Result");
656
682
  i0.ɵɵelementEnd();
657
- i0.ɵɵelement(4, "mj-code-editor", 217);
683
+ i0.ɵɵelement(4, "mj-code-editor", 223);
658
684
  i0.ɵɵelementEnd();
659
685
  } if (rf & 2) {
660
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
686
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
661
687
  const ctx_r1 = i0.ɵɵnextContext(6);
662
688
  i0.ɵɵadvance(4);
663
- i0.ɵɵproperty("value", ctx_r1.getExecutionResultPreview(execution_r17, false))("readonly", true)("lineWrapping", true);
689
+ i0.ɵɵproperty("value", ctx_r1.getExecutionResultPreview(execution_r18, false))("readonly", true)("lineWrapping", true);
664
690
  } }
665
691
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_18_Template(rf, ctx) { if (rf & 1) {
666
- i0.ɵɵelementStart(0, "div", 212)(1, "h5");
667
- i0.ɵɵelement(2, "i", 218);
692
+ i0.ɵɵelementStart(0, "div", 218)(1, "h5");
693
+ i0.ɵɵelement(2, "i", 224);
668
694
  i0.ɵɵtext(3, " Error");
669
695
  i0.ɵɵelementEnd();
670
- i0.ɵɵelementStart(4, "div", 219);
696
+ i0.ɵɵelementStart(4, "div", 225);
671
697
  i0.ɵɵtext(5);
672
698
  i0.ɵɵelementEnd()();
673
699
  } if (rf & 2) {
674
- const execution_r17 = i0.ɵɵnextContext(2).$implicit;
700
+ const execution_r18 = i0.ɵɵnextContext(2).$implicit;
675
701
  i0.ɵɵadvance(5);
676
- i0.ɵɵtextInterpolate(execution_r17.ErrorMessage);
702
+ i0.ɵɵtextInterpolate(execution_r18.ErrorMessage);
677
703
  } }
678
704
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Template(rf, ctx) { if (rf & 1) {
679
- i0.ɵɵelementStart(0, "div", 200)(1, "div", 205)(2, "div", 206)(3, "div", 207);
680
- i0.ɵɵelement(4, "i", 202);
681
- i0.ɵɵelementStart(5, "div", 208)(6, "span", 209);
705
+ i0.ɵɵelementStart(0, "div", 206)(1, "div", 211)(2, "div", 212)(3, "div", 213);
706
+ i0.ɵɵelement(4, "i", 208);
707
+ i0.ɵɵelementStart(5, "div", 214)(6, "span", 215);
682
708
  i0.ɵɵtext(7, "Started");
683
709
  i0.ɵɵelementEnd();
684
- i0.ɵɵelementStart(8, "span", 210);
710
+ i0.ɵɵelementStart(8, "span", 216);
685
711
  i0.ɵɵtext(9);
686
712
  i0.ɵɵpipe(10, "date");
687
713
  i0.ɵɵelementEnd()()();
688
- i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_11_Template, 8, 4, "div", 207);
689
- i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_12_Template, 7, 1, "div", 207);
690
- i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_13_Template, 7, 1, "div", 207);
691
- i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_14_Template, 7, 1, "div", 207);
692
- i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_15_Template, 7, 1, "div", 207);
693
- i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_16_Template, 7, 1, "div", 207);
714
+ i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_11_Template, 8, 4, "div", 213);
715
+ i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_12_Template, 7, 1, "div", 213);
716
+ i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_13_Template, 7, 1, "div", 213);
717
+ i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_14_Template, 7, 1, "div", 213);
718
+ i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_15_Template, 7, 1, "div", 213);
719
+ i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_16_Template, 7, 1, "div", 213);
694
720
  i0.ɵɵelementEnd()();
695
- i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_17_Template, 5, 3, "div", 211);
696
- i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_18_Template, 6, 1, "div", 212);
721
+ i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_17_Template, 5, 3, "div", 217);
722
+ i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Conditional_18_Template, 6, 1, "div", 218);
697
723
  i0.ɵɵelementEnd();
698
724
  } if (rf & 2) {
699
- const execution_r17 = i0.ɵɵnextContext().$implicit;
725
+ const execution_r18 = i0.ɵɵnextContext().$implicit;
700
726
  const ctx_r1 = i0.ɵɵnextContext(6);
701
727
  i0.ɵɵadvance(9);
702
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(10, 9, execution_r17.StartedAt, "medium"));
728
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(10, 9, execution_r18.StartedAt, "medium"));
703
729
  i0.ɵɵadvance(2);
704
- i0.ɵɵconditional(execution_r17.CompletedAt ? 11 : -1);
730
+ i0.ɵɵconditional(execution_r18.CompletedAt ? 11 : -1);
705
731
  i0.ɵɵadvance();
706
- i0.ɵɵconditional(execution_r17.TotalTokensUsed ? 12 : -1);
732
+ i0.ɵɵconditional(execution_r18.TotalTokensUsed ? 12 : -1);
707
733
  i0.ɵɵadvance();
708
- i0.ɵɵconditional(execution_r17.TotalTokensUsedRollup && execution_r17.TotalTokensUsedRollup !== execution_r17.TotalTokensUsed ? 13 : -1);
734
+ i0.ɵɵconditional(execution_r18.TotalTokensUsedRollup && execution_r18.TotalTokensUsedRollup !== execution_r18.TotalTokensUsed ? 13 : -1);
709
735
  i0.ɵɵadvance();
710
- i0.ɵɵconditional(execution_r17.TotalCost ? 14 : -1);
736
+ i0.ɵɵconditional(execution_r18.TotalCost ? 14 : -1);
711
737
  i0.ɵɵadvance();
712
- i0.ɵɵconditional(execution_r17.TotalCostRollup && execution_r17.TotalCostRollup !== execution_r17.TotalCost ? 15 : -1);
738
+ i0.ɵɵconditional(execution_r18.TotalCostRollup && execution_r18.TotalCostRollup !== execution_r18.TotalCost ? 15 : -1);
713
739
  i0.ɵɵadvance();
714
- i0.ɵɵconditional(execution_r17.ConversationID ? 16 : -1);
740
+ i0.ɵɵconditional(execution_r18.ConversationID ? 16 : -1);
715
741
  i0.ɵɵadvance();
716
- i0.ɵɵconditional(ctx_r1.HasExecutionResult(execution_r17) ? 17 : -1);
742
+ i0.ɵɵconditional(ctx_r1.HasExecutionResult(execution_r18) ? 17 : -1);
717
743
  i0.ɵɵadvance();
718
- i0.ɵɵconditional(execution_r17.ErrorMessage ? 18 : -1);
744
+ i0.ɵɵconditional(execution_r18.ErrorMessage ? 18 : -1);
719
745
  } }
720
746
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template(rf, ctx) { if (rf & 1) {
721
- const _r16 = i0.ɵɵgetCurrentView();
722
- i0.ɵɵelementStart(0, "div", 196)(1, "div", 197);
723
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template_div_click_1_listener() { const execution_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.toggleExecutionExpanded(execution_r17.ID)); });
724
- i0.ɵɵelementStart(2, "div", 167)(3, "div", 168)(4, "div", 169);
747
+ const _r17 = i0.ɵɵgetCurrentView();
748
+ i0.ɵɵelementStart(0, "div", 202)(1, "div", 203);
749
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template_div_click_1_listener() { const execution_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.toggleExecutionExpanded(execution_r18.ID)); });
750
+ i0.ɵɵelementStart(2, "div", 173)(3, "div", 174)(4, "div", 175);
725
751
  i0.ɵɵelement(5, "i");
726
752
  i0.ɵɵelementEnd();
727
- i0.ɵɵelementStart(6, "div", 170)(7, "div", 171);
728
- i0.ɵɵelement(8, "i", 198);
753
+ i0.ɵɵelementStart(6, "div", 176)(7, "div", 177);
754
+ i0.ɵɵelement(8, "i", 204);
729
755
  i0.ɵɵtext(9);
730
756
  i0.ɵɵelementEnd();
731
- i0.ɵɵelementStart(10, "div", 174);
757
+ i0.ɵɵelementStart(10, "div", 180);
732
758
  i0.ɵɵtext(11);
733
759
  i0.ɵɵpipe(12, "date");
734
760
  i0.ɵɵelementEnd()()();
735
- i0.ɵɵelementStart(13, "div", 175);
736
- i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_14_Template, 6, 1, "div", 176);
737
- i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_15_Template, 6, 1, "div", 176)(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_16_Template, 4, 0, "div", 176);
738
- i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_17_Template, 6, 1, "div", 176);
739
- i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_18_Template, 6, 1, "div", 176);
761
+ i0.ɵɵelementStart(13, "div", 181);
762
+ i0.ɵɵconditionalCreate(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_14_Template, 6, 1, "div", 182);
763
+ i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_15_Template, 6, 1, "div", 182)(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_16_Template, 4, 0, "div", 182);
764
+ i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_17_Template, 6, 1, "div", 182);
765
+ i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_18_Template, 6, 1, "div", 182);
740
766
  i0.ɵɵelementEnd()();
741
- i0.ɵɵelementStart(19, "div", 183)(20, "button", 199);
742
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template_button_click_20_listener($event) { const execution_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); ctx_r1.openExecutionRecord(execution_r17.ID); return i0.ɵɵresetView($event.stopPropagation()); });
743
- i0.ɵɵelement(21, "i", 185);
767
+ i0.ɵɵelementStart(19, "div", 189)(20, "button", 205);
768
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template_button_click_20_listener($event) { const execution_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); ctx_r1.openExecutionRecord(execution_r18.ID); return i0.ɵɵresetView($event.stopPropagation()); });
769
+ i0.ɵɵelement(21, "i", 191);
744
770
  i0.ɵɵelementEnd()()();
745
- i0.ɵɵconditionalCreate(22, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Template, 19, 12, "div", 200);
771
+ i0.ɵɵconditionalCreate(22, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Conditional_22_Template, 19, 12, "div", 206);
746
772
  i0.ɵɵelementEnd();
747
773
  } if (rf & 2) {
748
- const execution_r17 = ctx.$implicit;
774
+ const execution_r18 = ctx.$implicit;
749
775
  const ctx_r1 = i0.ɵɵnextContext(6);
750
- i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r17.ID]);
776
+ i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r18.ID]);
751
777
  i0.ɵɵadvance(4);
752
- i0.ɵɵstyleProp("background-color", ctx_r1.getExecutionStatusColor(execution_r17.Status));
778
+ i0.ɵɵstyleProp("background-color", ctx_r1.getExecutionStatusColor(execution_r18.Status));
753
779
  i0.ɵɵadvance();
754
- i0.ɵɵclassMap(ctx_r1.getExecutionStatusIcon(execution_r17.Status));
780
+ i0.ɵɵclassMap(ctx_r1.getExecutionStatusIcon(execution_r18.Status));
755
781
  i0.ɵɵadvance(3);
756
- i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r17.ID]);
782
+ i0.ɵɵclassProp("expanded", ctx_r1.expandedExecutions[execution_r18.ID]);
757
783
  i0.ɵɵadvance();
758
- i0.ɵɵtextInterpolate1(" Execution #", execution_r17.ID.substring(0, 8), " ");
784
+ i0.ɵɵtextInterpolate1(" Execution #", execution_r18.ID.substring(0, 8), " ");
759
785
  i0.ɵɵadvance(2);
760
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(12, 15, execution_r17.__mj_CreatedAt, "MMM d, h:mm a"));
786
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(12, 15, execution_r18.__mj_CreatedAt, "MMM d, h:mm a"));
761
787
  i0.ɵɵadvance(3);
762
- i0.ɵɵconditional(execution_r17.Configuration ? 14 : -1);
788
+ i0.ɵɵconditional(execution_r18.Configuration ? 14 : -1);
763
789
  i0.ɵɵadvance();
764
- i0.ɵɵconditional(execution_r17.CompletedAt ? 15 : execution_r17.Status === "Running" ? 16 : -1);
790
+ i0.ɵɵconditional(execution_r18.CompletedAt ? 15 : execution_r18.Status === "Running" ? 16 : -1);
765
791
  i0.ɵɵadvance(2);
766
- i0.ɵɵconditional(execution_r17.TotalTokensUsedRollup || execution_r17.TotalTokensUsed ? 17 : -1);
792
+ i0.ɵɵconditional(execution_r18.TotalTokensUsedRollup || execution_r18.TotalTokensUsed ? 17 : -1);
767
793
  i0.ɵɵadvance();
768
- i0.ɵɵconditional(execution_r17.TotalCostRollup || execution_r17.TotalCost ? 18 : -1);
794
+ i0.ɵɵconditional(execution_r18.TotalCostRollup || execution_r18.TotalCost ? 18 : -1);
769
795
  i0.ɵɵadvance(4);
770
- i0.ɵɵconditional(ctx_r1.expandedExecutions[execution_r17.ID] ? 22 : -1);
796
+ i0.ɵɵconditional(ctx_r1.expandedExecutions[execution_r18.ID] ? 22 : -1);
771
797
  } }
772
798
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
773
- i0.ɵɵelement(0, "i", 156);
799
+ i0.ɵɵelement(0, "i", 162);
774
800
  i0.ɵɵtext(1, " Loading... ");
775
801
  } }
776
802
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
777
803
  i0.ɵɵtext(0);
778
- i0.ɵɵelementStart(1, "span", 226);
804
+ i0.ɵɵelementStart(1, "span", 232);
779
805
  i0.ɵɵtext(2);
780
806
  i0.ɵɵelementEnd();
781
807
  } if (rf & 2) {
@@ -785,23 +811,23 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
785
811
  i0.ɵɵtextInterpolate1("(", ctx_r1.totalExecutionHistoryCount, " total)");
786
812
  } }
787
813
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
788
- const _r18 = i0.ɵɵgetCurrentView();
789
- i0.ɵɵelementStart(0, "div", 195)(1, "button", 220);
790
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.goToPreviousPage()); });
791
- i0.ɵɵelement(2, "i", 221);
814
+ const _r19 = i0.ɵɵgetCurrentView();
815
+ i0.ɵɵelementStart(0, "div", 201)(1, "button", 226);
816
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.goToPreviousPage()); });
817
+ i0.ɵɵelement(2, "i", 227);
792
818
  i0.ɵɵtext(3, " Previous ");
793
819
  i0.ɵɵelementEnd();
794
- i0.ɵɵelementStart(4, "div", 222);
820
+ i0.ɵɵelementStart(4, "div", 228);
795
821
  i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Conditional_5_Template, 2, 0)(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Conditional_6_Template, 3, 3);
796
822
  i0.ɵɵelementEnd();
797
- i0.ɵɵelementStart(7, "button", 220);
798
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.goToNextPage()); });
823
+ i0.ɵɵelementStart(7, "button", 226);
824
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.goToNextPage()); });
799
825
  i0.ɵɵtext(8, " Next ");
800
- i0.ɵɵelement(9, "i", 223);
826
+ i0.ɵɵelement(9, "i", 229);
801
827
  i0.ɵɵelementEnd();
802
- i0.ɵɵelementStart(10, "button", 224);
803
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Runs", "")); });
804
- i0.ɵɵelement(11, "i", 225);
828
+ i0.ɵɵelementStart(10, "button", 230);
829
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Runs", "")); });
830
+ i0.ɵɵelement(11, "i", 231);
805
831
  i0.ɵɵtext(12, " View All in Grid ");
806
832
  i0.ɵɵelementEnd()();
807
833
  } if (rf & 2) {
@@ -814,17 +840,17 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
814
840
  i0.ɵɵproperty("disabled", !ctx_r1.hasNextPage || ctx_r1.isLoadingPage);
815
841
  } }
816
842
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
817
- const _r15 = i0.ɵɵgetCurrentView();
818
- i0.ɵɵelementStart(0, "div", 189)(1, "div", 190);
819
- i0.ɵɵelement(2, "i", 191);
820
- i0.ɵɵelementStart(3, "input", 192);
821
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(5); i0.ɵɵtwoWayBindingSet(ctx_r1.executionSearchText, $event) || (ctx_r1.executionSearchText = $event); return i0.ɵɵresetView($event); });
822
- i0.ɵɵlistener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onExecutionSearchChange()); });
843
+ const _r16 = i0.ɵɵgetCurrentView();
844
+ i0.ɵɵelementStart(0, "div", 195)(1, "div", 196);
845
+ i0.ɵɵelement(2, "i", 197);
846
+ i0.ɵɵelementStart(3, "input", 198);
847
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(5); i0.ɵɵtwoWayBindingSet(ctx_r1.executionSearchText, $event) || (ctx_r1.executionSearchText = $event); return i0.ɵɵresetView($event); });
848
+ i0.ɵɵlistener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.onExecutionSearchChange()); });
823
849
  i0.ɵɵelementEnd()()();
824
- i0.ɵɵelementStart(4, "div", 163);
825
- i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_5_Template, 1, 1, "mj-empty-state", 193);
826
- i0.ɵɵrepeaterCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template, 23, 18, "div", 194, _forTrack1);
827
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template, 13, 3, "div", 195);
850
+ i0.ɵɵelementStart(4, "div", 169);
851
+ i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_5_Template, 1, 1, "mj-empty-state", 199);
852
+ i0.ɵɵrepeaterCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_For_7_Template, 23, 18, "div", 200, _forTrack1);
853
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Conditional_8_Template, 13, 3, "div", 201);
828
854
  i0.ɵɵelementEnd();
829
855
  } if (rf & 2) {
830
856
  const ctx_r1 = i0.ɵɵnextContext(5);
@@ -839,16 +865,16 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
839
865
  i0.ɵɵconditional(ctx_r1.totalPages > 1 ? 8 : -1);
840
866
  } }
841
867
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
842
- i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_0_Template, 1, 0, "mj-loading", 187)(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_1_Template, 1, 0, "mj-empty-state", 188)(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template, 9, 5);
868
+ i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_0_Template, 1, 0, "mj-loading", 193)(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_1_Template, 1, 0, "mj-empty-state", 194)(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Conditional_2_Template, 9, 5);
843
869
  } if (rf & 2) {
844
870
  const ctx_r1 = i0.ɵɵnextContext(4);
845
871
  i0.ɵɵconditional(ctx_r1.loadingStates.executionHistory ? 0 : ctx_r1.executionHistoryCount === 0 ? 1 : 2);
846
872
  } }
847
873
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
848
- i0.ɵɵelementStart(0, "mj-accordion-panel", 49);
849
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Template, 4, 1, "ng-template", 57);
850
- i0.ɵɵelementStart(2, "div", 153);
851
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template, 9, 6, "div", 154);
874
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
875
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_ng_template_1_Template, 4, 1, "ng-template", 62);
876
+ i0.ɵɵelementStart(2, "div", 159);
877
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_3_Template, 9, 6, "div", 160);
852
878
  i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_4_Template, 3, 1)(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Conditional_5_Template, 3, 1);
853
879
  i0.ɵɵelementEnd()();
854
880
  } if (rf & 2) {
@@ -861,7 +887,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
861
887
  } }
862
888
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
863
889
  i0.ɵɵelementStart(0, "span");
864
- i0.ɵɵelement(1, "i", 156);
890
+ i0.ɵɵelement(1, "i", 162);
865
891
  i0.ɵɵelementEnd();
866
892
  } }
867
893
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -874,7 +900,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
874
900
  i0.ɵɵtextInterpolate1(" (", ctx_r1.actionCount, ")");
875
901
  } }
876
902
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
877
- i0.ɵɵelement(0, "i", 126);
903
+ i0.ɵɵelement(0, "i", 131);
878
904
  i0.ɵɵtext(1, " Actions ");
879
905
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Conditional_2_Template, 2, 0, "span")(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Conditional_3_Template, 2, 1, "span");
880
906
  } if (rf & 2) {
@@ -883,99 +909,99 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
883
909
  i0.ɵɵconditional(ctx_r1.loadingStates.actions ? 2 : ctx_r1.actionCount > 0 ? 3 : -1);
884
910
  } }
885
911
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
886
- i0.ɵɵelementStart(0, "div", 227);
887
- i0.ɵɵelement(1, "i", 156);
912
+ i0.ɵɵelementStart(0, "div", 233);
913
+ i0.ɵɵelement(1, "i", 162);
888
914
  i0.ɵɵelementStart(2, "p");
889
915
  i0.ɵɵtext(3, "Loading actions...");
890
916
  i0.ɵɵelementEnd()();
891
917
  } }
892
918
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
893
- const _r19 = i0.ɵɵgetCurrentView();
894
- i0.ɵɵelementStart(0, "button", 232);
895
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
896
- i0.ɵɵelement(1, "i", 233);
919
+ const _r20 = i0.ɵɵgetCurrentView();
920
+ i0.ɵɵelementStart(0, "button", 238);
921
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
922
+ i0.ɵɵelement(1, "i", 239);
897
923
  i0.ɵɵtext(2, " Add Action ");
898
924
  i0.ɵɵelementEnd();
899
925
  } }
900
926
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
901
- const _r20 = i0.ɵɵgetCurrentView();
902
- i0.ɵɵelementStart(0, "mj-empty-state", 234);
903
- i0.ɵɵlistener("Action", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_3_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
927
+ const _r21 = i0.ɵɵgetCurrentView();
928
+ i0.ɵɵelementStart(0, "mj-empty-state", 240);
929
+ i0.ɵɵlistener("Action", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_3_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureActions()); });
904
930
  i0.ɵɵelementEnd();
905
931
  } if (rf & 2) {
906
932
  const ctx_r1 = i0.ɵɵnextContext(5);
907
933
  i0.ɵɵproperty("ActionText", ctx_r1.EditMode && ctx_r1.UserCanCreateActions ? "Configure First Action" : "");
908
934
  } }
909
935
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
910
- i0.ɵɵelementStart(0, "div", 241);
936
+ i0.ɵɵelementStart(0, "div", 247);
911
937
  i0.ɵɵtext(1);
912
938
  i0.ɵɵelementEnd();
913
939
  } if (rf & 2) {
914
- const action_r22 = i0.ɵɵnextContext().$implicit;
940
+ const action_r23 = i0.ɵɵnextContext().$implicit;
915
941
  i0.ɵɵadvance();
916
- i0.ɵɵtextInterpolate(action_r22.Description);
942
+ i0.ɵɵtextInterpolate(action_r23.Description);
917
943
  } }
918
944
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
919
- i0.ɵɵelementStart(0, "span", 243);
945
+ i0.ɵɵelementStart(0, "span", 249);
920
946
  i0.ɵɵtext(1);
921
947
  i0.ɵɵelementEnd();
922
948
  } if (rf & 2) {
923
- const action_r22 = i0.ɵɵnextContext().$implicit;
949
+ const action_r23 = i0.ɵɵnextContext().$implicit;
924
950
  i0.ɵɵadvance();
925
- i0.ɵɵtextInterpolate(action_r22.Type);
951
+ i0.ɵɵtextInterpolate(action_r23.Type);
926
952
  } }
927
953
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
928
- const _r23 = i0.ɵɵgetCurrentView();
929
- i0.ɵɵelementStart(0, "button", 247);
930
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r23); const action_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.removeAction(action_r22, $event)); });
931
- i0.ɵɵelement(1, "i", 248);
954
+ const _r24 = i0.ɵɵgetCurrentView();
955
+ i0.ɵɵelementStart(0, "button", 253);
956
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_13_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r24); const action_r23 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.removeAction(action_r23, $event)); });
957
+ i0.ɵɵelement(1, "i", 254);
932
958
  i0.ɵɵelementEnd();
933
959
  } }
934
960
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
935
- const _r21 = i0.ɵɵgetCurrentView();
936
- i0.ɵɵelementStart(0, "div", 237);
937
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Template_div_click_0_listener() { const action_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: Actions", action_r22.ID)); });
938
- i0.ɵɵelementStart(1, "div", 238);
961
+ const _r22 = i0.ɵɵgetCurrentView();
962
+ i0.ɵɵelementStart(0, "div", 243);
963
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Template_div_click_0_listener() { const action_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: Actions", action_r23.ID)); });
964
+ i0.ɵɵelementStart(1, "div", 244);
939
965
  i0.ɵɵelement(2, "i");
940
966
  i0.ɵɵelementEnd();
941
- i0.ɵɵelementStart(3, "div", 239)(4, "div", 240);
967
+ i0.ɵɵelementStart(3, "div", 245)(4, "div", 246);
942
968
  i0.ɵɵtext(5);
943
969
  i0.ɵɵelementEnd();
944
- i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_6_Template, 2, 1, "div", 241);
945
- i0.ɵɵelementStart(7, "div", 242);
946
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_8_Template, 2, 1, "span", 243);
947
- i0.ɵɵelementStart(9, "span", 244);
948
- i0.ɵɵelement(10, "i", 35);
970
+ i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_6_Template, 2, 1, "div", 247);
971
+ i0.ɵɵelementStart(7, "div", 248);
972
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_8_Template, 2, 1, "span", 249);
973
+ i0.ɵɵelementStart(9, "span", 250);
974
+ i0.ɵɵelement(10, "i", 37);
949
975
  i0.ɵɵtext(11);
950
976
  i0.ɵɵelementEnd()()();
951
- i0.ɵɵelementStart(12, "div", 245);
952
- i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_13_Template, 2, 0, "button", 246);
953
- i0.ɵɵelement(14, "i", 225);
977
+ i0.ɵɵelementStart(12, "div", 251);
978
+ i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Conditional_13_Template, 2, 0, "button", 252);
979
+ i0.ɵɵelement(14, "i", 231);
954
980
  i0.ɵɵelementEnd()();
955
981
  } if (rf & 2) {
956
- const action_r22 = ctx.$implicit;
982
+ const action_r23 = ctx.$implicit;
957
983
  const ctx_r1 = i0.ɵɵnextContext(6);
958
984
  i0.ɵɵadvance(2);
959
- i0.ɵɵclassMap(ctx_r1.getActionIcon(action_r22));
985
+ i0.ɵɵclassMap(ctx_r1.getActionIcon(action_r23));
960
986
  i0.ɵɵadvance(3);
961
- i0.ɵɵtextInterpolate(action_r22.Name || "Untitled Action");
987
+ i0.ɵɵtextInterpolate(action_r23.Name || "Untitled Action");
962
988
  i0.ɵɵadvance();
963
- i0.ɵɵconditional(action_r22.Description ? 6 : -1);
989
+ i0.ɵɵconditional(action_r23.Description ? 6 : -1);
964
990
  i0.ɵɵadvance(2);
965
- i0.ɵɵconditional(action_r22.Type ? 8 : -1);
991
+ i0.ɵɵconditional(action_r23.Type ? 8 : -1);
966
992
  i0.ɵɵadvance();
967
- i0.ɵɵclassProp("active", action_r22.Status === "Active")("inactive", action_r22.Status !== "Active");
993
+ i0.ɵɵclassProp("active", action_r23.Status === "Active")("inactive", action_r23.Status !== "Active");
968
994
  i0.ɵɵadvance();
969
- i0.ɵɵclassProp("fa-check-circle", action_r22.Status === "Active")("fa-times-circle", action_r22.Status !== "Active");
995
+ i0.ɵɵclassProp("fa-check-circle", action_r23.Status === "Active")("fa-times-circle", action_r23.Status !== "Active");
970
996
  i0.ɵɵadvance();
971
- i0.ɵɵtextInterpolate1(" ", action_r22.Status, " ");
997
+ i0.ɵɵtextInterpolate1(" ", action_r23.Status, " ");
972
998
  i0.ɵɵadvance(2);
973
999
  i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanDeleteActions ? 13 : -1);
974
1000
  } }
975
1001
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
976
- const _r24 = i0.ɵɵgetCurrentView();
977
- i0.ɵɵelementStart(0, "div", 249);
978
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Actions", "")); });
1002
+ const _r25 = i0.ɵɵgetCurrentView();
1003
+ i0.ɵɵelementStart(0, "div", 255);
1004
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Actions", "")); });
979
1005
  i0.ɵɵelementStart(1, "span");
980
1006
  i0.ɵɵtext(2);
981
1007
  i0.ɵɵelementEnd()();
@@ -985,9 +1011,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
985
1011
  i0.ɵɵtextInterpolate1("View all ", ctx_r1.actionCount, " actions...");
986
1012
  } }
987
1013
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
988
- i0.ɵɵelementStart(0, "div", 231);
989
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Template, 15, 15, "div", 235, _forTrack1);
990
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Conditional_3_Template, 3, 1, "div", 236);
1014
+ i0.ɵɵelementStart(0, "div", 237);
1015
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_For_2_Template, 15, 15, "div", 241, _forTrack1);
1016
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Conditional_3_Template, 3, 1, "div", 242);
991
1017
  i0.ɵɵelementEnd();
992
1018
  } if (rf & 2) {
993
1019
  const ctx_r1 = i0.ɵɵnextContext(5);
@@ -997,10 +1023,10 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
997
1023
  i0.ɵɵconditional(ctx_r1.actionCount > ctx_r1.agentActions.length ? 3 : -1);
998
1024
  } }
999
1025
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1000
- i0.ɵɵelementStart(0, "div", 59)(1, "div", 228);
1001
- i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_2_Template, 3, 0, "button", 229);
1026
+ i0.ɵɵelementStart(0, "div", 64)(1, "div", 234);
1027
+ i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_2_Template, 3, 0, "button", 235);
1002
1028
  i0.ɵɵelementEnd()();
1003
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_3_Template, 1, 1, "mj-empty-state", 230)(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Template, 4, 1, "div", 231);
1029
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_3_Template, 1, 1, "mj-empty-state", 236)(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Conditional_4_Template, 4, 1, "div", 237);
1004
1030
  } if (rf & 2) {
1005
1031
  const ctx_r1 = i0.ɵɵnextContext(4);
1006
1032
  i0.ɵɵadvance(2);
@@ -1009,10 +1035,10 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1009
1035
  i0.ɵɵconditional(ctx_r1.actionCount === 0 ? 3 : 4);
1010
1036
  } }
1011
1037
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1012
- i0.ɵɵelementStart(0, "mj-accordion-panel", 50);
1013
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Template, 4, 1, "ng-template", 57);
1014
- i0.ɵɵelementStart(2, "div", 58);
1015
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_3_Template, 4, 0, "div", 227)(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Template, 5, 2);
1038
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 55);
1039
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_ng_template_1_Template, 4, 1, "ng-template", 62);
1040
+ i0.ɵɵelementStart(2, "div", 63);
1041
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_3_Template, 4, 0, "div", 233)(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Conditional_4_Template, 5, 2);
1016
1042
  i0.ɵɵelementEnd()();
1017
1043
  } if (rf & 2) {
1018
1044
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1022,7 +1048,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1022
1048
  } }
1023
1049
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1024
1050
  i0.ɵɵelementStart(0, "span");
1025
- i0.ɵɵelement(1, "i", 156);
1051
+ i0.ɵɵelement(1, "i", 162);
1026
1052
  i0.ɵɵelementEnd();
1027
1053
  } }
1028
1054
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -1035,7 +1061,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1035
1061
  i0.ɵɵtextInterpolate1(" (", ctx_r1.totalSubAgentCount, ")");
1036
1062
  } }
1037
1063
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1038
- i0.ɵɵelement(0, "i", 30);
1064
+ i0.ɵɵelement(0, "i", 32);
1039
1065
  i0.ɵɵtext(1, " Sub-Agents ");
1040
1066
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Conditional_2_Template, 2, 0, "span")(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Conditional_3_Template, 2, 1, "span");
1041
1067
  } if (rf & 2) {
@@ -1044,29 +1070,29 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1044
1070
  i0.ɵɵconditional(ctx_r1.loadingStates.subAgents ? 2 : ctx_r1.totalSubAgentCount > 0 ? 3 : -1);
1045
1071
  } }
1046
1072
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1047
- const _r26 = i0.ɵɵgetCurrentView();
1048
- i0.ɵɵelementStart(0, "button", 257);
1049
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.createChildSubAgent()); });
1050
- i0.ɵɵelement(1, "i", 254);
1073
+ const _r27 = i0.ɵɵgetCurrentView();
1074
+ i0.ɵɵelementStart(0, "button", 263);
1075
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.createChildSubAgent()); });
1076
+ i0.ɵɵelement(1, "i", 260);
1051
1077
  i0.ɵɵtext(2, " Create Child ");
1052
1078
  i0.ɵɵelementEnd();
1053
- i0.ɵɵelementStart(3, "button", 258);
1054
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.linkRelatedSubAgent()); });
1055
- i0.ɵɵelement(4, "i", 255);
1079
+ i0.ɵɵelementStart(3, "button", 264);
1080
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_16_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.linkRelatedSubAgent()); });
1081
+ i0.ɵɵelement(4, "i", 261);
1056
1082
  i0.ɵɵtext(5, " Link Related ");
1057
1083
  i0.ɵɵelementEnd();
1058
1084
  } }
1059
1085
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
1060
- i0.ɵɵelementStart(0, "mj-empty-state", 256)(1, "div", 259)(2, "div", 260);
1061
- i0.ɵɵelement(3, "i", 261);
1086
+ i0.ɵɵelementStart(0, "mj-empty-state", 262)(1, "div", 265)(2, "div", 266);
1087
+ i0.ɵɵelement(3, "i", 267);
1062
1088
  i0.ɵɵelementStart(4, "strong");
1063
1089
  i0.ɵɵtext(5, "Child Sub-Agents");
1064
1090
  i0.ɵɵelementEnd();
1065
1091
  i0.ɵɵelementStart(6, "p");
1066
1092
  i0.ɵɵtext(7, "Share payload structure, dedicated to parent");
1067
1093
  i0.ɵɵelementEnd()();
1068
- i0.ɵɵelementStart(8, "div", 260);
1069
- i0.ɵɵelement(9, "i", 262);
1094
+ i0.ɵɵelementStart(8, "div", 266);
1095
+ i0.ɵɵelement(9, "i", 268);
1070
1096
  i0.ɵɵelementStart(10, "strong");
1071
1097
  i0.ɵɵtext(11, "Related Sub-Agents");
1072
1098
  i0.ɵɵelementEnd();
@@ -1075,140 +1101,140 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1075
1101
  i0.ɵɵelementEnd()()()();
1076
1102
  } }
1077
1103
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1078
- i0.ɵɵelement(0, "img", 266);
1104
+ i0.ɵɵelement(0, "img", 272);
1079
1105
  } if (rf & 2) {
1080
- const item_r28 = i0.ɵɵnextContext().$implicit;
1081
- i0.ɵɵproperty("src", item_r28.agent.LogoURL, i0.ɵɵsanitizeUrl)("alt", item_r28.agent.Name + " logo");
1106
+ const item_r29 = i0.ɵɵnextContext().$implicit;
1107
+ i0.ɵɵproperty("src", item_r29.agent.LogoURL, i0.ɵɵsanitizeUrl)("alt", item_r29.agent.Name + " logo");
1082
1108
  } }
1083
1109
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1084
1110
  i0.ɵɵelement(0, "i");
1085
1111
  } if (rf & 2) {
1086
- const item_r28 = i0.ɵɵnextContext().$implicit;
1112
+ const item_r29 = i0.ɵɵnextContext().$implicit;
1087
1113
  const ctx_r1 = i0.ɵɵnextContext(5);
1088
- i0.ɵɵclassMap(ctx_r1.getSubAgentIcon(item_r28.agent));
1114
+ i0.ɵɵclassMap(ctx_r1.getSubAgentIcon(item_r29.agent));
1089
1115
  } }
1090
1116
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1091
- i0.ɵɵelementStart(0, "div", 241);
1117
+ i0.ɵɵelementStart(0, "div", 247);
1092
1118
  i0.ɵɵtext(1);
1093
1119
  i0.ɵɵelementEnd();
1094
1120
  } if (rf & 2) {
1095
- const item_r28 = i0.ɵɵnextContext().$implicit;
1121
+ const item_r29 = i0.ɵɵnextContext().$implicit;
1096
1122
  i0.ɵɵadvance();
1097
- i0.ɵɵtextInterpolate(item_r28.agent.Description);
1123
+ i0.ɵɵtextInterpolate(item_r29.agent.Description);
1098
1124
  } }
1099
1125
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
1100
- i0.ɵɵelementStart(0, "span", 244);
1126
+ i0.ɵɵelementStart(0, "span", 250);
1101
1127
  i0.ɵɵtext(1);
1102
1128
  i0.ɵɵelementEnd();
1103
1129
  } if (rf & 2) {
1104
- const item_r28 = i0.ɵɵnextContext().$implicit;
1130
+ const item_r29 = i0.ɵɵnextContext().$implicit;
1105
1131
  const ctx_r1 = i0.ɵɵnextContext(5);
1106
1132
  i0.ɵɵstyleProp("background-color", ctx_r1.getStatusBadgeColor());
1107
1133
  i0.ɵɵadvance();
1108
- i0.ɵɵtextInterpolate1(" ", item_r28.agent.Status, " ");
1134
+ i0.ɵɵtextInterpolate1(" ", item_r29.agent.Status, " ");
1109
1135
  } }
1110
1136
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1111
- i0.ɵɵelementStart(0, "span", 243);
1137
+ i0.ɵɵelementStart(0, "span", 249);
1112
1138
  i0.ɵɵtext(1);
1113
1139
  i0.ɵɵelementEnd();
1114
1140
  } if (rf & 2) {
1115
- const item_r28 = i0.ɵɵnextContext().$implicit;
1141
+ const item_r29 = i0.ɵɵnextContext().$implicit;
1116
1142
  i0.ɵɵadvance();
1117
- i0.ɵɵtextInterpolate(item_r28.agent.Type);
1143
+ i0.ɵɵtextInterpolate(item_r29.agent.Type);
1118
1144
  } }
1119
1145
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1120
- const _r29 = i0.ɵɵgetCurrentView();
1121
- i0.ɵɵelementStart(0, "button", 273);
1122
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_0_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r29); const item_r28 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureOutputMapping(item_r28, $event)); });
1123
- i0.ɵɵelement(1, "i", 274);
1146
+ const _r30 = i0.ɵɵgetCurrentView();
1147
+ i0.ɵɵelementStart(0, "button", 279);
1148
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_0_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r30); const item_r29 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.configureOutputMapping(item_r29, $event)); });
1149
+ i0.ɵɵelement(1, "i", 280);
1124
1150
  i0.ɵɵelementEnd();
1125
1151
  } }
1126
1152
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1127
- const _r30 = i0.ɵɵgetCurrentView();
1128
- i0.ɵɵelementStart(0, "button", 275);
1129
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r30); const item_r28 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openSubAgentAdvancedSettings(item_r28.agent, $event)); });
1130
- i0.ɵɵelement(1, "i", 201);
1153
+ const _r31 = i0.ɵɵgetCurrentView();
1154
+ i0.ɵɵelementStart(0, "button", 281);
1155
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r31); const item_r29 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openSubAgentAdvancedSettings(item_r29.agent, $event)); });
1156
+ i0.ɵɵelement(1, "i", 207);
1131
1157
  i0.ɵɵelementEnd();
1132
1158
  } }
1133
1159
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1134
- const _r31 = i0.ɵɵgetCurrentView();
1135
- i0.ɵɵelementStart(0, "button", 276);
1136
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r31); const item_r28 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(item_r28.type === "child" ? ctx_r1.removeChildSubAgent(item_r28, $event) : ctx_r1.unlinkRelatedSubAgent(item_r28, $event)); });
1160
+ const _r32 = i0.ɵɵgetCurrentView();
1161
+ i0.ɵɵelementStart(0, "button", 282);
1162
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r32); const item_r29 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(item_r29.type === "child" ? ctx_r1.removeChildSubAgent(item_r29, $event) : ctx_r1.unlinkRelatedSubAgent(item_r29, $event)); });
1137
1163
  i0.ɵɵelement(1, "i");
1138
1164
  i0.ɵɵelementEnd();
1139
1165
  } if (rf & 2) {
1140
- const item_r28 = i0.ɵɵnextContext(2).$implicit;
1141
- i0.ɵɵproperty("title", item_r28.type === "child" ? "Delete child sub-agent" : "Unlink related sub-agent");
1166
+ const item_r29 = i0.ɵɵnextContext(2).$implicit;
1167
+ i0.ɵɵproperty("title", item_r29.type === "child" ? "Delete child sub-agent" : "Unlink related sub-agent");
1142
1168
  i0.ɵɵadvance();
1143
- i0.ɵɵclassMap(item_r28.type === "child" ? "fa-solid fa-trash" : "fa-solid fa-unlink");
1169
+ i0.ɵɵclassMap(item_r29.type === "child" ? "fa-solid fa-trash" : "fa-solid fa-unlink");
1144
1170
  } }
1145
1171
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1146
- i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_0_Template, 2, 0, "button", 270);
1147
- i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_1_Template, 2, 0, "button", 271);
1148
- i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_2_Template, 2, 3, "button", 272);
1172
+ i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_0_Template, 2, 0, "button", 276);
1173
+ i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_1_Template, 2, 0, "button", 277);
1174
+ i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Conditional_2_Template, 2, 3, "button", 278);
1149
1175
  } if (rf & 2) {
1150
- const item_r28 = i0.ɵɵnextContext().$implicit;
1176
+ const item_r29 = i0.ɵɵnextContext().$implicit;
1151
1177
  const ctx_r1 = i0.ɵɵnextContext(5);
1152
- i0.ɵɵconditional(item_r28.type === "related" ? 0 : -1);
1178
+ i0.ɵɵconditional(item_r29.type === "related" ? 0 : -1);
1153
1179
  i0.ɵɵadvance();
1154
- i0.ɵɵconditional(item_r28.type === "child" && ctx_r1.UserCanCreateSubAgents ? 1 : -1);
1180
+ i0.ɵɵconditional(item_r29.type === "child" && ctx_r1.UserCanCreateSubAgents ? 1 : -1);
1155
1181
  i0.ɵɵadvance();
1156
1182
  i0.ɵɵconditional(ctx_r1.UserCanDeleteSubAgents ? 2 : -1);
1157
1183
  } }
1158
1184
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
1159
- const _r27 = i0.ɵɵgetCurrentView();
1160
- i0.ɵɵelementStart(0, "div", 264);
1161
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Template_div_click_0_listener() { const item_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", item_r28.agent.ID)); });
1162
- i0.ɵɵelementStart(1, "div", 265);
1185
+ const _r28 = i0.ɵɵgetCurrentView();
1186
+ i0.ɵɵelementStart(0, "div", 270);
1187
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Template_div_click_0_listener() { const item_r29 = i0.ɵɵrestoreView(_r28).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", item_r29.agent.ID)); });
1188
+ i0.ɵɵelementStart(1, "div", 271);
1163
1189
  i0.ɵɵelement(2, "i");
1164
1190
  i0.ɵɵtext(3);
1165
1191
  i0.ɵɵelementEnd();
1166
- i0.ɵɵelementStart(4, "div", 238);
1167
- i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_5_Template, 1, 2, "img", 266)(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_6_Template, 1, 2, "i", 15);
1192
+ i0.ɵɵelementStart(4, "div", 244);
1193
+ i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_5_Template, 1, 2, "img", 272)(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_6_Template, 1, 2, "i", 16);
1168
1194
  i0.ɵɵelementEnd();
1169
- i0.ɵɵelementStart(7, "div", 239)(8, "div", 240);
1195
+ i0.ɵɵelementStart(7, "div", 245)(8, "div", 246);
1170
1196
  i0.ɵɵtext(9);
1171
1197
  i0.ɵɵelementEnd();
1172
- i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_10_Template, 2, 1, "div", 241);
1173
- i0.ɵɵelementStart(11, "div", 242)(12, "span", 267);
1174
- i0.ɵɵelement(13, "i", 268);
1198
+ i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_10_Template, 2, 1, "div", 247);
1199
+ i0.ɵɵelementStart(11, "div", 248)(12, "span", 273);
1200
+ i0.ɵɵelement(13, "i", 274);
1175
1201
  i0.ɵɵtext(14);
1176
1202
  i0.ɵɵelementEnd();
1177
- i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_15_Template, 2, 3, "span", 269);
1178
- i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_16_Template, 2, 1, "span", 243);
1203
+ i0.ɵɵconditionalCreate(15, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_15_Template, 2, 3, "span", 275);
1204
+ i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_16_Template, 2, 1, "span", 249);
1179
1205
  i0.ɵɵelementEnd()();
1180
- i0.ɵɵelementStart(17, "div", 245);
1206
+ i0.ɵɵelementStart(17, "div", 251);
1181
1207
  i0.ɵɵconditionalCreate(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Conditional_18_Template, 3, 3);
1182
- i0.ɵɵelement(19, "i", 225);
1208
+ i0.ɵɵelement(19, "i", 231);
1183
1209
  i0.ɵɵelementEnd()();
1184
1210
  } if (rf & 2) {
1185
- const item_r28 = ctx.$implicit;
1211
+ const item_r29 = ctx.$implicit;
1186
1212
  const ctx_r1 = i0.ɵɵnextContext(5);
1187
- i0.ɵɵclassProp("child-sub-agent", item_r28.type === "child")("related-sub-agent", item_r28.type === "related");
1213
+ i0.ɵɵclassProp("child-sub-agent", item_r29.type === "child")("related-sub-agent", item_r29.type === "related");
1188
1214
  i0.ɵɵadvance();
1189
- i0.ɵɵstyleProp("background-color", ctx_r1.getSubAgentBadgeColor(item_r28));
1215
+ i0.ɵɵstyleProp("background-color", ctx_r1.getSubAgentBadgeColor(item_r29));
1190
1216
  i0.ɵɵadvance();
1191
- i0.ɵɵclassMap(ctx_r1.getSubAgentBadgeIcon(item_r28));
1217
+ i0.ɵɵclassMap(ctx_r1.getSubAgentBadgeIcon(item_r29));
1192
1218
  i0.ɵɵadvance();
1193
- i0.ɵɵtextInterpolate1(" ", ctx_r1.getSubAgentBadgeText(item_r28), " ");
1219
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getSubAgentBadgeText(item_r29), " ");
1194
1220
  i0.ɵɵadvance(2);
1195
- i0.ɵɵconditional(ctx_r1.hasSubAgentLogoURL(item_r28.agent) ? 5 : 6);
1221
+ i0.ɵɵconditional(ctx_r1.hasSubAgentLogoURL(item_r29.agent) ? 5 : 6);
1196
1222
  i0.ɵɵadvance(4);
1197
- i0.ɵɵtextInterpolate(item_r28.agent.Name || "Untitled Sub-Agent");
1223
+ i0.ɵɵtextInterpolate(item_r29.agent.Name || "Untitled Sub-Agent");
1198
1224
  i0.ɵɵadvance();
1199
- i0.ɵɵconditional(item_r28.agent.Description ? 10 : -1);
1225
+ i0.ɵɵconditional(item_r29.agent.Description ? 10 : -1);
1200
1226
  i0.ɵɵadvance(4);
1201
- i0.ɵɵtextInterpolate1(" ", ctx_r1.getSubAgentPayloadInfo(item_r28), " ");
1227
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getSubAgentPayloadInfo(item_r29), " ");
1202
1228
  i0.ɵɵadvance();
1203
- i0.ɵɵconditional(item_r28.agent.Status ? 15 : -1);
1229
+ i0.ɵɵconditional(item_r29.agent.Status ? 15 : -1);
1204
1230
  i0.ɵɵadvance();
1205
- i0.ɵɵconditional(item_r28.agent.Type ? 16 : -1);
1231
+ i0.ɵɵconditional(item_r29.agent.Type ? 16 : -1);
1206
1232
  i0.ɵɵadvance(2);
1207
1233
  i0.ɵɵconditional(ctx_r1.EditMode ? 18 : -1);
1208
1234
  } }
1209
1235
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1210
- i0.ɵɵelementStart(0, "div", 231);
1211
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Template, 20, 16, "div", 263, _forTrack2);
1236
+ i0.ɵɵelementStart(0, "div", 237);
1237
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_For_2_Template, 20, 16, "div", 269, _forTrack2);
1212
1238
  i0.ɵɵelementEnd();
1213
1239
  } if (rf & 2) {
1214
1240
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1216,28 +1242,28 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1216
1242
  i0.ɵɵrepeater(ctx_r1.filteredSubAgents);
1217
1243
  } }
1218
1244
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1219
- const _r25 = i0.ɵɵgetCurrentView();
1220
- i0.ɵɵelementStart(0, "mj-accordion-panel", 51);
1221
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Template, 4, 1, "ng-template", 57);
1222
- i0.ɵɵelementStart(2, "div", 58)(3, "div", 250)(4, "div", 251)(5, "div", 252)(6, "button", 253);
1223
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setSubAgentFilter("all")); });
1224
- i0.ɵɵelement(7, "i", 131);
1245
+ const _r26 = i0.ɵɵgetCurrentView();
1246
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 56);
1247
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_ng_template_1_Template, 4, 1, "ng-template", 62);
1248
+ i0.ɵɵelementStart(2, "div", 63)(3, "div", 256)(4, "div", 257)(5, "div", 258)(6, "button", 259);
1249
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setSubAgentFilter("all")); });
1250
+ i0.ɵɵelement(7, "i", 136);
1225
1251
  i0.ɵɵtext(8);
1226
1252
  i0.ɵɵelementEnd();
1227
- i0.ɵɵelementStart(9, "button", 253);
1228
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setSubAgentFilter("child")); });
1229
- i0.ɵɵelement(10, "i", 254);
1253
+ i0.ɵɵelementStart(9, "button", 259);
1254
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setSubAgentFilter("child")); });
1255
+ i0.ɵɵelement(10, "i", 260);
1230
1256
  i0.ɵɵtext(11);
1231
1257
  i0.ɵɵelementEnd();
1232
- i0.ɵɵelementStart(12, "button", 253);
1233
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setSubAgentFilter("related")); });
1234
- i0.ɵɵelement(13, "i", 255);
1258
+ i0.ɵɵelementStart(12, "button", 259);
1259
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setSubAgentFilter("related")); });
1260
+ i0.ɵɵelement(13, "i", 261);
1235
1261
  i0.ɵɵtext(14);
1236
1262
  i0.ɵɵelementEnd()()();
1237
- i0.ɵɵelementStart(15, "div", 228);
1263
+ i0.ɵɵelementStart(15, "div", 234);
1238
1264
  i0.ɵɵconditionalCreate(16, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_16_Template, 6, 0);
1239
1265
  i0.ɵɵelementEnd()();
1240
- i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_17_Template, 14, 0, "mj-empty-state", 256)(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_Template, 3, 0, "div", 231);
1266
+ i0.ɵɵconditionalCreate(17, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_17_Template, 14, 0, "mj-empty-state", 262)(18, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Conditional_18_Template, 3, 0, "div", 237);
1241
1267
  i0.ɵɵelementEnd()();
1242
1268
  } if (rf & 2) {
1243
1269
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1261,7 +1287,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1261
1287
  } }
1262
1288
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1263
1289
  i0.ɵɵelementStart(0, "span");
1264
- i0.ɵɵelement(1, "i", 156);
1290
+ i0.ɵɵelement(1, "i", 162);
1265
1291
  i0.ɵɵelementEnd();
1266
1292
  } }
1267
1293
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -1274,7 +1300,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1274
1300
  i0.ɵɵtextInterpolate1(" (", ctx_r1.promptCount, ")");
1275
1301
  } }
1276
1302
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1277
- i0.ɵɵelement(0, "i", 215);
1303
+ i0.ɵɵelement(0, "i", 221);
1278
1304
  i0.ɵɵtext(1, " Prompts ");
1279
1305
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Conditional_2_Template, 2, 0, "span")(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Conditional_3_Template, 2, 1, "span");
1280
1306
  } if (rf & 2) {
@@ -1283,9 +1309,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1283
1309
  i0.ɵɵconditional(ctx_r1.loadingStates.prompts ? 2 : ctx_r1.promptCount > 0 ? 3 : -1);
1284
1310
  } }
1285
1311
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1286
- const _r32 = i0.ɵɵgetCurrentView();
1287
- i0.ɵɵelementStart(0, "mj-dropdown", 284);
1288
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_9_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.record.ModelSelectionMode, $event) || (ctx_r1.record.ModelSelectionMode = $event); return i0.ɵɵresetView($event); });
1312
+ const _r33 = i0.ɵɵgetCurrentView();
1313
+ i0.ɵɵelementStart(0, "mj-dropdown", 290);
1314
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_9_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.record.ModelSelectionMode, $event) || (ctx_r1.record.ModelSelectionMode = $event); return i0.ɵɵresetView($event); });
1289
1315
  i0.ɵɵelementEnd();
1290
1316
  } if (rf & 2) {
1291
1317
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1293,7 +1319,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1293
1319
  i0.ɵɵproperty("Data", ctx_r1.modelSelectionModes)("ValuePrimitive", true);
1294
1320
  } }
1295
1321
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1296
- i0.ɵɵelementStart(0, "span", 282);
1322
+ i0.ɵɵelementStart(0, "span", 288);
1297
1323
  i0.ɵɵtext(1);
1298
1324
  i0.ɵɵelementEnd();
1299
1325
  } if (rf & 2) {
@@ -1302,91 +1328,91 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1302
1328
  i0.ɵɵtextInterpolate(ctx_r1.record.ModelSelectionMode || "Agent Type");
1303
1329
  } }
1304
1330
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1305
- const _r33 = i0.ɵɵgetCurrentView();
1306
- i0.ɵɵelementStart(0, "button", 232);
1307
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
1308
- i0.ɵɵelement(1, "i", 233);
1331
+ const _r34 = i0.ɵɵgetCurrentView();
1332
+ i0.ɵɵelementStart(0, "button", 238);
1333
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
1334
+ i0.ɵɵelement(1, "i", 239);
1309
1335
  i0.ɵɵtext(2, " Add Prompt ");
1310
1336
  i0.ɵɵelementEnd();
1311
1337
  } }
1312
1338
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_13_Template(rf, ctx) { if (rf & 1) {
1313
- const _r34 = i0.ɵɵgetCurrentView();
1314
- i0.ɵɵelementStart(0, "mj-empty-state", 285);
1315
- i0.ɵɵlistener("Action", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_13_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
1339
+ const _r35 = i0.ɵɵgetCurrentView();
1340
+ i0.ɵɵelementStart(0, "mj-empty-state", 291);
1341
+ i0.ɵɵlistener("Action", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_13_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addPrompt()); });
1316
1342
  i0.ɵɵelementEnd();
1317
1343
  } if (rf & 2) {
1318
1344
  const ctx_r1 = i0.ɵɵnextContext(4);
1319
1345
  i0.ɵɵproperty("ActionText", ctx_r1.EditMode && ctx_r1.UserCanCreateNewPrompts ? "Create First Prompt" : "");
1320
1346
  } }
1321
1347
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1322
- i0.ɵɵelementStart(0, "div", 241);
1348
+ i0.ɵɵelementStart(0, "div", 247);
1323
1349
  i0.ɵɵtext(1);
1324
1350
  i0.ɵɵelementEnd();
1325
1351
  } if (rf & 2) {
1326
- const prompt_r36 = i0.ɵɵnextContext().$implicit;
1352
+ const prompt_r37 = i0.ɵɵnextContext().$implicit;
1327
1353
  i0.ɵɵadvance();
1328
- i0.ɵɵtextInterpolate2("", prompt_r36.TemplateText.substring(0, 120), "", prompt_r36.TemplateText.length > 120 ? "..." : "");
1354
+ i0.ɵɵtextInterpolate2("", prompt_r37.TemplateText.substring(0, 120), "", prompt_r37.TemplateText.length > 120 ? "..." : "");
1329
1355
  } }
1330
1356
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1331
- i0.ɵɵelementStart(0, "span", 243);
1357
+ i0.ɵɵelementStart(0, "span", 249);
1332
1358
  i0.ɵɵtext(1);
1333
1359
  i0.ɵɵelementEnd();
1334
1360
  } if (rf & 2) {
1335
- const prompt_r36 = i0.ɵɵnextContext().$implicit;
1361
+ const prompt_r37 = i0.ɵɵnextContext().$implicit;
1336
1362
  i0.ɵɵadvance();
1337
- i0.ɵɵtextInterpolate(prompt_r36.PromptRole);
1363
+ i0.ɵɵtextInterpolate(prompt_r37.PromptRole);
1338
1364
  } }
1339
1365
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1340
- const _r37 = i0.ɵɵgetCurrentView();
1341
- i0.ɵɵelementStart(0, "button", 275);
1342
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_10_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r37); const prompt_r36 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openPromptAdvancedSettings(prompt_r36, $event)); });
1343
- i0.ɵɵelement(1, "i", 201);
1366
+ const _r38 = i0.ɵɵgetCurrentView();
1367
+ i0.ɵɵelementStart(0, "button", 281);
1368
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_10_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r38); const prompt_r37 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openPromptAdvancedSettings(prompt_r37, $event)); });
1369
+ i0.ɵɵelement(1, "i", 207);
1344
1370
  i0.ɵɵelementEnd();
1345
1371
  } }
1346
1372
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1347
- const _r38 = i0.ɵɵgetCurrentView();
1348
- i0.ɵɵelementStart(0, "button", 290);
1349
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r38); const prompt_r36 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removePrompt(prompt_r36, $event)); });
1350
- i0.ɵɵelement(1, "i", 248);
1373
+ const _r39 = i0.ɵɵgetCurrentView();
1374
+ i0.ɵɵelementStart(0, "button", 296);
1375
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_11_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r39); const prompt_r37 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.removePrompt(prompt_r37, $event)); });
1376
+ i0.ɵɵelement(1, "i", 254);
1351
1377
  i0.ɵɵelementEnd();
1352
1378
  } }
1353
1379
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
1354
- const _r35 = i0.ɵɵgetCurrentView();
1355
- i0.ɵɵelementStart(0, "div", 287);
1356
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Template_div_click_0_listener() { const prompt_r36 = i0.ɵɵrestoreView(_r35).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", prompt_r36.ID)); });
1357
- i0.ɵɵelementStart(1, "div", 238);
1358
- i0.ɵɵelement(2, "i", 288);
1380
+ const _r36 = i0.ɵɵgetCurrentView();
1381
+ i0.ɵɵelementStart(0, "div", 293);
1382
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Template_div_click_0_listener() { const prompt_r37 = i0.ɵɵrestoreView(_r36).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", prompt_r37.ID)); });
1383
+ i0.ɵɵelementStart(1, "div", 244);
1384
+ i0.ɵɵelement(2, "i", 294);
1359
1385
  i0.ɵɵelementEnd();
1360
- i0.ɵɵelementStart(3, "div", 239)(4, "div", 240);
1386
+ i0.ɵɵelementStart(3, "div", 245)(4, "div", 246);
1361
1387
  i0.ɵɵtext(5);
1362
1388
  i0.ɵɵelementEnd();
1363
- i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_6_Template, 2, 2, "div", 241);
1364
- i0.ɵɵelementStart(7, "div", 242);
1365
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_8_Template, 2, 1, "span", 243);
1389
+ i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_6_Template, 2, 2, "div", 247);
1390
+ i0.ɵɵelementStart(7, "div", 248);
1391
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_8_Template, 2, 1, "span", 249);
1366
1392
  i0.ɵɵelementEnd()();
1367
- i0.ɵɵelementStart(9, "div", 245);
1368
- i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_10_Template, 2, 0, "button", 271);
1369
- i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_11_Template, 2, 0, "button", 289);
1370
- i0.ɵɵelement(12, "i", 225);
1393
+ i0.ɵɵelementStart(9, "div", 251);
1394
+ i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_10_Template, 2, 0, "button", 277);
1395
+ i0.ɵɵconditionalCreate(11, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Conditional_11_Template, 2, 0, "button", 295);
1396
+ i0.ɵɵelement(12, "i", 231);
1371
1397
  i0.ɵɵelementEnd()();
1372
1398
  } if (rf & 2) {
1373
- const prompt_r36 = ctx.$implicit;
1399
+ const prompt_r37 = ctx.$implicit;
1374
1400
  const ctx_r1 = i0.ɵɵnextContext(5);
1375
1401
  i0.ɵɵadvance(5);
1376
- i0.ɵɵtextInterpolate(prompt_r36.Name);
1402
+ i0.ɵɵtextInterpolate(prompt_r37.Name);
1377
1403
  i0.ɵɵadvance();
1378
- i0.ɵɵconditional(prompt_r36.TemplateText ? 6 : -1);
1404
+ i0.ɵɵconditional(prompt_r37.TemplateText ? 6 : -1);
1379
1405
  i0.ɵɵadvance(2);
1380
- i0.ɵɵconditional(prompt_r36.PromptRole ? 8 : -1);
1406
+ i0.ɵɵconditional(prompt_r37.PromptRole ? 8 : -1);
1381
1407
  i0.ɵɵadvance(2);
1382
1408
  i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanCreatePrompts ? 10 : -1);
1383
1409
  i0.ɵɵadvance();
1384
1410
  i0.ɵɵconditional(ctx_r1.EditMode && ctx_r1.UserCanDeletePrompts ? 11 : -1);
1385
1411
  } }
1386
1412
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1387
- const _r39 = i0.ɵɵgetCurrentView();
1388
- i0.ɵɵelementStart(0, "div", 249);
1389
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r39); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", "")); });
1413
+ const _r40 = i0.ɵɵgetCurrentView();
1414
+ i0.ɵɵelementStart(0, "div", 255);
1415
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", "")); });
1390
1416
  i0.ɵɵelementStart(1, "span");
1391
1417
  i0.ɵɵtext(2);
1392
1418
  i0.ɵɵelementEnd()();
@@ -1396,9 +1422,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1396
1422
  i0.ɵɵtextInterpolate1("View all ", ctx_r1.promptCount, " prompts...");
1397
1423
  } }
1398
1424
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Template(rf, ctx) { if (rf & 1) {
1399
- i0.ɵɵelementStart(0, "div", 231);
1400
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Template, 13, 5, "div", 286, _forTrack1);
1401
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Conditional_3_Template, 3, 1, "div", 236);
1425
+ i0.ɵɵelementStart(0, "div", 237);
1426
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_For_2_Template, 13, 5, "div", 292, _forTrack1);
1427
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Conditional_3_Template, 3, 1, "div", 242);
1402
1428
  i0.ɵɵelementEnd();
1403
1429
  } if (rf & 2) {
1404
1430
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1408,18 +1434,18 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1408
1434
  i0.ɵɵconditional(ctx_r1.promptCount > ctx_r1.agentPrompts.length ? 3 : -1);
1409
1435
  } }
1410
1436
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1411
- i0.ɵɵelementStart(0, "mj-accordion-panel", 52);
1412
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Template, 4, 1, "ng-template", 57);
1413
- i0.ɵɵelementStart(2, "div", 58)(3, "div", 59)(4, "div", 277)(5, "div", 278)(6, "label", 279);
1414
- i0.ɵɵelement(7, "i", 280);
1437
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 57);
1438
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_ng_template_1_Template, 4, 1, "ng-template", 62);
1439
+ i0.ɵɵelementStart(2, "div", 63)(3, "div", 64)(4, "div", 283)(5, "div", 284)(6, "label", 285);
1440
+ i0.ɵɵelement(7, "i", 286);
1415
1441
  i0.ɵɵtext(8, " Model Selection: ");
1416
1442
  i0.ɵɵelementEnd();
1417
- i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_9_Template, 1, 3, "mj-dropdown", 281)(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_10_Template, 2, 1, "span", 282);
1443
+ i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_9_Template, 1, 3, "mj-dropdown", 287)(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_10_Template, 2, 1, "span", 288);
1418
1444
  i0.ɵɵelementEnd()();
1419
- i0.ɵɵelementStart(11, "div", 228);
1420
- i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_12_Template, 3, 0, "button", 229);
1445
+ i0.ɵɵelementStart(11, "div", 234);
1446
+ i0.ɵɵconditionalCreate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_12_Template, 3, 0, "button", 235);
1421
1447
  i0.ɵɵelementEnd()();
1422
- i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_13_Template, 1, 1, "mj-empty-state", 283)(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Template, 4, 1, "div", 231);
1448
+ i0.ɵɵconditionalCreate(13, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_13_Template, 1, 1, "mj-empty-state", 289)(14, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Conditional_14_Template, 4, 1, "div", 237);
1423
1449
  i0.ɵɵelementEnd()();
1424
1450
  } if (rf & 2) {
1425
1451
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1433,7 +1459,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1433
1459
  } }
1434
1460
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1435
1461
  i0.ɵɵelementStart(0, "span");
1436
- i0.ɵɵelement(1, "i", 156);
1462
+ i0.ɵɵelement(1, "i", 162);
1437
1463
  i0.ɵɵelementEnd();
1438
1464
  } }
1439
1465
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -1446,7 +1472,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1446
1472
  i0.ɵɵtextInterpolate1(" (", ctx_r1.learningCycleCount, ")");
1447
1473
  } }
1448
1474
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1449
- i0.ɵɵelement(0, "i", 292);
1475
+ i0.ɵɵelement(0, "i", 298);
1450
1476
  i0.ɵɵtext(1, " Learning Cycles ");
1451
1477
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Conditional_2_Template, 2, 0, "span")(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Conditional_3_Template, 2, 1, "span");
1452
1478
  } if (rf & 2) {
@@ -1455,58 +1481,58 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1455
1481
  i0.ɵɵconditional(ctx_r1.loadingStates.learningCycles ? 2 : ctx_r1.learningCycleCount > 0 ? 3 : -1);
1456
1482
  } }
1457
1483
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1458
- i0.ɵɵelement(0, "mj-empty-state", 291);
1484
+ i0.ɵɵelement(0, "mj-empty-state", 297);
1459
1485
  } }
1460
1486
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1461
- i0.ɵɵelementStart(0, "span", 243);
1462
- i0.ɵɵelement(1, "i", 295);
1487
+ i0.ɵɵelementStart(0, "span", 249);
1488
+ i0.ɵɵelement(1, "i", 301);
1463
1489
  i0.ɵɵtext(2);
1464
1490
  i0.ɵɵpipe(3, "date");
1465
1491
  i0.ɵɵelementEnd();
1466
1492
  } if (rf & 2) {
1467
- const cycle_r41 = i0.ɵɵnextContext().$implicit;
1493
+ const cycle_r42 = i0.ɵɵnextContext().$implicit;
1468
1494
  i0.ɵɵadvance(2);
1469
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r41.StartedAt, "short"), " ");
1495
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, cycle_r42.StartedAt, "short"), " ");
1470
1496
  } }
1471
1497
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1472
- i0.ɵɵelementStart(0, "span", 244);
1498
+ i0.ɵɵelementStart(0, "span", 250);
1473
1499
  i0.ɵɵtext(1);
1474
1500
  i0.ɵɵelementEnd();
1475
1501
  } if (rf & 2) {
1476
- const cycle_r41 = i0.ɵɵnextContext().$implicit;
1502
+ const cycle_r42 = i0.ɵɵnextContext().$implicit;
1477
1503
  i0.ɵɵadvance();
1478
- i0.ɵɵtextInterpolate(cycle_r41.Status);
1504
+ i0.ɵɵtextInterpolate(cycle_r42.Status);
1479
1505
  } }
1480
1506
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
1481
- const _r40 = i0.ɵɵgetCurrentView();
1482
- i0.ɵɵelementStart(0, "div", 294);
1483
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Template_div_click_0_listener() { const cycle_r41 = i0.ɵɵrestoreView(_r40).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Learning Cycles", cycle_r41.ID)); });
1484
- i0.ɵɵelementStart(1, "div", 238);
1485
- i0.ɵɵelement(2, "i", 292);
1507
+ const _r41 = i0.ɵɵgetCurrentView();
1508
+ i0.ɵɵelementStart(0, "div", 300);
1509
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Template_div_click_0_listener() { const cycle_r42 = i0.ɵɵrestoreView(_r41).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Learning Cycles", cycle_r42.ID)); });
1510
+ i0.ɵɵelementStart(1, "div", 244);
1511
+ i0.ɵɵelement(2, "i", 298);
1486
1512
  i0.ɵɵelementEnd();
1487
- i0.ɵɵelementStart(3, "div", 239)(4, "div", 240);
1513
+ i0.ɵɵelementStart(3, "div", 245)(4, "div", 246);
1488
1514
  i0.ɵɵtext(5);
1489
1515
  i0.ɵɵelementEnd();
1490
- i0.ɵɵelementStart(6, "div", 242);
1491
- i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Conditional_7_Template, 4, 4, "span", 243);
1492
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Conditional_8_Template, 2, 1, "span", 244);
1516
+ i0.ɵɵelementStart(6, "div", 248);
1517
+ i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Conditional_7_Template, 4, 4, "span", 249);
1518
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Conditional_8_Template, 2, 1, "span", 250);
1493
1519
  i0.ɵɵelementEnd()();
1494
- i0.ɵɵelementStart(9, "div", 245);
1495
- i0.ɵɵelement(10, "i", 225);
1520
+ i0.ɵɵelementStart(9, "div", 251);
1521
+ i0.ɵɵelement(10, "i", 231);
1496
1522
  i0.ɵɵelementEnd()();
1497
1523
  } if (rf & 2) {
1498
- const cycle_r41 = ctx.$implicit;
1524
+ const cycle_r42 = ctx.$implicit;
1499
1525
  i0.ɵɵadvance(5);
1500
- i0.ɵɵtextInterpolate1("Learning Cycle ", cycle_r41.ID.substring(0, 8));
1526
+ i0.ɵɵtextInterpolate1("Learning Cycle ", cycle_r42.ID.substring(0, 8));
1501
1527
  i0.ɵɵadvance(2);
1502
- i0.ɵɵconditional(cycle_r41.StartedAt ? 7 : -1);
1528
+ i0.ɵɵconditional(cycle_r42.StartedAt ? 7 : -1);
1503
1529
  i0.ɵɵadvance();
1504
- i0.ɵɵconditional(cycle_r41.Status ? 8 : -1);
1530
+ i0.ɵɵconditional(cycle_r42.Status ? 8 : -1);
1505
1531
  } }
1506
1532
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1507
- const _r42 = i0.ɵɵgetCurrentView();
1508
- i0.ɵɵelementStart(0, "div", 249);
1509
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Learning Cycles", "")); });
1533
+ const _r43 = i0.ɵɵgetCurrentView();
1534
+ i0.ɵɵelementStart(0, "div", 255);
1535
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Learning Cycles", "")); });
1510
1536
  i0.ɵɵelementStart(1, "span");
1511
1537
  i0.ɵɵtext(2);
1512
1538
  i0.ɵɵelementEnd()();
@@ -1516,9 +1542,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1516
1542
  i0.ɵɵtextInterpolate1("View all ", ctx_r1.learningCycleCount, " cycles...");
1517
1543
  } }
1518
1544
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1519
- i0.ɵɵelementStart(0, "div", 231);
1520
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Template, 11, 3, "div", 293, _forTrack1);
1521
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Conditional_3_Template, 3, 1, "div", 236);
1545
+ i0.ɵɵelementStart(0, "div", 237);
1546
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_For_2_Template, 11, 3, "div", 299, _forTrack1);
1547
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Conditional_3_Template, 3, 1, "div", 242);
1522
1548
  i0.ɵɵelementEnd();
1523
1549
  } if (rf & 2) {
1524
1550
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1528,12 +1554,12 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1528
1554
  i0.ɵɵconditional(ctx_r1.learningCycleCount > ctx_r1.learningCycles.length ? 3 : -1);
1529
1555
  } }
1530
1556
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1531
- i0.ɵɵelementStart(0, "mj-accordion-panel", 53);
1532
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Template, 4, 1, "ng-template", 57);
1533
- i0.ɵɵelementStart(2, "div", 58)(3, "div", 59)(4, "div", 60);
1557
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 58);
1558
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_ng_template_1_Template, 4, 1, "ng-template", 62);
1559
+ i0.ɵɵelementStart(2, "div", 63)(3, "div", 64)(4, "div", 65);
1534
1560
  i0.ɵɵtext(5, " Monitor and manage learning cycles, training sessions, and performance analytics. ");
1535
1561
  i0.ɵɵelementEnd()();
1536
- i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_6_Template, 1, 0, "mj-empty-state", 291)(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Template, 4, 1, "div", 231);
1562
+ i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_6_Template, 1, 0, "mj-empty-state", 297)(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Conditional_7_Template, 4, 1, "div", 237);
1537
1563
  i0.ɵɵelementEnd()();
1538
1564
  } if (rf & 2) {
1539
1565
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1543,7 +1569,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1543
1569
  } }
1544
1570
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1545
1571
  i0.ɵɵelementStart(0, "span");
1546
- i0.ɵɵelement(1, "i", 156);
1572
+ i0.ɵɵelement(1, "i", 162);
1547
1573
  i0.ɵɵelementEnd();
1548
1574
  } }
1549
1575
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
@@ -1556,7 +1582,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1556
1582
  i0.ɵɵtextInterpolate1(" (", ctx_r1.noteCount, ")");
1557
1583
  } }
1558
1584
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1559
- i0.ɵɵelement(0, "i", 297);
1585
+ i0.ɵɵelement(0, "i", 303);
1560
1586
  i0.ɵɵtext(1, " Notes ");
1561
1587
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Conditional_2_Template, 2, 0, "span")(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Conditional_3_Template, 2, 1, "span");
1562
1588
  } if (rf & 2) {
@@ -1565,72 +1591,72 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1565
1591
  i0.ɵɵconditional(ctx_r1.loadingStates.notes ? 2 : ctx_r1.noteCount > 0 ? 3 : -1);
1566
1592
  } }
1567
1593
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1568
- const _r43 = i0.ɵɵgetCurrentView();
1569
- i0.ɵɵelementStart(0, "button", 232);
1570
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
1571
- i0.ɵɵelement(1, "i", 233);
1594
+ const _r44 = i0.ɵɵgetCurrentView();
1595
+ i0.ɵɵelementStart(0, "button", 238);
1596
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
1597
+ i0.ɵɵelement(1, "i", 239);
1572
1598
  i0.ɵɵtext(2, " Add Note ");
1573
1599
  i0.ɵɵelementEnd();
1574
1600
  } }
1575
1601
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1576
- const _r44 = i0.ɵɵgetCurrentView();
1577
- i0.ɵɵelementStart(0, "mj-empty-state", 298);
1578
- i0.ɵɵlistener("Action", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_8_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
1602
+ const _r45 = i0.ɵɵgetCurrentView();
1603
+ i0.ɵɵelementStart(0, "mj-empty-state", 304);
1604
+ i0.ɵɵlistener("Action", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_8_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r45); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addNote()); });
1579
1605
  i0.ɵɵelementEnd();
1580
1606
  } if (rf & 2) {
1581
1607
  const ctx_r1 = i0.ɵɵnextContext(4);
1582
1608
  i0.ɵɵproperty("ActionText", ctx_r1.EditMode && ctx_r1.UserCanCreateNotes ? "Create First Note" : "");
1583
1609
  } }
1584
1610
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1585
- i0.ɵɵelementStart(0, "div", 241);
1611
+ i0.ɵɵelementStart(0, "div", 247);
1586
1612
  i0.ɵɵtext(1);
1587
1613
  i0.ɵɵelementEnd();
1588
1614
  } if (rf & 2) {
1589
- const note_r46 = i0.ɵɵnextContext().$implicit;
1615
+ const note_r47 = i0.ɵɵnextContext().$implicit;
1590
1616
  i0.ɵɵadvance();
1591
- i0.ɵɵtextInterpolate2("", note_r46.Note.substring(0, 100), "", note_r46.Note.length > 100 ? "..." : "");
1617
+ i0.ɵɵtextInterpolate2("", note_r47.Note.substring(0, 100), "", note_r47.Note.length > 100 ? "..." : "");
1592
1618
  } }
1593
1619
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1594
- i0.ɵɵelementStart(0, "span", 243);
1595
- i0.ɵɵelement(1, "i", 295);
1620
+ i0.ɵɵelementStart(0, "span", 249);
1621
+ i0.ɵɵelement(1, "i", 301);
1596
1622
  i0.ɵɵtext(2);
1597
1623
  i0.ɵɵpipe(3, "date");
1598
1624
  i0.ɵɵelementEnd();
1599
1625
  } if (rf & 2) {
1600
- const note_r46 = i0.ɵɵnextContext().$implicit;
1626
+ const note_r47 = i0.ɵɵnextContext().$implicit;
1601
1627
  i0.ɵɵadvance(2);
1602
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, note_r46.__mj_CreatedAt, "short"), " ");
1628
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, note_r47.__mj_CreatedAt, "short"), " ");
1603
1629
  } }
1604
1630
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
1605
- const _r45 = i0.ɵɵgetCurrentView();
1606
- i0.ɵɵelementStart(0, "div", 300);
1607
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Template_div_click_0_listener() { const note_r46 = i0.ɵɵrestoreView(_r45).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Notes", note_r46.ID)); });
1608
- i0.ɵɵelementStart(1, "div", 238);
1609
- i0.ɵɵelement(2, "i", 297);
1631
+ const _r46 = i0.ɵɵgetCurrentView();
1632
+ i0.ɵɵelementStart(0, "div", 306);
1633
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Template_div_click_0_listener() { const note_r47 = i0.ɵɵrestoreView(_r46).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Notes", note_r47.ID)); });
1634
+ i0.ɵɵelementStart(1, "div", 244);
1635
+ i0.ɵɵelement(2, "i", 303);
1610
1636
  i0.ɵɵelementEnd();
1611
- i0.ɵɵelementStart(3, "div", 239)(4, "div", 240);
1637
+ i0.ɵɵelementStart(3, "div", 245)(4, "div", 246);
1612
1638
  i0.ɵɵtext(5);
1613
1639
  i0.ɵɵelementEnd();
1614
- i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Conditional_6_Template, 2, 2, "div", 241);
1615
- i0.ɵɵelementStart(7, "div", 242);
1616
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Conditional_8_Template, 4, 4, "span", 243);
1640
+ i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Conditional_6_Template, 2, 2, "div", 247);
1641
+ i0.ɵɵelementStart(7, "div", 248);
1642
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Conditional_8_Template, 4, 4, "span", 249);
1617
1643
  i0.ɵɵelementEnd()();
1618
- i0.ɵɵelementStart(9, "div", 245);
1619
- i0.ɵɵelement(10, "i", 225);
1644
+ i0.ɵɵelementStart(9, "div", 251);
1645
+ i0.ɵɵelement(10, "i", 231);
1620
1646
  i0.ɵɵelementEnd()();
1621
1647
  } if (rf & 2) {
1622
- const note_r46 = ctx.$implicit;
1648
+ const note_r47 = ctx.$implicit;
1623
1649
  i0.ɵɵadvance(5);
1624
- i0.ɵɵtextInterpolate(note_r46.Type || "Note");
1650
+ i0.ɵɵtextInterpolate(note_r47.Type || "Note");
1625
1651
  i0.ɵɵadvance();
1626
- i0.ɵɵconditional(note_r46.Note ? 6 : -1);
1652
+ i0.ɵɵconditional(note_r47.Note ? 6 : -1);
1627
1653
  i0.ɵɵadvance(2);
1628
- i0.ɵɵconditional(note_r46.__mj_CreatedAt ? 8 : -1);
1654
+ i0.ɵɵconditional(note_r47.__mj_CreatedAt ? 8 : -1);
1629
1655
  } }
1630
1656
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1631
- const _r47 = i0.ɵɵgetCurrentView();
1632
- i0.ɵɵelementStart(0, "div", 249);
1633
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r47); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Notes", "")); });
1657
+ const _r48 = i0.ɵɵgetCurrentView();
1658
+ i0.ɵɵelementStart(0, "div", 255);
1659
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r48); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agent Notes", "")); });
1634
1660
  i0.ɵɵelementStart(1, "span");
1635
1661
  i0.ɵɵtext(2);
1636
1662
  i0.ɵɵelementEnd()();
@@ -1640,9 +1666,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1640
1666
  i0.ɵɵtextInterpolate1("View all ", ctx_r1.noteCount, " notes...");
1641
1667
  } }
1642
1668
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1643
- i0.ɵɵelementStart(0, "div", 231);
1644
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Template, 11, 3, "div", 299, _forTrack1);
1645
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Conditional_3_Template, 3, 1, "div", 236);
1669
+ i0.ɵɵelementStart(0, "div", 237);
1670
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_For_2_Template, 11, 3, "div", 305, _forTrack1);
1671
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Conditional_3_Template, 3, 1, "div", 242);
1646
1672
  i0.ɵɵelementEnd();
1647
1673
  } if (rf & 2) {
1648
1674
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1652,15 +1678,15 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1652
1678
  i0.ɵɵconditional(ctx_r1.noteCount > ctx_r1.agentNotes.length ? 3 : -1);
1653
1679
  } }
1654
1680
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1655
- i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
1656
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Template, 4, 1, "ng-template", 57);
1657
- i0.ɵɵelementStart(2, "div", 58)(3, "div", 59)(4, "div", 60);
1681
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 59);
1682
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_ng_template_1_Template, 4, 1, "ng-template", 62);
1683
+ i0.ɵɵelementStart(2, "div", 63)(3, "div", 64)(4, "div", 65);
1658
1684
  i0.ɵɵtext(5, " Manage notes, documentation, and annotations for this agent. ");
1659
1685
  i0.ɵɵelementEnd();
1660
- i0.ɵɵelementStart(6, "div", 228);
1661
- i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_7_Template, 3, 0, "button", 229);
1686
+ i0.ɵɵelementStart(6, "div", 234);
1687
+ i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_7_Template, 3, 0, "button", 235);
1662
1688
  i0.ɵɵelementEnd()();
1663
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_8_Template, 1, 1, "mj-empty-state", 296)(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Template, 4, 1, "div", 231);
1689
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_8_Template, 1, 1, "mj-empty-state", 302)(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Conditional_9_Template, 4, 1, "div", 237);
1664
1690
  i0.ɵɵelementEnd()();
1665
1691
  } if (rf & 2) {
1666
1692
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1671,21 +1697,21 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1671
1697
  i0.ɵɵconditional(ctx_r1.noteCount === 0 ? 8 : 9);
1672
1698
  } }
1673
1699
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1674
- i0.ɵɵelement(0, "i", 312);
1700
+ i0.ɵɵelement(0, "i", 318);
1675
1701
  i0.ɵɵtext(1, " Search ");
1676
1702
  } }
1677
1703
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_23_Template(rf, ctx) { if (rf & 1) {
1678
- i0.ɵɵelementStart(0, "div", 319);
1704
+ i0.ɵɵelementStart(0, "div", 325);
1679
1705
  i0.ɵɵtext(1, "Loading permissions\u2026");
1680
1706
  i0.ɵɵelementEnd();
1681
1707
  } }
1682
1708
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_24_Template(rf, ctx) { if (rf & 1) {
1683
- i0.ɵɵelementStart(0, "div", 320);
1709
+ i0.ɵɵelementStart(0, "div", 326);
1684
1710
  i0.ɵɵtext(1, " No scopes assigned yet \u2014 permissions will appear here once you add scopes above. ");
1685
1711
  i0.ɵɵelementEnd();
1686
1712
  } }
1687
1713
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1688
- i0.ɵɵelementStart(0, "div", 323);
1714
+ i0.ɵɵelementStart(0, "div", 329);
1689
1715
  i0.ɵɵtext(1, " No explicit permissions. Users need a Search grant (directly or through a role) unless this agent's access is ");
1690
1716
  i0.ɵɵelementStart(2, "code");
1691
1717
  i0.ɵɵtext(3, "All");
@@ -1694,12 +1720,12 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1694
1720
  i0.ɵɵelementEnd();
1695
1721
  } }
1696
1722
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
1697
- i0.ɵɵelementStart(0, "li", 325);
1698
- i0.ɵɵelement(1, "i", 35);
1723
+ i0.ɵɵelementStart(0, "li", 331);
1724
+ i0.ɵɵelement(1, "i", 37);
1699
1725
  i0.ɵɵelementStart(2, "strong");
1700
1726
  i0.ɵɵtext(3);
1701
1727
  i0.ɵɵelementEnd();
1702
- i0.ɵɵelementStart(4, "span", 319);
1728
+ i0.ɵɵelementStart(4, "span", 325);
1703
1729
  i0.ɵɵtext(5);
1704
1730
  i0.ɵɵelementEnd();
1705
1731
  i0.ɵɵtext(6, " \u2014 ");
@@ -1707,52 +1733,52 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1707
1733
  i0.ɵɵtext(8);
1708
1734
  i0.ɵɵelementEnd()();
1709
1735
  } if (rf & 2) {
1710
- const p_r50 = ctx.$implicit;
1736
+ const p_r51 = ctx.$implicit;
1711
1737
  i0.ɵɵadvance();
1712
- i0.ɵɵclassProp("fa-user", p_r50.PrincipalType === "User")("fa-users", p_r50.PrincipalType === "Role");
1738
+ i0.ɵɵclassProp("fa-user", p_r51.PrincipalType === "User")("fa-users", p_r51.PrincipalType === "Role");
1713
1739
  i0.ɵɵadvance(2);
1714
- i0.ɵɵtextInterpolate(p_r50.Principal);
1740
+ i0.ɵɵtextInterpolate(p_r51.Principal);
1715
1741
  i0.ɵɵadvance(2);
1716
- i0.ɵɵtextInterpolate1("(", p_r50.PrincipalType, ")");
1742
+ i0.ɵɵtextInterpolate1("(", p_r51.PrincipalType, ")");
1717
1743
  i0.ɵɵadvance(2);
1718
- i0.ɵɵstyleProp("color", p_r50.Level === "None" ? "var(--mj-status-error-text)" : "var(--mj-text-primary)");
1744
+ i0.ɵɵstyleProp("color", p_r51.Level === "None" ? "var(--mj-status-error-text)" : "var(--mj-text-primary)");
1719
1745
  i0.ɵɵadvance();
1720
- i0.ɵɵtextInterpolate(p_r50.Level);
1746
+ i0.ɵɵtextInterpolate(p_r51.Level);
1721
1747
  } }
1722
1748
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1723
- i0.ɵɵelementStart(0, "ul", 324);
1724
- i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_4_For_2_Template, 9, 9, "li", 325, _forTrack4);
1749
+ i0.ɵɵelementStart(0, "ul", 330);
1750
+ i0.ɵɵrepeaterCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_4_For_2_Template, 9, 9, "li", 331, _forTrack4);
1725
1751
  i0.ɵɵelementEnd();
1726
1752
  } if (rf & 2) {
1727
- const s_r51 = i0.ɵɵnextContext().$implicit;
1753
+ const s_r52 = i0.ɵɵnextContext().$implicit;
1728
1754
  i0.ɵɵadvance();
1729
- i0.ɵɵrepeater(s_r51.Permissions);
1755
+ i0.ɵɵrepeater(s_r52.Permissions);
1730
1756
  } }
1731
1757
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Template(rf, ctx) { if (rf & 1) {
1732
- i0.ɵɵelementStart(0, "div", 321)(1, "div", 322);
1758
+ i0.ɵɵelementStart(0, "div", 327)(1, "div", 328);
1733
1759
  i0.ɵɵtext(2);
1734
1760
  i0.ɵɵelementEnd();
1735
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_3_Template, 5, 0, "div", 323)(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_4_Template, 3, 0, "ul", 324);
1761
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_3_Template, 5, 0, "div", 329)(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Conditional_4_Template, 3, 0, "ul", 330);
1736
1762
  i0.ɵɵelementEnd();
1737
1763
  } if (rf & 2) {
1738
- const s_r51 = ctx.$implicit;
1764
+ const s_r52 = ctx.$implicit;
1739
1765
  i0.ɵɵadvance(2);
1740
- i0.ɵɵtextInterpolate(s_r51.ScopeName);
1766
+ i0.ɵɵtextInterpolate(s_r52.ScopeName);
1741
1767
  i0.ɵɵadvance();
1742
- i0.ɵɵconditional(s_r51.Permissions.length === 0 ? 3 : 4);
1768
+ i0.ɵɵconditional(s_r52.Permissions.length === 0 ? 3 : 4);
1743
1769
  } }
1744
1770
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_Template(rf, ctx) { if (rf & 1) {
1745
- i0.ɵɵrepeaterCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Template, 5, 2, "div", 321, _forTrack3);
1771
+ i0.ɵɵrepeaterCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_For_1_Template, 5, 2, "div", 327, _forTrack3);
1746
1772
  } if (rf & 2) {
1747
1773
  const ctx_r1 = i0.ɵɵnextContext(5);
1748
1774
  i0.ɵɵrepeater(ctx_r1.PermissionSummary);
1749
1775
  } }
1750
1776
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Template(rf, ctx) { if (rf & 1) {
1751
- const _r49 = i0.ɵɵgetCurrentView();
1752
- i0.ɵɵelementStart(0, "div", 313)(1, "h4");
1777
+ const _r50 = i0.ɵɵgetCurrentView();
1778
+ i0.ɵɵelementStart(0, "div", 319)(1, "h4");
1753
1779
  i0.ɵɵtext(2, "Assigned Scopes");
1754
1780
  i0.ɵɵelementEnd();
1755
- i0.ɵɵelementStart(3, "p", 60)(4, "strong");
1781
+ i0.ɵɵelementStart(3, "p", 65)(4, "strong");
1756
1782
  i0.ɵɵtext(5, "Pre-Execution");
1757
1783
  i0.ɵɵelementEnd();
1758
1784
  i0.ɵɵtext(6, " scopes are searched before the first LLM call, for users who may search them. ");
@@ -1765,21 +1791,21 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1765
1791
  i0.ɵɵelementEnd();
1766
1792
  i0.ɵɵtext(12, " covers both paths. ");
1767
1793
  i0.ɵɵelementEnd()();
1768
- i0.ɵɵelementStart(13, "mj-search-scope-child-grid", 314);
1769
- i0.ɵɵlistener("RowsChanged", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Template_mj_search_scope_child_grid_RowsChanged_13_listener() { i0.ɵɵrestoreView(_r49); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.LoadPermissionSummary()); });
1794
+ i0.ɵɵelementStart(13, "mj-search-scope-child-grid", 320);
1795
+ i0.ɵɵlistener("RowsChanged", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Template_mj_search_scope_child_grid_RowsChanged_13_listener() { i0.ɵɵrestoreView(_r50); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.LoadPermissionSummary()); });
1770
1796
  i0.ɵɵelementEnd();
1771
- i0.ɵɵelementStart(14, "div", 315)(15, "h4", 316);
1772
- i0.ɵɵelement(16, "i", 317);
1797
+ i0.ɵɵelementStart(14, "div", 321)(15, "h4", 322);
1798
+ i0.ɵɵelement(16, "i", 323);
1773
1799
  i0.ɵɵtext(17, " Effective scope permissions ");
1774
1800
  i0.ɵɵelementEnd();
1775
- i0.ɵɵelementStart(18, "p", 318);
1801
+ i0.ɵɵelementStart(18, "p", 324);
1776
1802
  i0.ɵɵtext(19, " Per-user / per-role grants on the scopes assigned above. Edit grants in ");
1777
1803
  i0.ɵɵelementStart(20, "strong");
1778
1804
  i0.ɵɵtext(21, "Knowledge Hub Config \u2192 Search Scopes \u2192 Permissions");
1779
1805
  i0.ɵɵelementEnd();
1780
1806
  i0.ɵɵtext(22, ". ");
1781
1807
  i0.ɵɵelementEnd();
1782
- i0.ɵɵconditionalCreate(23, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_23_Template, 2, 0, "div", 319)(24, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_24_Template, 2, 0, "div", 320)(25, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_Template, 2, 0);
1808
+ i0.ɵɵconditionalCreate(23, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_23_Template, 2, 0, "div", 325)(24, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_24_Template, 2, 0, "div", 326)(25, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Conditional_25_Template, 2, 0);
1783
1809
  i0.ɵɵelementEnd();
1784
1810
  } if (rf & 2) {
1785
1811
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1789,44 +1815,44 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1789
1815
  i0.ɵɵconditional(ctx_r1.IsLoadingPermissions ? 23 : ctx_r1.PermissionSummary.length === 0 ? 24 : 25);
1790
1816
  } }
1791
1817
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1792
- const _r48 = i0.ɵɵgetCurrentView();
1793
- i0.ɵɵelementStart(0, "mj-accordion-panel", 55);
1794
- i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_ng_template_1_Template, 2, 0, "ng-template", 57);
1795
- i0.ɵɵelementStart(2, "div", 58)(3, "div", 59)(4, "div", 60);
1818
+ const _r49 = i0.ɵɵgetCurrentView();
1819
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 60);
1820
+ i0.ɵɵtemplate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_ng_template_1_Template, 2, 0, "ng-template", 62);
1821
+ i0.ɵɵelementStart(2, "div", 63)(3, "div", 64)(4, "div", 65);
1796
1822
  i0.ɵɵtext(5, " Control this agent's access to ");
1797
1823
  i0.ɵɵelementStart(6, "strong");
1798
1824
  i0.ɵɵtext(7, "Scoped Search");
1799
1825
  i0.ɵɵelementEnd();
1800
1826
  i0.ɵɵtext(8, " and assign the scopes it can use for pre-execution RAG or agent-invoked search. ");
1801
1827
  i0.ɵɵelementEnd()();
1802
- i0.ɵɵelementStart(9, "div", 301)(10, "label", 302)(11, "input", 303);
1803
- i0.ɵɵlistener("change", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template_input_change_11_listener() { i0.ɵɵrestoreView(_r48); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.record.SearchScopeAccess = "All"); });
1828
+ i0.ɵɵelementStart(9, "div", 307)(10, "label", 308)(11, "input", 309);
1829
+ i0.ɵɵlistener("change", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template_input_change_11_listener() { i0.ɵɵrestoreView(_r49); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.record.SearchScopeAccess = "All"); });
1804
1830
  i0.ɵɵelementEnd();
1805
- i0.ɵɵelement(12, "i", 304);
1806
- i0.ɵɵelementStart(13, "div", 305)(14, "div", 306);
1831
+ i0.ɵɵelement(12, "i", 310);
1832
+ i0.ɵɵelementStart(13, "div", 311)(14, "div", 312);
1807
1833
  i0.ɵɵtext(15, "All");
1808
1834
  i0.ɵɵelementEnd();
1809
- i0.ɵɵelementStart(16, "div", 307);
1835
+ i0.ɵɵelementStart(16, "div", 313);
1810
1836
  i0.ɵɵtext(17, "Can use any scope including Global. No scope restriction.");
1811
1837
  i0.ɵɵelementEnd()()();
1812
- i0.ɵɵelementStart(18, "label", 302)(19, "input", 308);
1813
- i0.ɵɵlistener("change", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template_input_change_19_listener() { i0.ɵɵrestoreView(_r48); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.record.SearchScopeAccess = "Assigned"); });
1838
+ i0.ɵɵelementStart(18, "label", 308)(19, "input", 314);
1839
+ i0.ɵɵlistener("change", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template_input_change_19_listener() { i0.ɵɵrestoreView(_r49); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.record.SearchScopeAccess = "Assigned"); });
1814
1840
  i0.ɵɵelementEnd();
1815
- i0.ɵɵelement(20, "i", 309);
1816
- i0.ɵɵelementStart(21, "div", 305)(22, "div", 306);
1841
+ i0.ɵɵelement(20, "i", 315);
1842
+ i0.ɵɵelementStart(21, "div", 311)(22, "div", 312);
1817
1843
  i0.ɵɵtext(23, "Assigned");
1818
1844
  i0.ɵɵelementEnd();
1819
- i0.ɵɵelementStart(24, "div", 307);
1845
+ i0.ɵɵelementStart(24, "div", 313);
1820
1846
  i0.ɵɵtext(25, "Can use ONLY scopes listed below, for users with a Search grant on the scope (directly or through a role). Other scopes are rejected with ACCESS_DENIED.");
1821
1847
  i0.ɵɵelementEnd()()();
1822
- i0.ɵɵelementStart(26, "label", 302)(27, "input", 310);
1823
- i0.ɵɵlistener("change", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template_input_change_27_listener() { i0.ɵɵrestoreView(_r48); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.record.SearchScopeAccess = "None"); });
1848
+ i0.ɵɵelementStart(26, "label", 308)(27, "input", 316);
1849
+ i0.ɵɵlistener("change", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template_input_change_27_listener() { i0.ɵɵrestoreView(_r49); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.record.SearchScopeAccess = "None"); });
1824
1850
  i0.ɵɵelementEnd();
1825
- i0.ɵɵelement(28, "i", 311);
1826
- i0.ɵɵelementStart(29, "div", 305)(30, "div", 306);
1851
+ i0.ɵɵelement(28, "i", 317);
1852
+ i0.ɵɵelementStart(29, "div", 311)(30, "div", 312);
1827
1853
  i0.ɵɵtext(31, "None");
1828
1854
  i0.ɵɵelementEnd();
1829
- i0.ɵɵelementStart(32, "div", 307);
1855
+ i0.ɵɵelementStart(32, "div", 313);
1830
1856
  i0.ɵɵtext(33, "No search capability. The Scoped Search action and pre-execution retrieval are disabled for this agent.");
1831
1857
  i0.ɵɵelementEnd()()()();
1832
1858
  i0.ɵɵconditionalCreate(34, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Conditional_34_Template, 26, 4);
@@ -1850,21 +1876,21 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1850
1876
  i0.ɵɵconditional(ctx_r1.record.SearchScopeAccess !== "None" ? 34 : -1);
1851
1877
  } }
1852
1878
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_12_Template(rf, ctx) { if (rf & 1) {
1853
- i0.ɵɵelement(0, "i", 274);
1879
+ i0.ɵɵelement(0, "i", 280);
1854
1880
  i0.ɵɵtext(1, " Payload Management ");
1855
1881
  } }
1856
1882
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_138_Template(rf, ctx) { if (rf & 1) {
1857
- i0.ɵɵelement(0, "i", 317);
1883
+ i0.ɵɵelement(0, "i", 323);
1858
1884
  i0.ɵɵtext(1, " Execution Guardrails ");
1859
1885
  } }
1860
1886
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_149_Template(rf, ctx) { if (rf & 1) {
1861
- i0.ɵɵelement(0, "i", 326);
1887
+ i0.ɵɵelement(0, "i", 332);
1862
1888
  i0.ɵɵtext(1, " Configuration ");
1863
1889
  } }
1864
1890
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_169_Template(rf, ctx) { if (rf & 1) {
1865
- const _r52 = i0.ɵɵgetCurrentView();
1866
- i0.ɵɵelementStart(0, "mj-dropdown", 327);
1867
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_169_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r52); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Status, $event) || (ctx_r1.record.Status = $event); return i0.ɵɵresetView($event); });
1891
+ const _r53 = i0.ɵɵgetCurrentView();
1892
+ i0.ɵɵelementStart(0, "mj-dropdown", 333);
1893
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_169_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.Status, $event) || (ctx_r1.record.Status = $event); return i0.ɵɵresetView($event); });
1868
1894
  i0.ɵɵelementEnd();
1869
1895
  } if (rf & 2) {
1870
1896
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1872,7 +1898,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1872
1898
  i0.ɵɵproperty("Data", ctx_r1.statusOptions)("ValuePrimitive", true);
1873
1899
  } }
1874
1900
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_170_Template(rf, ctx) { if (rf & 1) {
1875
- i0.ɵɵelementStart(0, "span", 122);
1901
+ i0.ɵɵelementStart(0, "span", 127);
1876
1902
  i0.ɵɵtext(1);
1877
1903
  i0.ɵɵelementEnd();
1878
1904
  } if (rf & 2) {
@@ -1881,9 +1907,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1881
1907
  i0.ɵɵtextInterpolate(ctx_r1.record.Status || "Not Set");
1882
1908
  } }
1883
1909
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_181_Template(rf, ctx) { if (rf & 1) {
1884
- const _r53 = i0.ɵɵgetCurrentView();
1885
- i0.ɵɵelementStart(0, "mj-dropdown", 328);
1886
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_181_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.TypeID, $event) || (ctx_r1.record.TypeID = $event); return i0.ɵɵresetView($event); });
1910
+ const _r54 = i0.ɵɵgetCurrentView();
1911
+ i0.ɵɵelementStart(0, "mj-dropdown", 334);
1912
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_181_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r54); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.record.TypeID, $event) || (ctx_r1.record.TypeID = $event); return i0.ɵɵresetView($event); });
1887
1913
  i0.ɵɵelementEnd();
1888
1914
  } if (rf & 2) {
1889
1915
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1891,7 +1917,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1891
1917
  i0.ɵɵproperty("Data", ctx_r1.agentTypes)("ValuePrimitive", true);
1892
1918
  } }
1893
1919
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_182_Template(rf, ctx) { if (rf & 1) {
1894
- i0.ɵɵelementStart(0, "span", 122);
1920
+ i0.ɵɵelementStart(0, "span", 127);
1895
1921
  i0.ɵɵtext(1);
1896
1922
  i0.ɵɵelementEnd();
1897
1923
  } if (rf & 2) {
@@ -1900,16 +1926,16 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1900
1926
  i0.ɵɵtextInterpolate(ctx_r1.record.Type || "Not Set");
1901
1927
  } }
1902
1928
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_193_Template(rf, ctx) { if (rf & 1) {
1903
- const _r54 = i0.ɵɵgetCurrentView();
1904
- i0.ɵɵelementStart(0, "mj-tree-dropdown", 329);
1905
- i0.ɵɵlistener("ValueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_193_Template_mj_tree_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r54); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCategoryChange($event)); });
1929
+ const _r55 = i0.ɵɵgetCurrentView();
1930
+ i0.ɵɵelementStart(0, "mj-tree-dropdown", 335);
1931
+ i0.ɵɵlistener("ValueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_193_Template_mj_tree_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r55); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCategoryChange($event)); });
1906
1932
  i0.ɵɵelementEnd();
1907
1933
  } if (rf & 2) {
1908
1934
  const ctx_r1 = i0.ɵɵnextContext(3);
1909
1935
  i0.ɵɵproperty("BranchConfig", ctx_r1.CategoryBranchConfig)("Value", ctx_r1.SelectedCategoryKey)("Clearable", true)("EnableSearch", true);
1910
1936
  } }
1911
1937
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_194_Template(rf, ctx) { if (rf & 1) {
1912
- i0.ɵɵelementStart(0, "span", 122);
1938
+ i0.ɵɵelementStart(0, "span", 127);
1913
1939
  i0.ɵɵtext(1);
1914
1940
  i0.ɵɵelementEnd();
1915
1941
  } if (rf & 2) {
@@ -1918,7 +1944,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1918
1944
  i0.ɵɵtextInterpolate(ctx_r1.record.Category || "Not Set");
1919
1945
  } }
1920
1946
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1921
- i0.ɵɵelementStart(0, "span", 336);
1947
+ i0.ɵɵelementStart(0, "span", 342);
1922
1948
  i0.ɵɵtext(1);
1923
1949
  i0.ɵɵelementEnd();
1924
1950
  } if (rf & 2) {
@@ -1927,28 +1953,28 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1927
1953
  i0.ɵɵtextInterpolate(ctx_r1.selectedContextCompressionPrompt.Name);
1928
1954
  } }
1929
1955
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1930
- i0.ɵɵelementStart(0, "span", 337);
1956
+ i0.ɵɵelementStart(0, "span", 343);
1931
1957
  i0.ɵɵtext(1, "No prompt selected");
1932
1958
  i0.ɵɵelementEnd();
1933
1959
  } }
1934
1960
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1935
- const _r56 = i0.ɵɵgetCurrentView();
1936
- i0.ɵɵelementStart(0, "button", 341);
1937
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r56); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.clearContextCompressionPrompt()); });
1938
- i0.ɵɵelement(1, "i", 342);
1961
+ const _r57 = i0.ɵɵgetCurrentView();
1962
+ i0.ɵɵelementStart(0, "button", 347);
1963
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r57); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.clearContextCompressionPrompt()); });
1964
+ i0.ɵɵelement(1, "i", 348);
1939
1965
  i0.ɵɵelementEnd();
1940
1966
  } }
1941
1967
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Template(rf, ctx) { if (rf & 1) {
1942
- const _r55 = i0.ɵɵgetCurrentView();
1943
- i0.ɵɵelementStart(0, "div", 334)(1, "div", 335);
1944
- i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_2_Template, 2, 1, "span", 336)(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_3_Template, 2, 0, "span", 337);
1968
+ const _r56 = i0.ɵɵgetCurrentView();
1969
+ i0.ɵɵelementStart(0, "div", 340)(1, "div", 341);
1970
+ i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_2_Template, 2, 1, "span", 342)(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_3_Template, 2, 0, "span", 343);
1945
1971
  i0.ɵɵelementEnd();
1946
- i0.ɵɵelementStart(4, "div", 338)(5, "button", 339);
1947
- i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r55); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openContextCompressionPromptSelector()); });
1948
- i0.ɵɵelement(6, "i", 191);
1972
+ i0.ɵɵelementStart(4, "div", 344)(5, "button", 345);
1973
+ i0.ɵɵlistener("click", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r56); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openContextCompressionPromptSelector()); });
1974
+ i0.ɵɵelement(6, "i", 197);
1949
1975
  i0.ɵɵtext(7);
1950
1976
  i0.ɵɵelementEnd();
1951
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_8_Template, 2, 0, "button", 340);
1977
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Conditional_8_Template, 2, 0, "button", 346);
1952
1978
  i0.ɵɵelementEnd()();
1953
1979
  } if (rf & 2) {
1954
1980
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1960,7 +1986,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1960
1986
  i0.ɵɵconditional(ctx_r1.selectedContextCompressionPrompt ? 8 : -1);
1961
1987
  } }
1962
1988
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1963
- i0.ɵɵelementStart(0, "span", 122);
1989
+ i0.ɵɵelementStart(0, "span", 127);
1964
1990
  i0.ɵɵtext(1);
1965
1991
  i0.ɵɵelementEnd();
1966
1992
  } if (rf & 2) {
@@ -1969,41 +1995,41 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
1969
1995
  i0.ɵɵtextInterpolate((ctx_r1.selectedContextCompressionPrompt == null ? null : ctx_r1.selectedContextCompressionPrompt.Name) || ctx_r1.record.ContextCompressionPrompt || "Not Set");
1970
1996
  } }
1971
1997
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Template(rf, ctx) { if (rf & 1) {
1972
- i0.ɵɵelementStart(0, "div", 115)(1, "div", 116)(2, "div", 117);
1973
- i0.ɵɵelement(3, "i", 330);
1998
+ i0.ɵɵelementStart(0, "div", 120)(1, "div", 121)(2, "div", 122);
1999
+ i0.ɵɵelement(3, "i", 336);
1974
2000
  i0.ɵɵelementEnd();
1975
- i0.ɵɵelementStart(4, "div", 119)(5, "h4");
2001
+ i0.ɵɵelementStart(4, "div", 124)(5, "h4");
1976
2002
  i0.ɵɵtext(6, "Message Threshold");
1977
2003
  i0.ɵɵelementEnd();
1978
2004
  i0.ɵɵelementStart(7, "p");
1979
2005
  i0.ɵɵtext(8, "Messages before compression triggers");
1980
2006
  i0.ɵɵelementEnd()()();
1981
- i0.ɵɵelementStart(9, "div", 120);
1982
- i0.ɵɵelement(10, "mj-form-field", 331);
2007
+ i0.ɵɵelementStart(9, "div", 125);
2008
+ i0.ɵɵelement(10, "mj-form-field", 337);
1983
2009
  i0.ɵɵelementEnd()();
1984
- i0.ɵɵelementStart(11, "div", 115)(12, "div", 116)(13, "div", 117);
1985
- i0.ɵɵelement(14, "i", 332);
2010
+ i0.ɵɵelementStart(11, "div", 120)(12, "div", 121)(13, "div", 122);
2011
+ i0.ɵɵelement(14, "i", 338);
1986
2012
  i0.ɵɵelementEnd();
1987
- i0.ɵɵelementStart(15, "div", 119)(16, "h4");
2013
+ i0.ɵɵelementStart(15, "div", 124)(16, "h4");
1988
2014
  i0.ɵɵtext(17, "Messages to Keep");
1989
2015
  i0.ɵɵelementEnd();
1990
2016
  i0.ɵɵelementStart(18, "p");
1991
2017
  i0.ɵɵtext(19, "Recent messages to retain uncompressed");
1992
2018
  i0.ɵɵelementEnd()()();
1993
- i0.ɵɵelementStart(20, "div", 120);
1994
- i0.ɵɵelement(21, "mj-form-field", 333);
2019
+ i0.ɵɵelementStart(20, "div", 125);
2020
+ i0.ɵɵelement(21, "mj-form-field", 339);
1995
2021
  i0.ɵɵelementEnd()();
1996
- i0.ɵɵelementStart(22, "div", 115)(23, "div", 116)(24, "div", 117);
1997
- i0.ɵɵelement(25, "i", 288);
2022
+ i0.ɵɵelementStart(22, "div", 120)(23, "div", 121)(24, "div", 122);
2023
+ i0.ɵɵelement(25, "i", 294);
1998
2024
  i0.ɵɵelementEnd();
1999
- i0.ɵɵelementStart(26, "div", 119)(27, "h4");
2025
+ i0.ɵɵelementStart(26, "div", 124)(27, "h4");
2000
2026
  i0.ɵɵtext(28, "Compression Prompt");
2001
2027
  i0.ɵɵelementEnd();
2002
2028
  i0.ɵɵelementStart(29, "p");
2003
2029
  i0.ɵɵtext(30, "Prompt used for summarization");
2004
2030
  i0.ɵɵelementEnd()()();
2005
- i0.ɵɵelementStart(31, "div", 120);
2006
- i0.ɵɵconditionalCreate(32, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Template, 9, 3, "div", 334)(33, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_33_Template, 2, 1, "span", 122);
2031
+ i0.ɵɵelementStart(31, "div", 125);
2032
+ i0.ɵɵconditionalCreate(32, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_32_Template, 9, 3, "div", 340)(33, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Conditional_33_Template, 2, 1, "span", 127);
2007
2033
  i0.ɵɵelementEnd()();
2008
2034
  } if (rf & 2) {
2009
2035
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -2015,37 +2041,37 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_
2015
2041
  i0.ɵɵconditional(ctx_r1.EditMode ? 32 : 33);
2016
2042
  } }
2017
2043
  function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
2018
- const _r9 = i0.ɵɵgetCurrentView();
2019
- i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_0_Template, 2, 2, "div", 46);
2020
- i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_1_Template, 4, 3, "div", 47);
2044
+ const _r10 = i0.ɵɵgetCurrentView();
2045
+ i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_0_Template, 3, 4, "div", 51);
2046
+ i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_1_Template, 4, 3, "div", 52);
2021
2047
  i0.ɵɵconditionalCreate(2, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_2_Template, 4, 13);
2022
- i0.ɵɵelementStart(3, "div", 48);
2023
- i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Template, 6, 4, "mj-accordion-panel", 49);
2024
- i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Template, 5, 3, "mj-accordion-panel", 50);
2025
- i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template, 19, 13, "mj-accordion-panel", 51);
2026
- i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Template, 15, 5, "mj-accordion-panel", 52);
2027
- i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Template, 8, 3, "mj-accordion-panel", 53);
2028
- i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Template, 10, 4, "mj-accordion-panel", 54);
2029
- i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template, 35, 14, "mj-accordion-panel", 55);
2030
- i0.ɵɵelementStart(11, "mj-accordion-panel", 56);
2031
- i0.ɵɵtemplate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_12_Template, 2, 0, "ng-template", 57);
2032
- i0.ɵɵelementStart(13, "div", 58)(14, "div", 59)(15, "div", 60);
2048
+ i0.ɵɵelementStart(3, "div", 53);
2049
+ i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_4_Template, 6, 4, "mj-accordion-panel", 54);
2050
+ i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_5_Template, 5, 3, "mj-accordion-panel", 55);
2051
+ i0.ɵɵconditionalCreate(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_6_Template, 19, 13, "mj-accordion-panel", 56);
2052
+ i0.ɵɵconditionalCreate(7, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_7_Template, 15, 5, "mj-accordion-panel", 57);
2053
+ i0.ɵɵconditionalCreate(8, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_8_Template, 8, 3, "mj-accordion-panel", 58);
2054
+ i0.ɵɵconditionalCreate(9, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_9_Template, 10, 4, "mj-accordion-panel", 59);
2055
+ i0.ɵɵconditionalCreate(10, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_10_Template, 35, 14, "mj-accordion-panel", 60);
2056
+ i0.ɵɵelementStart(11, "mj-accordion-panel", 61);
2057
+ i0.ɵɵtemplate(12, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_12_Template, 2, 0, "ng-template", 62);
2058
+ i0.ɵɵelementStart(13, "div", 63)(14, "div", 64)(15, "div", 65);
2033
2059
  i0.ɵɵtext(16, " Configure how this agent handles data payloads, path routing, and validation between parent and child agents. ");
2034
2060
  i0.ɵɵelementEnd()();
2035
- i0.ɵɵelementStart(17, "div", 61)(18, "h3", 62);
2036
- i0.ɵɵelement(19, "i", 63);
2061
+ i0.ɵɵelementStart(17, "div", 66)(18, "h3", 67);
2062
+ i0.ɵɵelement(19, "i", 68);
2037
2063
  i0.ɵɵtext(20, " Payload Scope ");
2038
2064
  i0.ɵɵelementEnd();
2039
- i0.ɵɵelementStart(21, "div", 64)(22, "div", 65)(23, "label", 66);
2065
+ i0.ɵɵelementStart(21, "div", 69)(22, "div", 70)(23, "label", 71);
2040
2066
  i0.ɵɵtext(24, "Payload Scope Path");
2041
2067
  i0.ɵɵelementEnd();
2042
- i0.ɵɵelementStart(25, "p", 67);
2068
+ i0.ɵɵelementStart(25, "p", 72);
2043
2069
  i0.ɵɵtext(26, " Specify a path within the parent payload that this sub-agent should operate on. Leave empty to receive the entire payload. ");
2044
2070
  i0.ɵɵelementEnd()();
2045
- i0.ɵɵelementStart(27, "div", 68);
2046
- i0.ɵɵelement(28, "mj-form-field", 69);
2047
- i0.ɵɵelementStart(29, "div", 70);
2048
- i0.ɵɵelement(30, "i", 71);
2071
+ i0.ɵɵelementStart(27, "div", 73);
2072
+ i0.ɵɵelement(28, "mj-form-field", 74);
2073
+ i0.ɵɵelementStart(29, "div", 75);
2074
+ i0.ɵɵelement(30, "i", 76);
2049
2075
  i0.ɵɵelementStart(31, "span");
2050
2076
  i0.ɵɵtext(32, "Example: ");
2051
2077
  i0.ɵɵelementStart(33, "code");
@@ -2055,24 +2081,24 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template(rf,
2055
2081
  i0.ɵɵelementStart(36, "code");
2056
2082
  i0.ɵɵtext(37, "/analysis/results");
2057
2083
  i0.ɵɵelementEnd()()()()()();
2058
- i0.ɵɵelementStart(38, "div", 61)(39, "h3", 62);
2059
- i0.ɵɵelement(40, "i", 72);
2084
+ i0.ɵɵelementStart(38, "div", 66)(39, "h3", 67);
2085
+ i0.ɵɵelement(40, "i", 77);
2060
2086
  i0.ɵɵtext(41, " Path Configuration ");
2061
2087
  i0.ɵɵelementEnd();
2062
- i0.ɵɵelementStart(42, "div", 73)(43, "div", 74)(44, "div", 75)(45, "div", 76);
2063
- i0.ɵɵelement(46, "i", 77);
2088
+ i0.ɵɵelementStart(42, "div", 78)(43, "div", 79)(44, "div", 80)(45, "div", 81);
2089
+ i0.ɵɵelement(46, "i", 82);
2064
2090
  i0.ɵɵelementEnd();
2065
- i0.ɵɵelementStart(47, "div", 78)(48, "h4");
2091
+ i0.ɵɵelementStart(47, "div", 83)(48, "h4");
2066
2092
  i0.ɵɵtext(49, "Downstream Paths");
2067
2093
  i0.ɵɵelementEnd();
2068
2094
  i0.ɵɵelementStart(50, "p");
2069
2095
  i0.ɵɵtext(51, "JSON array of paths to pass to sub-agents");
2070
2096
  i0.ɵɵelementEnd()()();
2071
- i0.ɵɵelementStart(52, "div", 79)(53, "div", 80)(54, "mj-code-editor", 81);
2072
- i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_54_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadDownstreamPaths", $event)); });
2097
+ i0.ɵɵelementStart(52, "div", 84)(53, "div", 85)(54, "mj-code-editor", 86);
2098
+ i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_54_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadDownstreamPaths", $event)); });
2073
2099
  i0.ɵɵelementEnd()();
2074
- i0.ɵɵelementStart(55, "div", 82);
2075
- i0.ɵɵelement(56, "i", 83);
2100
+ i0.ɵɵelementStart(55, "div", 87);
2101
+ i0.ɵɵelement(56, "i", 88);
2076
2102
  i0.ɵɵtext(57, " Use ");
2077
2103
  i0.ɵɵelementStart(58, "code");
2078
2104
  i0.ɵɵtext(59, "[\"*\"]");
@@ -2081,271 +2107,271 @@ function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template(rf,
2081
2107
  i0.ɵɵelementStart(61, "code");
2082
2108
  i0.ɵɵtext(62, "[\"user.id\", \"order.*\"]");
2083
2109
  i0.ɵɵelementEnd()()()();
2084
- i0.ɵɵelementStart(63, "div", 74)(64, "div", 75)(65, "div", 84);
2085
- i0.ɵɵelement(66, "i", 85);
2110
+ i0.ɵɵelementStart(63, "div", 79)(64, "div", 80)(65, "div", 89);
2111
+ i0.ɵɵelement(66, "i", 90);
2086
2112
  i0.ɵɵelementEnd();
2087
- i0.ɵɵelementStart(67, "div", 78)(68, "h4");
2113
+ i0.ɵɵelementStart(67, "div", 83)(68, "h4");
2088
2114
  i0.ɵɵtext(69, "Upstream Paths");
2089
2115
  i0.ɵɵelementEnd();
2090
2116
  i0.ɵɵelementStart(70, "p");
2091
2117
  i0.ɵɵtext(71, "JSON array of paths sub-agents can write back");
2092
2118
  i0.ɵɵelementEnd()()();
2093
- i0.ɵɵelementStart(72, "div", 79)(73, "div", 80)(74, "mj-code-editor", 81);
2094
- i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_74_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadUpstreamPaths", $event)); });
2119
+ i0.ɵɵelementStart(72, "div", 84)(73, "div", 85)(74, "mj-code-editor", 86);
2120
+ i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_74_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadUpstreamPaths", $event)); });
2095
2121
  i0.ɵɵelementEnd()();
2096
- i0.ɵɵelementStart(75, "div", 82);
2097
- i0.ɵɵelement(76, "i", 83);
2122
+ i0.ɵɵelementStart(75, "div", 87);
2123
+ i0.ɵɵelement(76, "i", 88);
2098
2124
  i0.ɵɵtext(77, " Use ");
2099
2125
  i0.ɵɵelementStart(78, "code");
2100
2126
  i0.ɵɵtext(79, "[\"*\"]");
2101
2127
  i0.ɵɵelementEnd();
2102
2128
  i0.ɵɵtext(80, " to allow all writes or limit to specific paths ");
2103
2129
  i0.ɵɵelementEnd()()();
2104
- i0.ɵɵelementStart(81, "div", 74)(82, "div", 75)(83, "div", 86);
2105
- i0.ɵɵelement(84, "i", 87);
2130
+ i0.ɵɵelementStart(81, "div", 79)(82, "div", 80)(83, "div", 91);
2131
+ i0.ɵɵelement(84, "i", 92);
2106
2132
  i0.ɵɵelementEnd();
2107
- i0.ɵɵelementStart(85, "div", 78)(86, "h4");
2133
+ i0.ɵɵelementStart(85, "div", 83)(86, "h4");
2108
2134
  i0.ɵɵtext(87, "Self Read Paths");
2109
2135
  i0.ɵɵelementEnd();
2110
2136
  i0.ɵɵelementStart(88, "p");
2111
2137
  i0.ɵɵtext(89, "JSON array of paths this agent can read");
2112
2138
  i0.ɵɵelementEnd()()();
2113
- i0.ɵɵelementStart(90, "div", 79)(91, "div", 80)(92, "mj-code-editor", 81);
2114
- i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_92_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfReadPaths", $event)); });
2139
+ i0.ɵɵelementStart(90, "div", 84)(91, "div", 85)(92, "mj-code-editor", 86);
2140
+ i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_92_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfReadPaths", $event)); });
2115
2141
  i0.ɵɵelementEnd()();
2116
- i0.ɵɵelementStart(93, "div", 82);
2117
- i0.ɵɵelement(94, "i", 83);
2142
+ i0.ɵɵelementStart(93, "div", 87);
2143
+ i0.ɵɵelement(94, "i", 88);
2118
2144
  i0.ɵɵtext(95, " Paths this agent's prompts can read from the payload ");
2119
2145
  i0.ɵɵelementEnd()()();
2120
- i0.ɵɵelementStart(96, "div", 74)(97, "div", 75)(98, "div", 88);
2121
- i0.ɵɵelement(99, "i", 89);
2146
+ i0.ɵɵelementStart(96, "div", 79)(97, "div", 80)(98, "div", 93);
2147
+ i0.ɵɵelement(99, "i", 94);
2122
2148
  i0.ɵɵelementEnd();
2123
- i0.ɵɵelementStart(100, "div", 78)(101, "h4");
2149
+ i0.ɵɵelementStart(100, "div", 83)(101, "h4");
2124
2150
  i0.ɵɵtext(102, "Self Write Paths");
2125
2151
  i0.ɵɵelementEnd();
2126
2152
  i0.ɵɵelementStart(103, "p");
2127
2153
  i0.ɵɵtext(104, "JSON array of paths this agent can write to");
2128
2154
  i0.ɵɵelementEnd()()();
2129
- i0.ɵɵelementStart(105, "div", 79)(106, "div", 80)(107, "mj-code-editor", 81);
2130
- i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_107_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfWritePaths", $event)); });
2155
+ i0.ɵɵelementStart(105, "div", 84)(106, "div", 85)(107, "mj-code-editor", 86);
2156
+ i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_107_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("PayloadSelfWritePaths", $event)); });
2131
2157
  i0.ɵɵelementEnd()();
2132
- i0.ɵɵelementStart(108, "div", 82);
2133
- i0.ɵɵelement(109, "i", 83);
2158
+ i0.ɵɵelementStart(108, "div", 87);
2159
+ i0.ɵɵelement(109, "i", 88);
2134
2160
  i0.ɵɵtext(110, " Paths this agent's prompts can write back to the payload ");
2135
2161
  i0.ɵɵelementEnd()()()()();
2136
- i0.ɵɵelementStart(111, "div", 61)(112, "h3", 62);
2137
- i0.ɵɵelement(113, "i", 90);
2162
+ i0.ɵɵelementStart(111, "div", 66)(112, "h3", 67);
2163
+ i0.ɵɵelement(113, "i", 95);
2138
2164
  i0.ɵɵtext(114, " Final Payload Validation ");
2139
2165
  i0.ɵɵelementEnd();
2140
- i0.ɵɵelementStart(115, "div", 91)(116, "div", 92)(117, "div", 93)(118, "label", 94);
2166
+ i0.ɵɵelementStart(115, "div", 96)(116, "div", 97)(117, "div", 98)(118, "label", 99);
2141
2167
  i0.ɵɵtext(119, "Validation Mode");
2142
2168
  i0.ɵɵelementEnd();
2143
- i0.ɵɵelementStart(120, "p", 95);
2169
+ i0.ɵɵelementStart(120, "p", 100);
2144
2170
  i0.ɵɵtext(121, "How to handle validation failures");
2145
2171
  i0.ɵɵelementEnd();
2146
- i0.ɵɵelement(122, "mj-form-field", 96);
2172
+ i0.ɵɵelement(122, "mj-form-field", 101);
2147
2173
  i0.ɵɵelementEnd();
2148
- i0.ɵɵelementStart(123, "div", 93)(124, "label", 94);
2174
+ i0.ɵɵelementStart(123, "div", 98)(124, "label", 99);
2149
2175
  i0.ɵɵtext(125, "Max Retries");
2150
2176
  i0.ɵɵelementEnd();
2151
- i0.ɵɵelementStart(126, "p", 95);
2177
+ i0.ɵɵelementStart(126, "p", 100);
2152
2178
  i0.ɵɵtext(127, "Maximum validation retry attempts");
2153
2179
  i0.ɵɵelementEnd();
2154
- i0.ɵɵelement(128, "mj-form-field", 97);
2180
+ i0.ɵɵelement(128, "mj-form-field", 102);
2155
2181
  i0.ɵɵelementEnd()();
2156
- i0.ɵɵelementStart(129, "div", 98)(130, "label", 99);
2157
- i0.ɵɵelement(131, "i", 100);
2182
+ i0.ɵɵelementStart(129, "div", 103)(130, "label", 104);
2183
+ i0.ɵɵelement(131, "i", 105);
2158
2184
  i0.ɵɵtext(132, " Validation Schema ");
2159
2185
  i0.ɵɵelementEnd();
2160
- i0.ɵɵelementStart(133, "p", 101);
2186
+ i0.ɵɵelementStart(133, "p", 106);
2161
2187
  i0.ɵɵtext(134, " JSON schema or validation rules for the final payload structure ");
2162
2188
  i0.ɵɵelementEnd();
2163
- i0.ɵɵelementStart(135, "div", 102)(136, "mj-code-editor", 103);
2164
- i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_136_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("FinalPayloadValidation", $event)); });
2189
+ i0.ɵɵelementStart(135, "div", 107)(136, "mj-code-editor", 108);
2190
+ i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_code_editor_valueChange_136_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updatePayloadField("FinalPayloadValidation", $event)); });
2165
2191
  i0.ɵɵelementEnd()()()()()()();
2166
- i0.ɵɵelementStart(137, "mj-accordion-panel", 104);
2167
- i0.ɵɵtemplate(138, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_138_Template, 2, 0, "ng-template", 57);
2168
- i0.ɵɵelementStart(139, "div", 58)(140, "div", 59)(141, "div", 60);
2192
+ i0.ɵɵelementStart(137, "mj-accordion-panel", 109);
2193
+ i0.ɵɵtemplate(138, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_138_Template, 2, 0, "ng-template", 62);
2194
+ i0.ɵɵelementStart(139, "div", 63)(140, "div", 64)(141, "div", 65);
2169
2195
  i0.ɵɵtext(142, " Set limits to prevent runaway agent executions and control resource usage. ");
2170
2196
  i0.ɵɵelementEnd()();
2171
- i0.ɵɵelementStart(143, "div", 105);
2172
- i0.ɵɵelement(144, "mj-form-field", 106)(145, "mj-form-field", 107)(146, "mj-form-field", 108)(147, "mj-form-field", 109);
2197
+ i0.ɵɵelementStart(143, "div", 110);
2198
+ i0.ɵɵelement(144, "mj-form-field", 111)(145, "mj-form-field", 112)(146, "mj-form-field", 113)(147, "mj-form-field", 114);
2173
2199
  i0.ɵɵelementEnd()()();
2174
- i0.ɵɵelementStart(148, "mj-accordion-panel", 110);
2175
- i0.ɵɵtemplate(149, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_149_Template, 2, 0, "ng-template", 57);
2176
- i0.ɵɵelementStart(150, "div", 58)(151, "div", 59)(152, "div", 60);
2200
+ i0.ɵɵelementStart(148, "mj-accordion-panel", 115);
2201
+ i0.ɵɵtemplate(149, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_ng_template_149_Template, 2, 0, "ng-template", 62);
2202
+ i0.ɵɵelementStart(150, "div", 63)(151, "div", 64)(152, "div", 65);
2177
2203
  i0.ɵɵtext(153, " Configure agent behavior, execution settings, and advanced features. ");
2178
2204
  i0.ɵɵelementEnd()();
2179
- i0.ɵɵelementStart(154, "div", 111)(155, "h3", 112);
2180
- i0.ɵɵelement(156, "i", 113);
2205
+ i0.ɵɵelementStart(154, "div", 116)(155, "h3", 117);
2206
+ i0.ɵɵelement(156, "i", 118);
2181
2207
  i0.ɵɵtext(157, " Identity & Behavior ");
2182
2208
  i0.ɵɵelementEnd();
2183
- i0.ɵɵelementStart(158, "div", 114)(159, "div", 115)(160, "div", 116)(161, "div", 117);
2184
- i0.ɵɵelement(162, "i", 118);
2209
+ i0.ɵɵelementStart(158, "div", 119)(159, "div", 120)(160, "div", 121)(161, "div", 122);
2210
+ i0.ɵɵelement(162, "i", 123);
2185
2211
  i0.ɵɵelementEnd();
2186
- i0.ɵɵelementStart(163, "div", 119)(164, "h4");
2212
+ i0.ɵɵelementStart(163, "div", 124)(164, "h4");
2187
2213
  i0.ɵɵtext(165, "Agent Status");
2188
2214
  i0.ɵɵelementEnd();
2189
2215
  i0.ɵɵelementStart(166, "p");
2190
2216
  i0.ɵɵtext(167, "Current availability and operational status");
2191
2217
  i0.ɵɵelementEnd()()();
2192
- i0.ɵɵelementStart(168, "div", 120);
2193
- i0.ɵɵconditionalCreate(169, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_169_Template, 1, 3, "mj-dropdown", 121)(170, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_170_Template, 2, 1, "span", 122);
2218
+ i0.ɵɵelementStart(168, "div", 125);
2219
+ i0.ɵɵconditionalCreate(169, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_169_Template, 1, 3, "mj-dropdown", 126)(170, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_170_Template, 2, 1, "span", 127);
2194
2220
  i0.ɵɵelementEnd()();
2195
- i0.ɵɵelementStart(171, "div", 115)(172, "div", 116)(173, "div", 117);
2196
- i0.ɵɵelement(174, "i", 30);
2221
+ i0.ɵɵelementStart(171, "div", 120)(172, "div", 121)(173, "div", 122);
2222
+ i0.ɵɵelement(174, "i", 32);
2197
2223
  i0.ɵɵelementEnd();
2198
- i0.ɵɵelementStart(175, "div", 119)(176, "h4");
2224
+ i0.ɵɵelementStart(175, "div", 124)(176, "h4");
2199
2225
  i0.ɵɵtext(177, "Agent Type");
2200
2226
  i0.ɵɵelementEnd();
2201
2227
  i0.ɵɵelementStart(178, "p");
2202
2228
  i0.ɵɵtext(179, "Category and system-level behavior");
2203
2229
  i0.ɵɵelementEnd()()();
2204
- i0.ɵɵelementStart(180, "div", 120);
2205
- i0.ɵɵconditionalCreate(181, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_181_Template, 1, 3, "mj-dropdown", 123)(182, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_182_Template, 2, 1, "span", 122);
2230
+ i0.ɵɵelementStart(180, "div", 125);
2231
+ i0.ɵɵconditionalCreate(181, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_181_Template, 1, 3, "mj-dropdown", 128)(182, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_182_Template, 2, 1, "span", 127);
2206
2232
  i0.ɵɵelementEnd()();
2207
- i0.ɵɵelementStart(183, "div", 115)(184, "div", 116)(185, "div", 117);
2208
- i0.ɵɵelement(186, "i", 124);
2233
+ i0.ɵɵelementStart(183, "div", 120)(184, "div", 121)(185, "div", 122);
2234
+ i0.ɵɵelement(186, "i", 129);
2209
2235
  i0.ɵɵelementEnd();
2210
- i0.ɵɵelementStart(187, "div", 119)(188, "h4");
2236
+ i0.ɵɵelementStart(187, "div", 124)(188, "h4");
2211
2237
  i0.ɵɵtext(189, "Category");
2212
2238
  i0.ɵɵelementEnd();
2213
2239
  i0.ɵɵelementStart(190, "p");
2214
2240
  i0.ɵɵtext(191, "Organizational category for this agent");
2215
2241
  i0.ɵɵelementEnd()()();
2216
- i0.ɵɵelementStart(192, "div", 120);
2217
- i0.ɵɵconditionalCreate(193, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_193_Template, 1, 4, "mj-tree-dropdown", 125)(194, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_194_Template, 2, 1, "span", 122);
2242
+ i0.ɵɵelementStart(192, "div", 125);
2243
+ i0.ɵɵconditionalCreate(193, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_193_Template, 1, 4, "mj-tree-dropdown", 130)(194, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_194_Template, 2, 1, "span", 127);
2218
2244
  i0.ɵɵelementEnd()();
2219
- i0.ɵɵelementStart(195, "div", 115)(196, "div", 116)(197, "div", 117);
2220
- i0.ɵɵelement(198, "i", 126);
2245
+ i0.ɵɵelementStart(195, "div", 120)(196, "div", 121)(197, "div", 122);
2246
+ i0.ɵɵelement(198, "i", 131);
2221
2247
  i0.ɵɵelementEnd();
2222
- i0.ɵɵelementStart(199, "div", 119)(200, "h4");
2248
+ i0.ɵɵelementStart(199, "div", 124)(200, "h4");
2223
2249
  i0.ɵɵtext(201, "Expose as Action");
2224
2250
  i0.ɵɵelementEnd();
2225
2251
  i0.ɵɵelementStart(202, "p");
2226
2252
  i0.ɵɵtext(203, "Make available as an action for other agents");
2227
2253
  i0.ɵɵelementEnd()()();
2228
- i0.ɵɵelementStart(204, "div", 120);
2229
- i0.ɵɵelement(205, "mj-form-field", 127);
2254
+ i0.ɵɵelementStart(204, "div", 125);
2255
+ i0.ɵɵelement(205, "mj-form-field", 132);
2230
2256
  i0.ɵɵelementEnd()();
2231
- i0.ɵɵelementStart(206, "div", 128)(207, "div", 116)(208, "div", 117);
2232
- i0.ɵɵelement(209, "i", 129);
2257
+ i0.ɵɵelementStart(206, "div", 133)(207, "div", 121)(208, "div", 122);
2258
+ i0.ɵɵelement(209, "i", 134);
2233
2259
  i0.ɵɵelementEnd();
2234
- i0.ɵɵelementStart(210, "div", 119)(211, "h4");
2260
+ i0.ɵɵelementStart(210, "div", 124)(211, "h4");
2235
2261
  i0.ɵɵtext(212, "Description");
2236
2262
  i0.ɵɵelementEnd();
2237
2263
  i0.ɵɵelementStart(213, "p");
2238
2264
  i0.ɵɵtext(214, "Detailed agent description and purpose");
2239
2265
  i0.ɵɵelementEnd()()();
2240
- i0.ɵɵelementStart(215, "div", 120);
2241
- i0.ɵɵelement(216, "mj-form-field", 130);
2266
+ i0.ɵɵelementStart(215, "div", 125);
2267
+ i0.ɵɵelement(216, "mj-form-field", 135);
2242
2268
  i0.ɵɵelementEnd()()()();
2243
- i0.ɵɵelementStart(217, "div", 111)(218, "h3", 112);
2244
- i0.ɵɵelement(219, "i", 33);
2269
+ i0.ɵɵelementStart(217, "div", 116)(218, "h3", 117);
2270
+ i0.ɵɵelement(219, "i", 35);
2245
2271
  i0.ɵɵtext(220, " Execution Settings ");
2246
2272
  i0.ɵɵelementEnd();
2247
- i0.ɵɵelementStart(221, "div", 114)(222, "div", 115)(223, "div", 116)(224, "div", 117);
2248
- i0.ɵɵelement(225, "i", 131);
2273
+ i0.ɵɵelementStart(221, "div", 119)(222, "div", 120)(223, "div", 121)(224, "div", 122);
2274
+ i0.ɵɵelement(225, "i", 136);
2249
2275
  i0.ɵɵelementEnd();
2250
- i0.ɵɵelementStart(226, "div", 119)(227, "h4");
2276
+ i0.ɵɵelementStart(226, "div", 124)(227, "h4");
2251
2277
  i0.ɵɵtext(228, "Execution Mode");
2252
2278
  i0.ɵɵelementEnd();
2253
2279
  i0.ɵɵelementStart(229, "p");
2254
2280
  i0.ɵɵtext(230, "How sub-agents are executed");
2255
2281
  i0.ɵɵelementEnd()()();
2256
- i0.ɵɵelementStart(231, "div", 120);
2257
- i0.ɵɵelement(232, "mj-form-field", 132);
2282
+ i0.ɵɵelementStart(231, "div", 125);
2283
+ i0.ɵɵelement(232, "mj-form-field", 137);
2258
2284
  i0.ɵɵelementEnd()();
2259
- i0.ɵɵelementStart(233, "div", 115)(234, "div", 116)(235, "div", 117);
2260
- i0.ɵɵelement(236, "i", 133);
2285
+ i0.ɵɵelementStart(233, "div", 120)(234, "div", 121)(235, "div", 122);
2286
+ i0.ɵɵelement(236, "i", 138);
2261
2287
  i0.ɵɵelementEnd();
2262
- i0.ɵɵelementStart(237, "div", 119)(238, "h4");
2288
+ i0.ɵɵelementStart(237, "div", 124)(238, "h4");
2263
2289
  i0.ɵɵtext(239, "Execution Order");
2264
2290
  i0.ɵɵelementEnd();
2265
2291
  i0.ɵɵelementStart(240, "p");
2266
2292
  i0.ɵɵtext(241, "Order when run with siblings");
2267
2293
  i0.ɵɵelementEnd()()();
2268
- i0.ɵɵelementStart(242, "div", 120);
2269
- i0.ɵɵelement(243, "mj-form-field", 134);
2294
+ i0.ɵɵelementStart(242, "div", 125);
2295
+ i0.ɵɵelement(243, "mj-form-field", 139);
2270
2296
  i0.ɵɵelementEnd()();
2271
- i0.ɵɵelementStart(244, "div", 115)(245, "div", 116)(246, "div", 117);
2272
- i0.ɵɵelement(247, "i", 135);
2297
+ i0.ɵɵelementStart(244, "div", 120)(245, "div", 121)(246, "div", 122);
2298
+ i0.ɵɵelement(247, "i", 140);
2273
2299
  i0.ɵɵelementEnd();
2274
- i0.ɵɵelementStart(248, "div", 119)(249, "h4");
2300
+ i0.ɵɵelementStart(248, "div", 124)(249, "h4");
2275
2301
  i0.ɵɵtext(250, "Default Effort Level");
2276
2302
  i0.ɵɵelementEnd();
2277
2303
  i0.ɵɵelementStart(251, "p");
2278
2304
  i0.ɵɵtext(252, "Default effort level for all prompts (1-100)");
2279
2305
  i0.ɵɵelementEnd()()();
2280
- i0.ɵɵelementStart(253, "div", 120);
2281
- i0.ɵɵelement(254, "mj-form-field", 136);
2282
- i0.ɵɵelementStart(255, "div", 137);
2283
- i0.ɵɵelement(256, "i", 83);
2306
+ i0.ɵɵelementStart(253, "div", 125);
2307
+ i0.ɵɵelement(254, "mj-form-field", 141);
2308
+ i0.ɵɵelementStart(255, "div", 142);
2309
+ i0.ɵɵelement(256, "i", 88);
2284
2310
  i0.ɵɵtext(257, " Higher values request more thorough reasoning (1=minimal, 100=maximum) ");
2285
2311
  i0.ɵɵelementEnd()()();
2286
- i0.ɵɵelementStart(258, "div", 115)(259, "div", 116)(260, "div", 117);
2287
- i0.ɵɵelement(261, "i", 100);
2312
+ i0.ɵɵelementStart(258, "div", 120)(259, "div", 121)(260, "div", 122);
2313
+ i0.ɵɵelement(261, "i", 105);
2288
2314
  i0.ɵɵelementEnd();
2289
- i0.ɵɵelementStart(262, "div", 119)(263, "h4");
2315
+ i0.ɵɵelementStart(262, "div", 124)(263, "h4");
2290
2316
  i0.ɵɵtext(264, "Driver Class");
2291
2317
  i0.ɵɵelementEnd();
2292
2318
  i0.ɵɵelementStart(265, "p");
2293
2319
  i0.ɵɵtext(266, "Custom implementation class");
2294
2320
  i0.ɵɵelementEnd()()();
2295
- i0.ɵɵelementStart(267, "div", 120);
2296
- i0.ɵɵelement(268, "mj-form-field", 138);
2321
+ i0.ɵɵelementStart(267, "div", 125);
2322
+ i0.ɵɵelement(268, "mj-form-field", 143);
2297
2323
  i0.ɵɵelementEnd()()()();
2298
- i0.ɵɵelementStart(269, "div", 111)(270, "h3", 112);
2299
- i0.ɵɵelement(271, "i", 139);
2324
+ i0.ɵɵelementStart(269, "div", 116)(270, "h3", 117);
2325
+ i0.ɵɵelement(271, "i", 144);
2300
2326
  i0.ɵɵtext(272, " Visual Identity ");
2301
2327
  i0.ɵɵelementEnd();
2302
- i0.ɵɵelementStart(273, "div", 114)(274, "div", 115)(275, "div", 116)(276, "div", 117);
2303
- i0.ɵɵelement(277, "i", 140);
2328
+ i0.ɵɵelementStart(273, "div", 119)(274, "div", 120)(275, "div", 121)(276, "div", 122);
2329
+ i0.ɵɵelement(277, "i", 145);
2304
2330
  i0.ɵɵelementEnd();
2305
- i0.ɵɵelementStart(278, "div", 119)(279, "h4");
2331
+ i0.ɵɵelementStart(278, "div", 124)(279, "h4");
2306
2332
  i0.ɵɵtext(280, "Icon Class");
2307
2333
  i0.ɵɵelementEnd();
2308
2334
  i0.ɵɵelementStart(281, "p");
2309
2335
  i0.ɵɵtext(282, "Font Awesome icon class");
2310
2336
  i0.ɵɵelementEnd()()();
2311
- i0.ɵɵelementStart(283, "div", 120);
2312
- i0.ɵɵelement(284, "mj-form-field", 141);
2313
- i0.ɵɵelementStart(285, "div", 137);
2314
- i0.ɵɵelement(286, "i", 83);
2337
+ i0.ɵɵelementStart(283, "div", 125);
2338
+ i0.ɵɵelement(284, "mj-form-field", 146);
2339
+ i0.ɵɵelementStart(285, "div", 142);
2340
+ i0.ɵɵelement(286, "i", 88);
2315
2341
  i0.ɵɵtext(287, " Example: ");
2316
2342
  i0.ɵɵelementStart(288, "code");
2317
2343
  i0.ɵɵtext(289, "fa-solid fa-robot");
2318
2344
  i0.ɵɵelementEnd()()()();
2319
- i0.ɵɵelementStart(290, "div", 115)(291, "div", 116)(292, "div", 117);
2320
- i0.ɵɵelement(293, "i", 142);
2345
+ i0.ɵɵelementStart(290, "div", 120)(291, "div", 121)(292, "div", 122);
2346
+ i0.ɵɵelement(293, "i", 147);
2321
2347
  i0.ɵɵelementEnd();
2322
- i0.ɵɵelementStart(294, "div", 119)(295, "h4");
2348
+ i0.ɵɵelementStart(294, "div", 124)(295, "h4");
2323
2349
  i0.ɵɵtext(296, "Logo URL");
2324
2350
  i0.ɵɵelementEnd();
2325
2351
  i0.ɵɵelementStart(297, "p");
2326
2352
  i0.ɵɵtext(298, "URL for agent logo image");
2327
2353
  i0.ɵɵelementEnd()()();
2328
- i0.ɵɵelementStart(299, "div", 120);
2329
- i0.ɵɵelement(300, "mj-form-field", 143);
2330
- i0.ɵɵelementStart(301, "div", 137);
2331
- i0.ɵɵelement(302, "i", 83);
2354
+ i0.ɵɵelementStart(299, "div", 125);
2355
+ i0.ɵɵelement(300, "mj-form-field", 148);
2356
+ i0.ɵɵelementStart(301, "div", 142);
2357
+ i0.ɵɵelement(302, "i", 88);
2332
2358
  i0.ɵɵtext(303, " Takes precedence over Icon Class ");
2333
2359
  i0.ɵɵelementEnd()()()()();
2334
- i0.ɵɵelementStart(304, "div", 111)(305, "h3", 112);
2335
- i0.ɵɵelement(306, "i", 144);
2360
+ i0.ɵɵelementStart(304, "div", 116)(305, "h3", 117);
2361
+ i0.ɵɵelement(306, "i", 149);
2336
2362
  i0.ɵɵtext(307, " Context Compression ");
2337
2363
  i0.ɵɵelementEnd();
2338
- i0.ɵɵelementStart(308, "div", 114)(309, "div", 128)(310, "div", 116)(311, "div", 117);
2339
- i0.ɵɵelement(312, "i", 118);
2364
+ i0.ɵɵelementStart(308, "div", 119)(309, "div", 133)(310, "div", 121)(311, "div", 122);
2365
+ i0.ɵɵelement(312, "i", 123);
2340
2366
  i0.ɵɵelementEnd();
2341
- i0.ɵɵelementStart(313, "div", 119)(314, "h4");
2367
+ i0.ɵɵelementStart(313, "div", 124)(314, "h4");
2342
2368
  i0.ɵɵtext(315, "Enable Context Compression");
2343
2369
  i0.ɵɵelementEnd();
2344
2370
  i0.ɵɵelementStart(316, "p");
2345
2371
  i0.ɵɵtext(317, "Automatically compress conversation context when message threshold is reached");
2346
2372
  i0.ɵɵelementEnd()()();
2347
- i0.ɵɵelementStart(318, "div", 120)(319, "mj-form-field", 145);
2348
- i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_form_field_valueChange_319_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContextCompressionToggle($event)); });
2373
+ i0.ɵɵelementStart(318, "div", 125)(319, "mj-form-field", 150);
2374
+ i0.ɵɵlistener("valueChange", function MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template_mj_form_field_valueChange_319_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onContextCompressionToggle($event)); });
2349
2375
  i0.ɵɵelementEnd()()();
2350
2376
  i0.ɵɵconditionalCreate(320, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Conditional_320_Template, 34, 5);
2351
2377
  i0.ɵɵelementEnd()()()()();
@@ -2434,7 +2460,7 @@ function MJAIAgentFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf
2434
2460
  i0.ɵɵelementStart(0, "mj-record-form-container", 4);
2435
2461
  i0.ɵɵlistener("Navigate", function MJAIAgentFormComponentExtended_Conditional_0_Template_mj_record_form_container_Navigate_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFormNavigate($event)); })("DeleteRequested", function MJAIAgentFormComponentExtended_Conditional_0_Template_mj_record_form_container_DeleteRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnDeleteRequested()); })("FavoriteToggled", function MJAIAgentFormComponentExtended_Conditional_0_Template_mj_record_form_container_FavoriteToggled_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnFavoriteToggled()); })("HistoryRequested", function MJAIAgentFormComponentExtended_Conditional_0_Template_mj_record_form_container_HistoryRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnHistoryRequested()); })("ListManagementRequested", function MJAIAgentFormComponentExtended_Conditional_0_Template_mj_record_form_container_ListManagementRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnListManagementRequested()); });
2436
2462
  i0.ɵɵelementStart(1, "form", 5, 0);
2437
- i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Template, 19, 6, "div", 6);
2463
+ i0.ɵɵconditionalCreate(3, MJAIAgentFormComponentExtended_Conditional_0_Conditional_3_Template, 20, 11, "div", 6);
2438
2464
  i0.ɵɵconditionalCreate(4, MJAIAgentFormComponentExtended_Conditional_0_Conditional_4_Template, 10, 3, "div", 7);
2439
2465
  i0.ɵɵconditionalCreate(5, MJAIAgentFormComponentExtended_Conditional_0_Conditional_5_Template, 2, 0, "div", 8)(6, MJAIAgentFormComponentExtended_Conditional_0_Conditional_6_Template, 321, 66);
2440
2466
  i0.ɵɵelementEnd()();
@@ -2449,9 +2475,9 @@ function MJAIAgentFormComponentExtended_Conditional_0_Template(rf, ctx) { if (rf
2449
2475
  i0.ɵɵconditional(ctx_r1.IsFormInitializing ? 5 : 6);
2450
2476
  } }
2451
2477
  function MJAIAgentFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
2452
- const _r57 = i0.ɵɵgetCurrentView();
2453
- i0.ɵɵelementStart(0, "mj-agent-permissions-dialog", 343);
2454
- i0.ɵɵlistener("Closed", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_agent_permissions_dialog_Closed_0_listener() { i0.ɵɵrestoreView(_r57); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onPermissionsDialogClosed()); })("PermissionsChanged", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_agent_permissions_dialog_PermissionsChanged_0_listener() { i0.ɵɵrestoreView(_r57); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshRelatedData()); });
2478
+ const _r58 = i0.ɵɵgetCurrentView();
2479
+ i0.ɵɵelementStart(0, "mj-agent-permissions-dialog", 349);
2480
+ i0.ɵɵlistener("Closed", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_agent_permissions_dialog_Closed_0_listener() { i0.ɵɵrestoreView(_r58); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onPermissionsDialogClosed()); })("PermissionsChanged", function MJAIAgentFormComponentExtended_Conditional_1_Template_mj_agent_permissions_dialog_PermissionsChanged_0_listener() { i0.ɵɵrestoreView(_r58); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshRelatedData()); });
2455
2481
  i0.ɵɵelementEnd();
2456
2482
  } if (rf & 2) {
2457
2483
  const ctx_r1 = i0.ɵɵnextContext();
@@ -2605,6 +2631,8 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
2605
2631
  this.ActiveFormTab = null;
2606
2632
  /** Tab chrome, recomputed only when the agent type or record identity changes. */
2607
2633
  this.FormTabs = [];
2634
+ /** Phone hero (6A): whether the summary line is expanded to show the rest of the hero. */
2635
+ this.HeroDetailsOpen = false;
2608
2636
  // === Dropdown Data ===
2609
2637
  /** Model selection mode options for the dropdown */
2610
2638
  this.ModelSelectionModes = [
@@ -3070,6 +3098,28 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
3070
3098
  this.FormTabs = plan.Tabs;
3071
3099
  this.ActiveFormTab = plan.ActiveKey;
3072
3100
  }
3101
+ /** The form tabs as `mj-section-picker` items: tab order, a numeric badge as the count. */
3102
+ get SectionPickerItems() {
3103
+ return this.FormTabs.map((t) => ({ Key: t.key, Title: t.label, Icon: t.icon, Count: typeof t.badge === 'number' ? t.badge : null }));
3104
+ }
3105
+ /** A pick from the phone section sheet; goes through OnFormTabChange. An unknown key is ignored. */
3106
+ OnSectionPicked(key) {
3107
+ if (this.FormTabs.some((t) => t.key === key))
3108
+ this.OnFormTabChange(key);
3109
+ }
3110
+ /** Toggles the phone hero between its compact identity row and the full hero. */
3111
+ ToggleHeroDetails() {
3112
+ this.HeroDetailsOpen = !this.HeroDetailsOpen;
3113
+ this.cdr.markForCheck();
3114
+ }
3115
+ /** The phone hero's one-line summary: agent type, parent, and who can run it. */
3116
+ get HeroSummary() {
3117
+ return JoinHeroSummary([
3118
+ this.record.Type ? `${this.record.Type} agent` : null,
3119
+ this.record.Parent ? `Child of ${this.record.Parent}` : null,
3120
+ this.IsOpenToEveryone ? 'Open to everyone' : 'Restricted',
3121
+ ]);
3122
+ }
3073
3123
  OnFormTabChange(key) {
3074
3124
  this.ActiveFormTab = key;
3075
3125
  this.persistPreferences();
@@ -5791,14 +5841,14 @@ let MJAIAgentFormComponentExtended = class MJAIAgentFormComponentExtended extend
5791
5841
  } if (rf & 2) {
5792
5842
  let _t;
5793
5843
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.CustomSectionContainer = _t.first);
5794
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["form", "ngForm"], ["customSectionContainer", ""], [3, "Record", "FormComponent", "ToolbarConfig", "WidthMode"], [3, "Agent"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent", "ToolbarConfig", "WidthMode"], [1, "record-form"], [1, "agent-header"], [1, "agent-header-mini"], [1, "agent-form-loading"], [1, "agent-header-content"], ["title", "Minimize header", 1, "agent-header-toggle", 3, "click"], [1, "fa-solid", "fa-chevron-up"], [1, "agent-overview"], [1, "agent-icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-info"], ["type", "text", "name", "agentName", "placeholder", "Enter agent name...", 1, "mj-input", "agent-name-input", 3, "ngModel"], [1, "agent-name"], [1, "agent-meta"], [1, "status-badge", 3, "background-color"], [1, "execution-mode"], [1, "parent-agent", "clickable", 3, "title"], [1, "agent-actions"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Refresh all data", 3, "click"], [1, "fa-solid", "fa-refresh"], ["type", "text", "name", "agentName", "placeholder", "Enter agent name...", 1, "mj-input", "agent-name-input", 3, "ngModelChange", "ngModel"], [1, "status-badge"], [1, "fa-solid", "fa-circle"], [1, "parent-agent", "clickable", 3, "click", "title"], [1, "fa-solid", "fa-sitemap"], [1, "fa-solid", "fa-external-link", 2, "margin-left", "4px", "font-size", "10px"], ["mjButton", "", "variant", "primary", "size", "lg", "title", "Run this AI agent", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], ["mjButton", "", "size", "lg", 3, "click", "title"], [1, "fa-solid"], ["title", "Expand header", 1, "agent-header-mini-expand", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "agent-header-mini-name"], [1, "agent-header-mini-status", 3, "background-color"], [1, "agent-header-mini-spacer"], ["title", "Refresh", 1, "agent-header-mini-btn", 3, "click"], [1, "agent-header-mini-status"], ["title", "Run agent", 1, "agent-header-mini-btn", "agent-header-mini-btn--primary", 3, "click", "disabled"], [1, "agent-header-mini-btn", 3, "click", "title"], ["text", "Loading agent...", "size", "medium"], [1, "agent-tabbar"], [1, "agent-pane", "agent-pane--designer", 3, "agent-pane--hidden"], [1, "form-content", "agent-pane"], ["id", "history", 3, "Expanded", "Disabled"], ["id", "actions", 3, "Expanded", "Disabled"], ["id", "subagents", 3, "Expanded", "Disabled"], ["id", "prompts", 3, "Expanded", "Disabled"], ["id", "learning", 3, "Expanded", "Disabled"], ["id", "notes", 3, "Expanded", "Disabled"], ["id", "search", 3, "Expanded"], ["id", "payload", 3, "Expanded"], ["mjAccordionTitle", ""], [1, "panel-content"], [1, "section-header"], [1, "section-description"], [1, "payload-section"], [1, "payload-section-title"], [1, "fa-solid", "fa-target"], [1, "payload-field-container"], [1, "payload-field-info"], [1, "payload-field-label"], [1, "payload-field-description"], [1, "payload-field-input"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-field-example"], [1, "fa-solid", "fa-lightbulb"], [1, "fa-solid", "fa-route"], [1, "payload-paths-grid"], [1, "payload-path-card"], [1, "payload-path-header"], [1, "payload-path-icon", "downstream"], [1, "fa-solid", "fa-arrow-down"], [1, "payload-path-info"], [1, "payload-path-content"], [1, "json-editor-container"], ["language", "json", 2, "height", "100px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "payload-path-hint"], [1, "fa-solid", "fa-info-circle"], [1, "payload-path-icon", "upstream"], [1, "fa-solid", "fa-arrow-up"], [1, "payload-path-icon", "self-read"], [1, "fa-solid", "fa-eye"], [1, "payload-path-icon", "self-write"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-shield-check"], [1, "payload-validation-container"], [1, "payload-validation-settings"], [1, "validation-field-group"], [1, "validation-field-label"], [1, "validation-field-description"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-validation-schema"], [1, "validation-schema-label"], [1, "fa-solid", "fa-code"], [1, "validation-schema-description"], [1, "validation-schema-editor"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], ["id", "guardrails", 3, "Expanded"], [1, "form-fields-grid"], ["FieldName", "MaxCostPerRun", "Type", "numerictextbox", "Caption", "Max Cost ($)", "Description", "Maximum cost per run", 3, "EditMode", "Record"], ["FieldName", "MaxTokensPerRun", "Type", "numerictextbox", "Caption", "Max Tokens", "Description", "Maximum tokens per run", 3, "EditMode", "Record"], ["FieldName", "MaxIterationsPerRun", "Type", "numerictextbox", "Caption", "Max Iterations", "Description", "Maximum prompt iterations", 3, "EditMode", "Record"], ["FieldName", "MaxTimePerRun", "Type", "numerictextbox", "Caption", "Max Time (seconds)", "Description", "Maximum execution time", 3, "EditMode", "Record"], ["id", "config", 3, "Expanded"], [1, "config-section"], [1, "config-section-title"], [1, "fa-solid", "fa-id-card"], [1, "config-grid"], [1, "config-card"], [1, "config-card-header"], [1, "config-card-icon"], [1, "fa-solid", "fa-toggle-on"], [1, "config-card-info"], [1, "config-card-content"], ["TextField", "text", "ValueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModel", "Data", "ValuePrimitive"], [1, "config-field-display"], ["TextField", "Name", "ValueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModel", "Data", "ValuePrimitive"], [1, "fa-solid", "fa-folder-tree"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-bolt"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card", "full-width"], [1, "fa-solid", "fa-align-left"], ["FieldName", "Description", "Type", "textarea", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "fa-solid", "fa-layer-group"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-sort-numeric-down"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-tachometer-alt"], ["FieldName", "DefaultPromptEffortLevel", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card-hint"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-palette"], [1, "fa-solid", "fa-icons"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-image"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "", 3, "valueChange", "EditMode", "Record"], [3, "TabChange", "Tabs", "ActiveKey"], [1, "agent-pane", "agent-pane--designer"], ["size", "medium", 3, "text"], [1, "agent-pane", "agent-pane--invocations"], [3, "RecordOpenRequested", "Provider", "AgentID", "Active", "ExposeAsAction", "ParentAgentName", "ParentAgentID"], [1, "agent-pane", "agent-pane--rubrics"], [3, "Provider", "AgentID", "Active"], [1, "panel-content", "execution-history-panel"], ["role", "tablist", 1, "history-view-toggle"], [1, "fa-solid", "fa-history"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["type", "button", 1, "history-toggle-option", 3, "click"], [1, "fa-solid", "fa-person-running"], [1, "history-toggle-count"], [1, "fa-solid", "fa-tower-broadcast"], ["text", "Loading sessions...", "size", "medium"], ["Icon", "fa-solid fa-tower-broadcast", "Title", "No Voice Sessions", "Message", "This agent hasn't participated in any realtime voice sessions yet \u2014 neither as the co-agent nor as a delegation target.", "Size", "compact"], [1, "execution-history-list"], ["title", "Open session", 1, "execution-card", "session-card"], ["title", "Open session", 1, "execution-card", "session-card", 3, "click"], [1, "execution-header"], [1, "execution-left-section"], [1, "execution-status"], [1, "status-indicator"], [1, "execution-info"], [1, "execution-title"], [1, "session-role-chip"], [1, "session-role-chip", "session-role-chip--target"], [1, "execution-date"], [1, "execution-metrics"], [1, "metric-item"], [1, "session-status-pill"], [1, "fa-solid", "fa-stopwatch"], [1, "metric-label"], [1, "metric-value"], [1, "fa-solid", "fa-plug"], [1, "fa-solid", "fa-user"], [1, "execution-actions"], ["title", "View session details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "fa-solid", "fa-bullseye"], ["text", "Loading execution history...", "size", "medium"], ["Icon", "fa-solid fa-clock-rotate-left", "Title", "No Execution History", "Message", "This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.", "Size", "compact"], [1, "execution-search-bar"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search by Run ID...", 1, "mj-input", 3, "ngModelChange", "ngModel", "ngModelOptions"], ["Variant", "no-results", "Title", "No Matching Results", "Size", "compact", 3, "Message"], [1, "execution-card", 3, "expanded"], [1, "pagination-controls"], [1, "execution-card"], [1, "execution-header", 3, "click"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], ["title", "View details", 1, "action-btn", 3, "click"], [1, "execution-expanded-content"], [1, "fa-solid", "fa-cog"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-microchip"], [1, "fa-solid", "fa-dollar-sign"], [1, "detailed-metrics"], [1, "metrics-grid"], [1, "metric-detail"], [1, "metric-info"], [1, "metric-title"], [1, "metric-data"], [1, "result-section"], [1, "error-section"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-calculator"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-file-text"], ["language", "json", 2, "max-height", "200px", "width", "100%", 3, "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["mjButton", "", "variant", "outline", 1, "page-nav-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "page-info"], [1, "fa-solid", "fa-chevron-right"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "view-all-btn", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "record-count"], [1, "loading-state"], [1, "header-actions"], ["mjButton", "", "variant", "primary", "size", "sm"], ["Icon", "fa-solid fa-bolt", "Title", "No Actions Configured", "Message", "Add actions to enable this agent to perform specific tasks and operations.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "ActionText"], [1, "entity-list"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["Icon", "fa-solid fa-bolt", "Title", "No Actions Configured", "Message", "Add actions to enable this agent to perform specific tasks and operations.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "Action", "ActionText"], [1, "entity-item", "action-item"], [1, "view-more-item"], [1, "entity-item", "action-item", 3, "click"], [1, "item-icon"], [1, "item-content"], [1, "item-title"], [1, "item-preview"], [1, "item-meta"], [1, "meta-tag"], [1, "status-tag"], [1, "item-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove action", 1, "error-action"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove action", 1, "error-action", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "view-more-item", 3, "click"], [1, "section-header", "sub-agent-filter-header"], [1, "filter-controls"], [1, "mj-button-group"], ["mjButton", "", "size", "sm", 3, "click"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-share-nodes"], ["Icon", "fa-solid fa-sitemap", "Title", "No Sub-Agents", "Message", "Sub-agents help build complex workflows through hierarchical orchestration.", "Size", "compact"], ["mjButton", "", "variant", "primary", "size", "sm", "title", "Create a new child sub-agent that shares this agent's payload", 3, "click"], ["mjButton", "", "size", "sm", "title", "Link an existing agent as a related sub-agent with payload mapping", 3, "click"], [1, "empty-state-info"], [1, "info-card"], [1, "fa-solid", "fa-link", 2, "color", "var(--mj-status-info)"], [1, "fa-solid", "fa-share-nodes", 2, "color", "var(--mj-brand-primary)"], [1, "entity-item", "sub-agent-item", 3, "child-sub-agent", "related-sub-agent"], [1, "entity-item", "sub-agent-item", 3, "click"], [1, "sub-agent-type-badge"], [1, "sub-agent-logo", 3, "src", "alt"], [1, "meta-tag", "payload-info"], [1, "fa-solid", "fa-database"], [1, "status-tag", 3, "background-color"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Configure output mapping"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Advanced settings"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "error-action", 3, "title"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Configure output mapping", 3, "click"], [1, "fa-solid", "fa-exchange-alt"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Advanced settings", 3, "click"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "error-action", 3, "click", "title"], [1, "prompt-controls"], [1, "model-selection-mode"], [1, "model-selection-label"], [1, "fa-solid", "fa-sliders"], ["name", "modelSelectionMode", "TextField", "text", "ValueField", "value", 1, "model-selection-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [1, "model-selection-value"], ["Icon", "fa-solid fa-comments", "Title", "No Prompts Configured", "Message", "Add prompts to define how this agent processes requests and generates responses.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "ActionText"], ["name", "modelSelectionMode", "TextField", "text", "ValueField", "value", 1, "model-selection-dropdown", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["Icon", "fa-solid fa-comments", "Title", "No Prompts Configured", "Message", "Add prompts to define how this agent processes requests and generates responses.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "Action", "ActionText"], [1, "entity-item", "prompt-item"], [1, "entity-item", "prompt-item", 3, "click"], [1, "fa-solid", "fa-comment-dots"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove prompt", 1, "error-action"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove prompt", 1, "error-action", 3, "click"], ["Icon", "fa-solid fa-brain", "Title", "No Learning Cycles", "Message", "Learning cycles will appear here as the agent processes requests and improves over time.", "Size", "compact"], [1, "fa-solid", "fa-brain"], [1, "entity-item", "learning-item"], [1, "entity-item", "learning-item", 3, "click"], [1, "fa-solid", "fa-calendar"], ["Icon", "fa-solid fa-sticky-note", "Title", "No Notes", "Message", "Add notes to document important information, observations, or instructions for this agent.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "ActionText"], [1, "fa-solid", "fa-sticky-note"], ["Icon", "fa-solid fa-sticky-note", "Title", "No Notes", "Message", "Add notes to document important information, observations, or instructions for this agent.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "Action", "ActionText"], [1, "entity-item", "note-item"], [1, "entity-item", "note-item", 3, "click"], [1, "agent-search-access"], [1, "agent-search-access-option"], ["type", "radio", "name", "SearchScopeAccess", "value", "All", 3, "change", "checked", "disabled"], [1, "fa-solid", "fa-globe"], [1, "agent-search-access-text"], [1, "agent-search-access-title"], [1, "agent-search-access-desc"], ["type", "radio", "name", "SearchScopeAccess", "value", "Assigned", 3, "change", "checked", "disabled"], [1, "fa-solid", "fa-user-check"], ["type", "radio", "name", "SearchScopeAccess", "value", "None", 3, "change", "checked", "disabled"], [1, "fa-solid", "fa-ban"], [1, "fa-solid", "fa-magnifying-glass"], [1, "agent-search-grid-header"], ["ChildEntityName", "MJ: AI Agent Search Scopes", "ParentFieldName", "AgentID", "AddButtonLabel", "+ Assign another scope", "EmptyMessage", "No scopes assigned yet. Assign at least one if this agent will use Scoped Search.", 3, "RowsChanged", "ParentID", "Columns", "Disabled"], [1, "agent-search-section", 2, "margin-top", "16px"], [2, "margin", "0 0 8px 0"], [1, "fa-solid", "fa-shield-halved"], [1, "section-description", 2, "margin-bottom", "8px"], [2, "color", "var(--mj-text-muted)"], [2, "color", "var(--mj-text-muted)", "font-style", "italic"], [2, "margin-bottom", "12px", "padding", "8px 12px", "background", "var(--mj-bg-surface-card)", "border", "1px solid var(--mj-border-subtle)", "border-radius", "4px"], [2, "font-weight", "600", "margin-bottom", "4px"], [2, "color", "var(--mj-text-muted)", "font-size", "0.9em"], [2, "margin", "4px 0 0 16px", "padding", "0"], [2, "font-size", "0.9em", "padding", "2px 0"], [1, "fa-solid", "fa-cogs"], ["TextField", "text", "ValueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["TextField", "Name", "ValueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "ValueChange", "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-hashtag"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-save"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "prompt-selector-container"], [1, "prompt-display"], [1, "prompt-name"], [1, "no-prompt"], [1, "prompt-actions"], ["type", "button", "mjButton", "", "variant", "outline", "size", "sm", 1, "prompt-select-btn", 3, "click"], ["type", "button", "mjButton", "", "variant", "flat", "size", "sm", "title", "Clear selection", 1, "prompt-clear-btn"], ["type", "button", "mjButton", "", "variant", "flat", "size", "sm", "title", "Clear selection", 1, "prompt-clear-btn", 3, "click"], [1, "fa-solid", "fa-times"], [3, "Closed", "PermissionsChanged", "Agent"]], template: function MJAIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
5844
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["form", "ngForm"], ["customSectionContainer", ""], [3, "Record", "FormComponent", "ToolbarConfig", "WidthMode"], [3, "Agent"], [3, "Navigate", "DeleteRequested", "FavoriteToggled", "HistoryRequested", "ListManagementRequested", "Record", "FormComponent", "ToolbarConfig", "WidthMode"], [1, "record-form"], [1, "agent-header", "phone-hero", 3, "hero-view", "hero-compact"], [1, "agent-header-mini"], [1, "agent-form-loading"], [1, "agent-header", "phone-hero"], [1, "agent-header-content"], ["title", "Minimize header", 1, "agent-header-toggle", "phone-hero-hide", 3, "click"], [1, "fa-solid", "fa-chevron-up"], [1, "agent-overview"], [1, "agent-icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [3, "class"], [1, "agent-info"], ["type", "text", "name", "agentName", "placeholder", "Enter agent name...", 1, "mj-input", "agent-name-input", 3, "ngModel"], [1, "agent-name"], [1, "agent-meta"], [1, "status-badge", 3, "background-color"], [1, "execution-mode", "phone-hero-detail"], [1, "parent-agent", "clickable", "phone-hero-detail", 3, "title"], [1, "agent-actions"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Refresh all data", 1, "phone-hero-detail", 3, "click"], [1, "fa-solid", "fa-refresh"], ["type", "button", 1, "phone-hero-summary"], ["type", "text", "name", "agentName", "placeholder", "Enter agent name...", 1, "mj-input", "agent-name-input", 3, "ngModelChange", "ngModel"], [1, "status-badge"], [1, "fa-solid", "fa-circle"], [1, "parent-agent", "clickable", "phone-hero-detail", 3, "click", "title"], [1, "fa-solid", "fa-sitemap"], [1, "fa-solid", "fa-external-link", 2, "margin-left", "4px", "font-size", "10px"], ["mjButton", "", "variant", "primary", "size", "lg", "title", "Run this AI agent", 1, "phone-hero-run", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], ["mjButton", "", "size", "lg", 1, "phone-hero-detail", 3, "click", "title"], [1, "fa-solid"], ["type", "button", 1, "phone-hero-summary", 3, "click"], [1, "phone-hero-summary-text"], ["aria-hidden", "true", 1, "fa-solid", "fa-chevron-down"], ["title", "Expand header", 1, "agent-header-mini-expand", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "agent-header-mini-name"], [1, "agent-header-mini-status", 3, "background-color"], [1, "agent-header-mini-spacer"], ["title", "Refresh", 1, "agent-header-mini-btn", 3, "click"], [1, "agent-header-mini-status"], ["title", "Run agent", 1, "agent-header-mini-btn", "agent-header-mini-btn--primary", 3, "click", "disabled"], [1, "agent-header-mini-btn", 3, "click", "title"], ["text", "Loading agent...", "size", "medium"], [1, "agent-tabbar"], [1, "agent-pane", "agent-pane--designer", 3, "agent-pane--hidden"], [1, "form-content", "agent-pane"], ["id", "history", 3, "Expanded", "Disabled"], ["id", "actions", 3, "Expanded", "Disabled"], ["id", "subagents", 3, "Expanded", "Disabled"], ["id", "prompts", 3, "Expanded", "Disabled"], ["id", "learning", 3, "Expanded", "Disabled"], ["id", "notes", 3, "Expanded", "Disabled"], ["id", "search", 3, "Expanded"], ["id", "payload", 3, "Expanded"], ["mjAccordionTitle", ""], [1, "panel-content"], [1, "section-header"], [1, "section-description"], [1, "payload-section"], [1, "payload-section-title"], [1, "fa-solid", "fa-target"], [1, "payload-field-container"], [1, "payload-field-info"], [1, "payload-field-label"], [1, "payload-field-description"], [1, "payload-field-input"], ["FieldName", "PayloadScope", "Type", "textbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-field-example"], [1, "fa-solid", "fa-lightbulb"], [1, "fa-solid", "fa-route"], [1, "payload-paths-grid"], [1, "payload-path-card"], [1, "payload-path-header"], [1, "payload-path-icon", "downstream"], [1, "fa-solid", "fa-arrow-down"], [1, "payload-path-info"], [1, "payload-path-content"], [1, "json-editor-container"], ["language", "json", 2, "height", "100px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], [1, "payload-path-hint"], [1, "fa-solid", "fa-info-circle"], [1, "payload-path-icon", "upstream"], [1, "fa-solid", "fa-arrow-up"], [1, "payload-path-icon", "self-read"], [1, "fa-solid", "fa-eye"], [1, "payload-path-icon", "self-write"], [1, "fa-solid", "fa-pen"], [1, "fa-solid", "fa-shield-check"], [1, "payload-validation-container"], [1, "payload-validation-settings"], [1, "validation-field-group"], [1, "validation-field-label"], [1, "validation-field-description"], ["FieldName", "FinalPayloadValidationMode", "Type", "dropdownlist", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], ["FieldName", "FinalPayloadValidationMaxRetries", "Type", "numerictextbox", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "payload-validation-schema"], [1, "validation-schema-label"], [1, "fa-solid", "fa-code"], [1, "validation-schema-description"], [1, "validation-schema-editor"], ["language", "json", 2, "height", "200px", "width", "100%", 3, "valueChange", "value", "readonly", "lineWrapping"], ["id", "guardrails", 3, "Expanded"], [1, "form-fields-grid"], ["FieldName", "MaxCostPerRun", "Type", "numerictextbox", "Caption", "Max Cost ($)", "Description", "Maximum cost per run", 3, "EditMode", "Record"], ["FieldName", "MaxTokensPerRun", "Type", "numerictextbox", "Caption", "Max Tokens", "Description", "Maximum tokens per run", 3, "EditMode", "Record"], ["FieldName", "MaxIterationsPerRun", "Type", "numerictextbox", "Caption", "Max Iterations", "Description", "Maximum prompt iterations", 3, "EditMode", "Record"], ["FieldName", "MaxTimePerRun", "Type", "numerictextbox", "Caption", "Max Time (seconds)", "Description", "Maximum execution time", 3, "EditMode", "Record"], ["id", "config", 3, "Expanded"], [1, "config-section"], [1, "config-section-title"], [1, "fa-solid", "fa-id-card"], [1, "config-grid"], [1, "config-card"], [1, "config-card-header"], [1, "config-card-icon"], [1, "fa-solid", "fa-toggle-on"], [1, "config-card-info"], [1, "config-card-content"], ["TextField", "text", "ValueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModel", "Data", "ValuePrimitive"], [1, "config-field-display"], ["TextField", "Name", "ValueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModel", "Data", "ValuePrimitive"], [1, "fa-solid", "fa-folder-tree"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-bolt"], ["FieldName", "ExposeAsAction", "Type", "checkbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card", "full-width"], [1, "fa-solid", "fa-align-left"], ["FieldName", "Description", "Type", "textarea", "Caption", "", 2, "width", "100%", 3, "EditMode", "Record"], [1, "fa-solid", "fa-layer-group"], ["FieldName", "ExecutionMode", "Type", "dropdownlist", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-sort-numeric-down"], ["FieldName", "ExecutionOrder", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-tachometer-alt"], ["FieldName", "DefaultPromptEffortLevel", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "config-card-hint"], ["FieldName", "DriverClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-palette"], [1, "fa-solid", "fa-icons"], ["FieldName", "IconClass", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-image"], ["FieldName", "LogoURL", "Type", "textbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-compress"], ["FieldName", "EnableContextCompression", "Type", "checkbox", "Caption", "", 3, "valueChange", "EditMode", "Record"], [1, "phone-section-picker", 3, "ActiveKeyChange", "Items", "ActiveKey"], [3, "TabChange", "Tabs", "ActiveKey"], [1, "agent-pane", "agent-pane--designer"], ["size", "medium", 3, "text"], [1, "agent-pane", "agent-pane--invocations"], [3, "RecordOpenRequested", "Provider", "AgentID", "Active", "ExposeAsAction", "ParentAgentName", "ParentAgentID"], [1, "agent-pane", "agent-pane--rubrics"], [3, "Provider", "AgentID", "Active"], [1, "panel-content", "execution-history-panel"], ["role", "tablist", 1, "history-view-toggle"], [1, "fa-solid", "fa-history"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["type", "button", 1, "history-toggle-option", 3, "click"], [1, "fa-solid", "fa-person-running"], [1, "history-toggle-count"], [1, "fa-solid", "fa-tower-broadcast"], ["text", "Loading sessions...", "size", "medium"], ["Icon", "fa-solid fa-tower-broadcast", "Title", "No Voice Sessions", "Message", "This agent hasn't participated in any realtime voice sessions yet \u2014 neither as the co-agent nor as a delegation target.", "Size", "compact"], [1, "execution-history-list"], ["title", "Open session", 1, "execution-card", "session-card"], ["title", "Open session", 1, "execution-card", "session-card", 3, "click"], [1, "execution-header"], [1, "execution-left-section"], [1, "execution-status"], [1, "status-indicator"], [1, "execution-info"], [1, "execution-title"], [1, "session-role-chip"], [1, "session-role-chip", "session-role-chip--target"], [1, "execution-date"], [1, "execution-metrics"], [1, "metric-item"], [1, "session-status-pill"], [1, "fa-solid", "fa-stopwatch"], [1, "metric-label"], [1, "metric-value"], [1, "fa-solid", "fa-plug"], [1, "fa-solid", "fa-user"], [1, "execution-actions"], ["title", "View session details", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"], [1, "fa-solid", "fa-bullseye"], ["text", "Loading execution history...", "size", "medium"], ["Icon", "fa-solid fa-clock-rotate-left", "Title", "No Execution History", "Message", "This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.", "Size", "compact"], [1, "execution-search-bar"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search by Run ID...", 1, "mj-input", 3, "ngModelChange", "ngModel", "ngModelOptions"], ["Variant", "no-results", "Title", "No Matching Results", "Size", "compact", 3, "Message"], [1, "execution-card", 3, "expanded"], [1, "pagination-controls"], [1, "execution-card"], [1, "execution-header", 3, "click"], [1, "fa-solid", "fa-chevron-right", "expand-icon"], ["title", "View details", 1, "action-btn", 3, "click"], [1, "execution-expanded-content"], [1, "fa-solid", "fa-cog"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-microchip"], [1, "fa-solid", "fa-dollar-sign"], [1, "detailed-metrics"], [1, "metrics-grid"], [1, "metric-detail"], [1, "metric-info"], [1, "metric-title"], [1, "metric-data"], [1, "result-section"], [1, "error-section"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-calculator"], [1, "fa-solid", "fa-comments"], [1, "fa-solid", "fa-file-text"], ["language", "json", 2, "max-height", "200px", "width", "100%", 3, "value", "readonly", "lineWrapping"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["mjButton", "", "variant", "outline", 1, "page-nav-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-chevron-left"], [1, "page-info"], [1, "fa-solid", "fa-chevron-right"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "view-all-btn", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "record-count"], [1, "loading-state"], [1, "header-actions"], ["mjButton", "", "variant", "primary", "size", "sm"], ["Icon", "fa-solid fa-bolt", "Title", "No Actions Configured", "Message", "Add actions to enable this agent to perform specific tasks and operations.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "ActionText"], [1, "entity-list"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["Icon", "fa-solid fa-bolt", "Title", "No Actions Configured", "Message", "Add actions to enable this agent to perform specific tasks and operations.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "Action", "ActionText"], [1, "entity-item", "action-item"], [1, "view-more-item"], [1, "entity-item", "action-item", 3, "click"], [1, "item-icon"], [1, "item-content"], [1, "item-title"], [1, "item-preview"], [1, "item-meta"], [1, "meta-tag"], [1, "status-tag"], [1, "item-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove action", 1, "error-action"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove action", 1, "error-action", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "view-more-item", 3, "click"], [1, "section-header", "sub-agent-filter-header"], [1, "filter-controls"], [1, "mj-button-group"], ["mjButton", "", "size", "sm", 3, "click"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-share-nodes"], ["Icon", "fa-solid fa-sitemap", "Title", "No Sub-Agents", "Message", "Sub-agents help build complex workflows through hierarchical orchestration.", "Size", "compact"], ["mjButton", "", "variant", "primary", "size", "sm", "title", "Create a new child sub-agent that shares this agent's payload", 3, "click"], ["mjButton", "", "size", "sm", "title", "Link an existing agent as a related sub-agent with payload mapping", 3, "click"], [1, "empty-state-info"], [1, "info-card"], [1, "fa-solid", "fa-link", 2, "color", "var(--mj-status-info)"], [1, "fa-solid", "fa-share-nodes", 2, "color", "var(--mj-brand-primary)"], [1, "entity-item", "sub-agent-item", 3, "child-sub-agent", "related-sub-agent"], [1, "entity-item", "sub-agent-item", 3, "click"], [1, "sub-agent-type-badge"], [1, "sub-agent-logo", 3, "src", "alt"], [1, "meta-tag", "payload-info"], [1, "fa-solid", "fa-database"], [1, "status-tag", 3, "background-color"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Configure output mapping"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Advanced settings"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "error-action", 3, "title"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Configure output mapping", 3, "click"], [1, "fa-solid", "fa-exchange-alt"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Advanced settings", 3, "click"], ["mjButton", "", "variant", "flat", "size", "sm", 1, "error-action", 3, "click", "title"], [1, "prompt-controls"], [1, "model-selection-mode"], [1, "model-selection-label"], [1, "fa-solid", "fa-sliders"], ["name", "modelSelectionMode", "TextField", "text", "ValueField", "value", 1, "model-selection-dropdown", 3, "ngModel", "Data", "ValuePrimitive"], [1, "model-selection-value"], ["Icon", "fa-solid fa-comments", "Title", "No Prompts Configured", "Message", "Add prompts to define how this agent processes requests and generates responses.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "ActionText"], ["name", "modelSelectionMode", "TextField", "text", "ValueField", "value", 1, "model-selection-dropdown", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["Icon", "fa-solid fa-comments", "Title", "No Prompts Configured", "Message", "Add prompts to define how this agent processes requests and generates responses.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "Action", "ActionText"], [1, "entity-item", "prompt-item"], [1, "entity-item", "prompt-item", 3, "click"], [1, "fa-solid", "fa-comment-dots"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove prompt", 1, "error-action"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Remove prompt", 1, "error-action", 3, "click"], ["Icon", "fa-solid fa-brain", "Title", "No Learning Cycles", "Message", "Learning cycles will appear here as the agent processes requests and improves over time.", "Size", "compact"], [1, "fa-solid", "fa-brain"], [1, "entity-item", "learning-item"], [1, "entity-item", "learning-item", 3, "click"], [1, "fa-solid", "fa-calendar"], ["Icon", "fa-solid fa-sticky-note", "Title", "No Notes", "Message", "Add notes to document important information, observations, or instructions for this agent.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "ActionText"], [1, "fa-solid", "fa-sticky-note"], ["Icon", "fa-solid fa-sticky-note", "Title", "No Notes", "Message", "Add notes to document important information, observations, or instructions for this agent.", "ActionIcon", "fa-solid fa-plus", "Size", "compact", 3, "Action", "ActionText"], [1, "entity-item", "note-item"], [1, "entity-item", "note-item", 3, "click"], [1, "agent-search-access"], [1, "agent-search-access-option"], ["type", "radio", "name", "SearchScopeAccess", "value", "All", 3, "change", "checked", "disabled"], [1, "fa-solid", "fa-globe"], [1, "agent-search-access-text"], [1, "agent-search-access-title"], [1, "agent-search-access-desc"], ["type", "radio", "name", "SearchScopeAccess", "value", "Assigned", 3, "change", "checked", "disabled"], [1, "fa-solid", "fa-user-check"], ["type", "radio", "name", "SearchScopeAccess", "value", "None", 3, "change", "checked", "disabled"], [1, "fa-solid", "fa-ban"], [1, "fa-solid", "fa-magnifying-glass"], [1, "agent-search-grid-header"], ["ChildEntityName", "MJ: AI Agent Search Scopes", "ParentFieldName", "AgentID", "AddButtonLabel", "+ Assign another scope", "EmptyMessage", "No scopes assigned yet. Assign at least one if this agent will use Scoped Search.", 3, "RowsChanged", "ParentID", "Columns", "Disabled"], [1, "agent-search-section", 2, "margin-top", "16px"], [2, "margin", "0 0 8px 0"], [1, "fa-solid", "fa-shield-halved"], [1, "section-description", 2, "margin-bottom", "8px"], [2, "color", "var(--mj-text-muted)"], [2, "color", "var(--mj-text-muted)", "font-style", "italic"], [2, "margin-bottom", "12px", "padding", "8px 12px", "background", "var(--mj-bg-surface-card)", "border", "1px solid var(--mj-border-subtle)", "border-radius", "4px"], [2, "font-weight", "600", "margin-bottom", "4px"], [2, "color", "var(--mj-text-muted)", "font-size", "0.9em"], [2, "margin", "4px 0 0 16px", "padding", "0"], [2, "font-size", "0.9em", "padding", "2px 0"], [1, "fa-solid", "fa-cogs"], ["TextField", "text", "ValueField", "value", "name", "agentStatus", 1, "config-field-input", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["TextField", "Name", "ValueField", "ID", "name", "agentTypeID", 1, "config-field-input", 3, "ngModelChange", "ngModel", "Data", "ValuePrimitive"], ["SelectionMode", "single", "SelectableTypes", "branch", "Placeholder", "Select a category...", 3, "ValueChange", "BranchConfig", "Value", "Clearable", "EnableSearch"], [1, "fa-solid", "fa-hashtag"], ["FieldName", "ContextCompressionMessageThreshold", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "fa-solid", "fa-save"], ["FieldName", "ContextCompressionMessageRetentionCount", "Type", "numerictextbox", "Caption", "", 3, "EditMode", "Record"], [1, "prompt-selector-container"], [1, "prompt-display"], [1, "prompt-name"], [1, "no-prompt"], [1, "prompt-actions"], ["type", "button", "mjButton", "", "variant", "outline", "size", "sm", 1, "prompt-select-btn", 3, "click"], ["type", "button", "mjButton", "", "variant", "flat", "size", "sm", "title", "Clear selection", 1, "prompt-clear-btn"], ["type", "button", "mjButton", "", "variant", "flat", "size", "sm", "title", "Clear selection", 1, "prompt-clear-btn", 3, "click"], [1, "fa-solid", "fa-times"], [3, "Closed", "PermissionsChanged", "Agent"]], template: function MJAIAgentFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
5795
5845
  i0.ɵɵconditionalCreate(0, MJAIAgentFormComponentExtended_Conditional_0_Template, 7, 7, "mj-record-form-container", 2);
5796
5846
  i0.ɵɵconditionalCreate(1, MJAIAgentFormComponentExtended_Conditional_1_Template, 1, 1, "mj-agent-permissions-dialog", 3);
5797
5847
  } if (rf & 2) {
5798
5848
  i0.ɵɵconditional(ctx.record ? 0 : -1);
5799
5849
  i0.ɵɵadvance();
5800
5850
  i0.ɵɵconditional(ctx.ShowPermissionsDialog ? 1 : -1);
5801
- } }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.MJEmptyStateComponent, i2.MJTabNavComponent, i2.MJButtonDirective, i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i2.MJDropdownComponent, i3.MjFormFieldComponent, i3.MjRecordFormContainerComponent, i4.CodeEditorComponent, i5.LoadingComponent, i6.AgentPermissionsDialogComponent, i6.AgentInvocationsComponent, i6.AgentRubricsComponent, i7.TreeDropdownComponent, i8.SearchScopeChildGridComponent, i9.DatePipe], styles: ["\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n.agent-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n\n.agent-header-toggle[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.agent-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n\n.agent-header-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.agent-header-mini-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status[_ngcontent-%COMP%] {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] img.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input[_ngcontent-%COMP%] {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n\n.prompt-controls[_ngcontent-%COMP%] {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n\n.agent-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n.form-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n\n.form-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n.sub-grid-container[_ngcontent-%COMP%] {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; \n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n.quick-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card[_ngcontent-%COMP%] {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n\n.entity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n\n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.item-icon[_ngcontent-%COMP%] img.sub-agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag[_ngcontent-%COMP%], \n.priority-tag[_ngcontent-%COMP%], \n.status-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n\n.pagination-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn[_ngcontent-%COMP%] {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.page-nav-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info[_ngcontent-%COMP%] .record-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info[_ngcontent-%COMP%] .fa-spinner[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 4px;\n}\n\n\n.payload-config-section[_ngcontent-%COMP%], \n.payload-paths-section[_ngcontent-%COMP%], \n.payload-validation-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n}\n\n.subsection-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider[_ngcontent-%COMP%] {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n.timeline-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n\n.priority-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n.view-all-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content[_ngcontent-%COMP%] {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%] {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .timeline-marker[_ngcontent-%COMP%]::after {\n display: none;\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n\n\n.timeline-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%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.result-content[_ngcontent-%COMP%], \n.error-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n\n.result-section[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n@media (max-width: 768px) {\n \n .agent-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .agent-header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions[_ngcontent-%COMP%] {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n\n \n .form-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n\n .panel-content[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n\n .section-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n \n .entity-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .item-title[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n\n .item-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .item-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n \n .timeline-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .timeline-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n\n \n .form-fields-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n \n .cards-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n\n.execution-search-bar[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar[_ngcontent-%COMP%] .fa-search[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n\n.execution-history-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; \n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n\n.execution-expanded-content[_ngcontent-%COMP%] {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: _ngcontent-%COMP%_slideDown 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n\n@media (max-width: 768px) {\n .execution-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .execution-metrics[_ngcontent-%COMP%] {\n margin-left: 0; \n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.payload-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n\n.payload-field-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n\n.payload-paths-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n.payload-validation-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n.config-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.config-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n\n.config-field-input[_ngcontent-%COMP%] {\n width: 100%;\n min-width: 250px;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field {\n width: 100% !important;\n}\n\n.config-field-display[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n\n.prompt-selector-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.prompt-clear-btn[_ngcontent-%COMP%] {\n min-width: 32px;\n}\n\n.config-card-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n@media (max-width: 768px) {\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title[_ngcontent-%COMP%], \n .config-section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header[_ngcontent-%COMP%], \n .config-card-header[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-path-content[_ngcontent-%COMP%], \n .config-card-content[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n}\n\n\n\n\n\n\n.sub-agent-filter-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n.sub-agent-type-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n\n.sub-agent-item[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n\n.payload-info[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n\n.empty-state-info[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n\n@media (max-width: 768px) {\n .sub-agent-filter-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.agent-search-access[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin: 8px 0 20px;\n}\n\n.agent-search-access-option[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 24px 28px 1fr;\n align-items: start;\n gap: 10px;\n padding: 14px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n transition: background 120ms ease, border-color 120ms ease;\n}\n\n.agent-search-access-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.agent-search-access-option.active[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-search-access-option[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n accent-color: var(--mj-brand-primary);\n margin-top: 2px;\n}\n\n.agent-search-access-option[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n text-align: center;\n margin-top: 2px;\n}\n\n.agent-search-access-text[_ngcontent-%COMP%] {\n min-width: 0;\n}\n\n.agent-search-access-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.agent-search-access-desc[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.agent-search-grid-header[_ngcontent-%COMP%] {\n margin: 8px 0 12px;\n}\n\n.agent-search-grid-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 4px;\n color: var(--mj-text-primary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n@media (max-width: 768px) {\n .agent-search-access[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.history-view-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 2px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 3px;\n margin-bottom: 14px;\n}\n\n.history-toggle-option[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 6px 16px;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.history-toggle-option[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.history-toggle-count[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active[_ngcontent-%COMP%] .history-toggle-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary);\n}\n\n\n.session-card[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.session-role-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n margin-left: 8px;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 10.5px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.session-role-chip--target[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n color: var(--mj-status-info);\n}\n\n.session-status-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.session-status-pill[data-status=\"Active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n border-color: color-mix(in srgb, var(--mj-status-success) 25%, transparent);\n}\n\n.session-status-pill[data-status=\"Idle\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n border-color: color-mix(in srgb, var(--mj-status-warning) 25%, transparent);\n}\n\n\n\n\n\n\n\n.agent-tabbar[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n padding: 8px 12px 0;\n background: var(--mj-bg-page);\n}\n\n.agent-pane[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.agent-pane--hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n.agent-pane--designer[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: 8px 12px 12px;\n background: var(--mj-bg-page);\n}\n\n\n\n.agent-pane--designer[_ngcontent-%COMP%] > ng-component[_ngcontent-%COMP%], \n.agent-pane--designer[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n.agent-pane--invocations[_ngcontent-%COMP%] {\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n}\n\n\n\n\n.agent-form-loading[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 240px;\n padding: 32px;\n background: var(--mj-bg-page);\n}"] }); }
5851
+ } }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.MJEmptyStateComponent, i2.MJTabNavComponent, i2.MJSectionPickerComponent, i2.MJButtonDirective, i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i2.MJDropdownComponent, i3.MjFormFieldComponent, i3.MjRecordFormContainerComponent, i4.CodeEditorComponent, i5.LoadingComponent, i6.AgentPermissionsDialogComponent, i6.AgentInvocationsComponent, i6.AgentRubricsComponent, i7.TreeDropdownComponent, i8.SearchScopeChildGridComponent, i9.DatePipe], styles: ["\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n\n.agent-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n\n.agent-header-toggle[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.agent-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n\n.agent-header-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.agent-header-mini-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status[_ngcontent-%COMP%] {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.agent-icon-wrapper[_ngcontent-%COMP%] img.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input[_ngcontent-%COMP%] {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.parent-agent[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.parent-agent.clickable[_ngcontent-%COMP%]:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n\n.prompt-controls[_ngcontent-%COMP%] {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description[_ngcontent-%COMP%] {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n\n.agent-actions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n\n.form-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n\n.form-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n.sub-grid-container[_ngcontent-%COMP%] {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; \n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n.quick-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card[_ngcontent-%COMP%] {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n\n.entity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n\n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.sub-agent-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.model-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.learning-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.note-item[_ngcontent-%COMP%] .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.item-icon[_ngcontent-%COMP%] img.sub-agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.item-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag[_ngcontent-%COMP%], \n.priority-tag[_ngcontent-%COMP%], \n.status-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.entity-item[_ngcontent-%COMP%]:hover .item-actions[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item[_ngcontent-%COMP%] {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n\n.pagination-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn[_ngcontent-%COMP%] {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.page-nav-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info[_ngcontent-%COMP%] .record-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info[_ngcontent-%COMP%] .fa-spinner[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 4px;\n}\n\n\n.payload-config-section[_ngcontent-%COMP%], \n.payload-paths-section[_ngcontent-%COMP%], \n.payload-validation-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n}\n\n.subsection-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider[_ngcontent-%COMP%] {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n.payload-field-group[_ngcontent-%COMP%] mj-form-field[_ngcontent-%COMP%] textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n.timeline-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n.cards-container[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card[_ngcontent-%COMP%]:hover::before {\n opacity: 1;\n}\n\n.card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.prompt-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.action-card[_ngcontent-%COMP%] .card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card[_ngcontent-%COMP%]:hover .card-actions[_ngcontent-%COMP%] {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n\n.priority-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n\n.view-all-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content[_ngcontent-%COMP%] {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%] {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .timeline-marker[_ngcontent-%COMP%]::after {\n display: none;\n}\n\n.timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n.timeline-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n\n\n.timeline-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%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.result-content[_ngcontent-%COMP%], \n.error-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n\n.result-section[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n@media (max-width: 768px) {\n \n .agent-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .agent-header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions[_ngcontent-%COMP%] {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n\n \n .form-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .panel-content[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n\n .section-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n \n .entity-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .item-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .item-title[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n\n .item-preview[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .item-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n \n .timeline-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .timeline-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n\n \n .form-fields-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n \n .cards-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.execution-history-panel[_ngcontent-%COMP%] {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n\n.execution-search-bar[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar[_ngcontent-%COMP%] .fa-search[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n\n.execution-history-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; \n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded[_ngcontent-%COMP%] {\n transform: rotate(90deg);\n}\n\n\n.execution-expanded-content[_ngcontent-%COMP%] {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: _ngcontent-%COMP%_slideDown 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.result-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n\n@media (max-width: 768px) {\n .execution-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .execution-metrics[_ngcontent-%COMP%] {\n margin-left: 0; \n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.payload-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n\n.payload-field-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n\n.payload-paths-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n.payload-validation-container[_ngcontent-%COMP%] {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n\n.config-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.config-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content[_ngcontent-%COMP%] {\n padding: 1rem;\n}\n\n\n.config-field-input[_ngcontent-%COMP%] {\n width: 100%;\n min-width: 250px;\n}\n\n.config-card-content[_ngcontent-%COMP%] mj-form-field {\n width: 100% !important;\n}\n\n.config-field-display[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n\n.prompt-selector-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.prompt-clear-btn[_ngcontent-%COMP%] {\n min-width: 32px;\n}\n\n.config-card-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n\n@media (max-width: 768px) {\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title[_ngcontent-%COMP%], \n .config-section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header[_ngcontent-%COMP%], \n .config-card-header[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-path-content[_ngcontent-%COMP%], \n .config-card-content[_ngcontent-%COMP%] {\n padding: 0.75rem;\n }\n\n .payload-field-container[_ngcontent-%COMP%], \n .payload-validation-container[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n}\n\n\n\n\n\n\n.sub-agent-filter-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n\n.sub-agent-type-badge[_ngcontent-%COMP%] {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n\n.sub-agent-item[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent[_ngcontent-%COMP%] {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n\n.payload-info[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n\n.empty-state-info[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n\n@media (max-width: 768px) {\n .sub-agent-filter-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.agent-search-access[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin: 8px 0 20px;\n}\n\n.agent-search-access-option[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 24px 28px 1fr;\n align-items: start;\n gap: 10px;\n padding: 14px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n transition: background 120ms ease, border-color 120ms ease;\n}\n\n.agent-search-access-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.agent-search-access-option.active[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-search-access-option[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n accent-color: var(--mj-brand-primary);\n margin-top: 2px;\n}\n\n.agent-search-access-option[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n text-align: center;\n margin-top: 2px;\n}\n\n.agent-search-access-text[_ngcontent-%COMP%] {\n min-width: 0;\n}\n\n.agent-search-access-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.agent-search-access-desc[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.agent-search-grid-header[_ngcontent-%COMP%] {\n margin: 8px 0 12px;\n}\n\n.agent-search-grid-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 4px;\n color: var(--mj-text-primary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n@media (max-width: 768px) {\n .agent-search-access[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n\n.history-view-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 2px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 3px;\n margin-bottom: 14px;\n}\n\n.history-toggle-option[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 6px 16px;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.history-toggle-option[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.history-toggle-count[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active[_ngcontent-%COMP%] .history-toggle-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary);\n}\n\n\n.session-card[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.session-role-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n margin-left: 8px;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 10.5px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.session-role-chip--target[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n color: var(--mj-status-info);\n}\n\n.session-status-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.session-status-pill[data-status=\"Active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n border-color: color-mix(in srgb, var(--mj-status-success) 25%, transparent);\n}\n\n.session-status-pill[data-status=\"Idle\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n border-color: color-mix(in srgb, var(--mj-status-warning) 25%, transparent);\n}\n\n\n\n\n\n\n\n.agent-tabbar[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n padding: 8px 12px 0;\n background: var(--mj-bg-page);\n}\n\n\n.agent-tabbar[_ngcontent-%COMP%] .phone-section-picker[_ngcontent-%COMP%] {\n display: none;\n}\n\n@media (max-width: 768px) {\n .agent-tabbar[_ngcontent-%COMP%] {\n padding: 4px 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .agent-tabbar[_ngcontent-%COMP%] mj-tab-nav[_ngcontent-%COMP%] {\n display: none;\n }\n\n .agent-tabbar[_ngcontent-%COMP%] .phone-section-picker[_ngcontent-%COMP%] {\n display: block;\n }\n}\n\n\n\n@media (max-width: 768px) {\n .agent-header.phone-hero.hero-view[_ngcontent-%COMP%] .agent-overview[_ngcontent-%COMP%] {\n flex-direction: row;\n align-items: center;\n gap: 10px;\n width: 100%;\n }\n\n .agent-header.phone-hero.hero-view[_ngcontent-%COMP%] .agent-info[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .agent-header.phone-hero.hero-view[_ngcontent-%COMP%] .agent-name[_ngcontent-%COMP%] {\n overflow-wrap: anywhere;\n }\n\n .agent-header.phone-hero.hero-view[_ngcontent-%COMP%] .agent-meta[_ngcontent-%COMP%] {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n }\n}\n\n.agent-pane[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.agent-pane--hidden[_ngcontent-%COMP%] {\n display: none;\n}\n\n.agent-pane--designer[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: 8px 12px 12px;\n background: var(--mj-bg-page);\n}\n\n\n\n.agent-pane--designer[_ngcontent-%COMP%] > ng-component[_ngcontent-%COMP%], \n.agent-pane--designer[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n.agent-pane--invocations[_ngcontent-%COMP%] {\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n}\n\n\n\n\n.agent-form-loading[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 240px;\n padding: 32px;\n background: var(--mj-bg-page);\n}", "\n\n\n\n\n\n\n\n\n\n\n\n\n\n.phone-hero-summary[_ngcontent-%COMP%], \n.phone-hero-only[_ngcontent-%COMP%] {\n display: none;\n}\n\n@media (max-width: 768px) {\n .phone-hero[_ngcontent-%COMP%] {\n padding: 12px !important;\n }\n\n \n .phone-hero.hero-compact[_ngcontent-%COMP%] .phone-hero-detail[_ngcontent-%COMP%], \n .phone-hero.hero-view[_ngcontent-%COMP%] .phone-hero-hide[_ngcontent-%COMP%] {\n display: none !important;\n }\n\n .phone-hero-only[_ngcontent-%COMP%] {\n display: inline-flex;\n }\n\n \n .phone-hero[_ngcontent-%COMP%] .phone-hero-stats[_ngcontent-%COMP%] {\n display: grid !important;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 8px;\n }\n\n .phone-hero-status[_ngcontent-%COMP%] {\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface-sunken);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n \n .phone-hero-status[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n .phone-hero-status[data-status=\"success\"][_ngcontent-%COMP%] { color: var(--mj-status-success-text); background: var(--mj-status-success-bg); }\n .phone-hero-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-error-text); background: var(--mj-status-error-bg); }\n .phone-hero-status[data-status=\"info\"][_ngcontent-%COMP%] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n\n .phone-hero-top[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 10px;\n }\n\n .phone-hero-actions[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .phone-hero[_ngcontent-%COMP%] .phone-hero-run[_ngcontent-%COMP%] {\n width: 100%;\n min-height: 44px;\n justify-content: center;\n }\n\n \n\n .phone-hero-summary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 44px;\n margin-top: 8px;\n padding: 0 4px;\n border: 0;\n border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: var(--mj-text-sm);\n text-align: left;\n cursor: pointer;\n opacity: 0.85;\n }\n\n .phone-hero-summary[_ngcontent-%COMP%]:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n }\n\n .phone-hero-summary-text[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .phone-hero-summary[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n transition: transform 0.15s ease;\n }\n\n .phone-hero-summary[aria-expanded=\"true\"][_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .phone-hero-summary[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n transition: none;\n }\n}"] }); }
5802
5852
  };
5803
5853
  MJAIAgentFormComponentExtended = MJAIAgentFormComponentExtended_1 = __decorate([
5804
5854
  RegisterClass(BaseFormComponent, 'MJ: AI Agents')
@@ -5806,10 +5856,10 @@ MJAIAgentFormComponentExtended = MJAIAgentFormComponentExtended_1 = __decorate([
5806
5856
  export { MJAIAgentFormComponentExtended };
5807
5857
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJAIAgentFormComponentExtended, [{
5808
5858
  type: Component,
5809
- args: [{ standalone: false, selector: 'mj-ai-agent-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"toolbarConfig\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\">\n <!-- Agent Header \u2014 expanded view -->\n @if (!HeaderCollapsed) {\n <div class=\"agent-header\">\n <div class=\"agent-header-content\">\n <button class=\"agent-header-toggle\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Minimize header\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <div class=\"agent-overview\">\n <div class=\"agent-icon-wrapper\">\n @if (hasLogoURL()) {\n <img [src]=\"record.LogoURL\" [alt]=\"record.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon()\"></i>\n }\n </div>\n <div class=\"agent-info\">\n @if (EditMode) {\n <input type=\"text\" class=\"mj-input agent-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"agentName\"\n placeholder=\"Enter agent name...\">\n } @else {\n <h1 class=\"agent-name\">{{ record.Name || 'Untitled AI Agent' }}</h1>\n }\n <div class=\"agent-meta\">\n @if (record.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ record.Status }}\n </span>\n }\n @if (record.Type) {\n <span class=\"execution-mode\">\n Agent Type: {{ record.Type }}\n </span>\n }\n @if (record.Parent) {\n <span class=\"parent-agent clickable\"\n (click)=\"navigateToParentAgent()\"\n title=\"Open parent agent: {{ record.Parent }}\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Child of {{ record.Parent }}\n <i class=\"fa-solid fa-external-link\" style=\"margin-left: 4px; font-size: 10px;\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"agent-actions\">\n @if (record.ID) {\n <button mjButton variant=\"primary\" size=\"lg\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run this AI agent\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n <button mjButton size=\"lg\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone \u2014 click to manage permissions' : 'Restricted \u2014 click to manage permissions'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n {{ IsOpenToEveryone ? 'Open' : 'Restricted' }}\n </button>\n }\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"refreshRelatedData()\" title=\"Refresh all data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n <!-- Agent Header \u2014 minimized floating bar -->\n @if (HeaderCollapsed) {\n <div class=\"agent-header-mini\">\n <button class=\"agent-header-mini-expand\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Expand header\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n <span class=\"agent-header-mini-name\">{{ record.Name || 'Untitled AI Agent' }}</span>\n @if (record.Status) {\n <span class=\"agent-header-mini-status\" [style.background-color]=\"getStatusBadgeColor()\">\n {{ record.Status }}\n </span>\n }\n <div class=\"agent-header-mini-spacer\"></div>\n @if (record.ID) {\n <button class=\"agent-header-mini-btn agent-header-mini-btn--primary\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n <button class=\"agent-header-mini-btn\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone' : 'Restricted'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n </button>\n }\n <button class=\"agent-header-mini-btn\"\n (click)=\"refreshRelatedData()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n }\n <!-- The tab strip and every pane depend on the agent's TYPE, which loads asynchronously.\n Without this the form rendered its header over an empty area for the whole load \u2014\n no tabs, no designer, and the details pane hidden because no tab was active yet. -->\n @if (IsFormInitializing) {\n <div class=\"agent-form-loading\">\n <mj-loading text=\"Loading agent...\" size=\"medium\"></mj-loading>\n </div>\n } @else {\n <!-- Tabs, not accordions. For an agent type that ships a designer, the diagram IS the agent;\n leaving it as one collapsed panel among eleven made the record's most important view its\n least reachable one. Invocations is offered for every agent, because \"what runs this when\n I'm not looking?\" is a question you can ask of any of them. -->\n @if (FormTabs.length > 1) {\n <div class=\"agent-tabbar\">\n <mj-tab-nav [Tabs]=\"FormTabs\" [ActiveKey]=\"ActiveFormTab || ''\" (TabChange)=\"OnFormTabChange($event)\"></mj-tab-nav>\n </div>\n }\n\n @if (HasDesignerTab) {\n <!-- Hidden with CSS rather than removed with @if: the designer holds UNSAVED edits, and\n destroying it on a tab switch would discard them without a word. Keeping it mounted also\n means the canvas keeps its zoom and node positions across trips to Details. -->\n <div class=\"agent-pane agent-pane--designer\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'designer'\">\n @if (loadingStates.customSection) {\n <mj-loading text=\"Loading {{ agentType?.Name }} configuration...\" size=\"medium\"></mj-loading>\n }\n <ng-container #customSectionContainer></ng-container>\n </div>\n }\n\n @if (record.ID) {\n <div class=\"agent-pane agent-pane--invocations\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'invocations'\">\n <mj-agent-invocations\n [Provider]=\"Provider\"\n [AgentID]=\"record.ID\"\n [Active]=\"ActiveFormTab === 'invocations'\"\n [ExposeAsAction]=\"record.ExposeAsAction\"\n [ParentAgentName]=\"record.Parent\"\n [ParentAgentID]=\"record.ParentID\"\n (RecordOpenRequested)=\"OnInvocationOpenRequested($event)\">\n </mj-agent-invocations>\n </div>\n <div class=\"agent-pane agent-pane--rubrics\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'rubrics'\">\n <mj-agent-rubrics\n [Provider]=\"Provider\"\n [AgentID]=\"record.ID\"\n [Active]=\"ActiveFormTab === 'rubrics'\">\n </mj-agent-rubrics>\n </div>\n }\n\n <!-- Single Pane Layout with Expander Panels -->\n <div class=\"form-content agent-pane\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'details'\">\n <!-- Requests & History -->\n @if (record.ID) {\n <mj-accordion-panel id=\"history\"\n [Expanded]=\"GetSectionExpanded('history', false)\"\n [Disabled]=\"loadingStates.executionHistory\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History\n @if (loadingStates.executionHistory) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (executionHistoryCount > 0) {\n <span> ({{ executionHistoryCount }}@if (executionHistoryCount < totalExecutionHistoryCount) { of {{ totalExecutionHistoryCount }}})</span>\n }\n </ng-template>\n <div class=\"panel-content execution-history-panel\">\n <!-- Segmented toggle: agent runs vs. realtime voice sessions -->\n @if (UserCanViewSessions) {\n <div class=\"history-view-toggle\" role=\"tablist\">\n <button type=\"button\" class=\"history-toggle-option\"\n [class.active]=\"executionHistoryView === 'runs'\"\n (click)=\"setExecutionHistoryView('runs')\">\n <i class=\"fa-solid fa-person-running\"></i> Runs\n @if (totalExecutionHistoryCount > 0) {\n <span class=\"history-toggle-count\">{{ totalExecutionHistoryCount }}</span>\n }\n </button>\n <button type=\"button\" class=\"history-toggle-option\"\n [class.active]=\"executionHistoryView === 'sessions'\"\n (click)=\"setExecutionHistoryView('sessions')\">\n <i class=\"fa-solid fa-tower-broadcast\"></i> Sessions\n @if (totalSessionCount > 0) {\n <span class=\"history-toggle-count\">{{ totalSessionCount }}</span>\n }\n </button>\n </div>\n }\n @if (executionHistoryView === 'sessions') {\n <!-- Voice/realtime sessions list -->\n @if (loadingSessions) {\n <mj-loading text=\"Loading sessions...\" size=\"medium\"></mj-loading>\n } @else if (agentSessions.length === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-tower-broadcast\"\n Title=\"No Voice Sessions\"\n Message=\"This agent hasn't participated in any realtime voice sessions yet \u2014 neither as the co-agent nor as a delegation target.\"\n Size=\"compact\" />\n } @else {\n <div class=\"execution-history-list\">\n @for (item of agentSessions; track item.row.ID) {\n <div class=\"execution-card session-card\" (click)=\"openSessionRecord(item.row.ID)\" title=\"Open session\">\n <div class=\"execution-header\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getSessionStatusColor(item.row.Status)\">\n <i [class]=\"getSessionStatusIcon(item.row.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-title\">\n Session #{{ item.row.ID.substring(0, 8) }}\n @if (item.isCoAgent) {\n <span class=\"session-role-chip\">as co-agent</span>\n }\n @if (item.isTarget) {\n <span class=\"session-role-chip session-role-chip--target\">as target</span>\n }\n </div>\n <div class=\"execution-date\">{{ item.row.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n <div class=\"execution-metrics\">\n <div class=\"metric-item\">\n <span class=\"session-status-pill\" [attr.data-status]=\"item.row.Status\">{{ item.row.Status }}</span>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatSessionDuration(item) }}</span>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-plug\"></i>\n <span class=\"metric-label\">Channels:</span>\n <span class=\"metric-value\">{{ item.channelCount }}</span>\n </div>\n @if (item.isCoAgent && item.targetAgentName) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-bullseye\"></i>\n <span class=\"metric-label\">Target:</span>\n <span class=\"metric-value\">{{ item.targetAgentName }}</span>\n </div>\n }\n @if (item.isTarget && !item.isCoAgent && item.row.Agent) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-tower-broadcast\"></i>\n <span class=\"metric-label\">Co-agent:</span>\n <span class=\"metric-value\">{{ item.row.Agent }}</span>\n </div>\n }\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-user\"></i>\n <span class=\"metric-label\">User:</span>\n <span class=\"metric-value\">{{ item.row.User }}</span>\n </div>\n </div>\n </div>\n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openSessionRecord(item.row.ID); $event.stopPropagation()\" title=\"View session details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n }\n } @else {\n @if (loadingStates.executionHistory) {\n <mj-loading text=\"Loading execution history...\" size=\"medium\"></mj-loading>\n } @else if (executionHistoryCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-clock-rotate-left\"\n Title=\"No Execution History\"\n Message=\"This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.\"\n Size=\"compact\" />\n } @else {\n <!-- Search Bar -->\n <div class=\"execution-search-bar\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search\"></i>\n <input type=\"text\" class=\"mj-input\"\n [(ngModel)]=\"executionSearchText\"\n (ngModelChange)=\"onExecutionSearchChange()\"\n [ngModelOptions]=\"{standalone: true}\"\n placeholder=\"Search by Run ID...\">\n </div>\n </div>\n <div class=\"execution-history-list\">\n @if (filteredExecutions.length === 0) {\n <mj-empty-state\n Variant=\"no-results\"\n Title=\"No Matching Results\"\n [Message]=\"ExecutionSearchEmptyMessage\"\n Size=\"compact\" />\n }\n @for (execution of filteredExecutions; track execution.ID) {\n <div class=\"execution-card\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-title\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"expandedExecutions[execution.ID]\"></i>\n Execution #{{ execution.ID.substring(0, 8) }}\n </div>\n <div class=\"execution-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n <div class=\"execution-metrics\">\n @if (execution.Configuration) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <span class=\"metric-label\">Config:</span>\n <span class=\"metric-value\">{{ execution.Configuration }}</span>\n </div>\n }\n @if (execution.CompletedAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}</span>\n </div>\n } @else if (execution.Status === 'Running') {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metric-label\">Running:</span>\n <!-- <span class=\"metric-value\">{{ execution.StartedAt | runningTime }}</span> -->\n </div>\n }\n @if (execution.TotalTokensUsedRollup || execution.TotalTokensUsed) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-microchip\"></i>\n <span class=\"metric-label\">Tokens:</span>\n <span class=\"metric-value\">{{ formatTokenCount(execution.TotalTokensUsedRollup || execution.TotalTokensUsed) }}</span>\n </div>\n }\n @if (execution.TotalCostRollup || execution.TotalCost) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <span class=\"metric-label\">Cost:</span>\n <span class=\"metric-value\">${{ formatCost(execution.TotalCostRollup || execution.TotalCost) }}</span>\n </div>\n }\n </div>\n </div>\n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\" title=\"View details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"execution-expanded-content\">\n <!-- Detailed Metrics -->\n <div class=\"detailed-metrics\">\n <div class=\"metrics-grid\">\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Started</span>\n <span class=\"metric-data\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n </div>\n @if (execution.CompletedAt) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Completed</span>\n <span class=\"metric-data\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-microchip\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Tokens</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsed) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsedRollup && execution.TotalTokensUsedRollup !== execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsedRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Cost</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCost) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCostRollup && execution.TotalCostRollup !== execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-calculator\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCostRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.ConversationID) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-comments\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Conversation</span>\n <span class=\"metric-data\">{{ execution.ConversationID.substring(0, 8) }}...</span>\n </div>\n </div>\n }\n </div>\n </div>\n @if (HasExecutionResult(execution)) {\n <div class=\"result-section\">\n <h5><i class=\"fa-solid fa-file-text\"></i> Result</h5>\n <mj-code-editor\n [value]=\"getExecutionResultPreview(execution, false)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"max-height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (execution.ErrorMessage) {\n <div class=\"error-section\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h5>\n <div class=\"error-content\">{{ execution.ErrorMessage }}</div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Pagination Controls -->\n @if (totalPages > 1) {\n <div class=\"pagination-controls\">\n <button mjButton\n variant=\"outline\"\n (click)=\"goToPreviousPage()\"\n [disabled]=\"!hasPreviousPage || isLoadingPage\"\n class=\"page-nav-btn\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n Previous\n </button>\n <div class=\"page-info\">\n @if (isLoadingPage) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Loading...\n } @else {\n Page {{ executionHistoryCurrentPage }} of {{ totalPages }}\n <span class=\"record-count\">({{ totalExecutionHistoryCount }} total)</span>\n }\n </div>\n <button mjButton\n variant=\"outline\"\n (click)=\"goToNextPage()\"\n [disabled]=\"!hasNextPage || isLoadingPage\"\n class=\"page-nav-btn\">\n Next\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"navigateToEntity('MJ: AI Agent Runs', '')\"\n class=\"view-all-btn\">\n <i class=\"fa-solid fa-external-link\"></i>\n View All in Grid\n </button>\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Actions -->\n @if (record.ID) {\n <mj-accordion-panel id=\"actions\"\n [Expanded]=\"GetSectionExpanded('actions', false)\"\n [Disabled]=\"loadingStates.actions\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions\n @if (loadingStates.actions) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (actionCount > 0) {\n <span> ({{ actionCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n @if (loadingStates.actions) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading actions...</p>\n </div>\n } @else {\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateActions) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Add Action\n </button>\n }\n </div>\n </div>\n @if (actionCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-bolt\"\n Title=\"No Actions Configured\"\n Message=\"Add actions to enable this agent to perform specific tasks and operations.\"\n [ActionText]=\"(EditMode && UserCanCreateActions) ? 'Configure First Action' : ''\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"configureActions()\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (action of agentActions; track action.ID) {\n <div class=\"entity-item action-item\" (click)=\"navigateToEntity('MJ: Actions', action.ID)\">\n <div class=\"item-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ action.Name || 'Untitled Action' }}</div>\n @if (action.Description) {\n <div class=\"item-preview\">{{ action.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (action.Type) {\n <span class=\"meta-tag\">{{ action.Type }}</span>\n }\n <span class=\"status-tag\" [class.active]=\"action.Status==='Active'\" [class.inactive]=\"action.Status!=='Active'\">\n <i class=\"fa-solid\" [class.fa-check-circle]=\"action.Status==='Active'\" [class.fa-times-circle]=\"action.Status!=='Active'\"></i>\n {{ action.Status }}\n </span>\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanDeleteActions) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"removeAction(action, $event)\"\n title=\"Remove action\"\n class=\"error-action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (actionCount > agentActions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Actions', '')\">\n <span>View all {{ actionCount }} actions...</span>\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Sub-Agents (Unified View with Filter) -->\n @if (record.ID) {\n <mj-accordion-panel id=\"subagents\"\n [Expanded]=\"GetSectionExpanded('subagents', false)\"\n [Disabled]=\"loadingStates.subAgents\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents\n @if (loadingStates.subAgents) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (totalSubAgentCount > 0) {\n <span> ({{ totalSubAgentCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <!-- Filter Controls -->\n <div class=\"section-header sub-agent-filter-header\">\n <div class=\"filter-controls\">\n <div class=\"mj-button-group\">\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'all'\"\n (click)=\"setSubAgentFilter('all')\">\n <i class=\"fa-solid fa-layer-group\"></i>\n All ({{ totalSubAgentCount }})\n </button>\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'child'\"\n (click)=\"setSubAgentFilter('child')\">\n <i class=\"fa-solid fa-link\"></i>\n Child ({{ childSubAgentCount }})\n </button>\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'related'\"\n (click)=\"setSubAgentFilter('related')\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Related ({{ relatedSubAgentCount }})\n </button>\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateSubAgents) {\n <button mjButton\n variant=\"primary\"\n size=\"sm\"\n (click)=\"createChildSubAgent()\"\n title=\"Create a new child sub-agent that shares this agent's payload\">\n <i class=\"fa-solid fa-link\"></i>\n Create Child\n </button>\n <button mjButton\n size=\"sm\"\n (click)=\"linkRelatedSubAgent()\"\n title=\"Link an existing agent as a related sub-agent with payload mapping\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Link Related\n </button>\n }\n </div>\n </div>\n <!-- Empty State -->\n @if (totalSubAgentCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-sitemap\"\n Title=\"No Sub-Agents\"\n Message=\"Sub-agents help build complex workflows through hierarchical orchestration.\"\n Size=\"compact\">\n <div class=\"empty-state-info\">\n <div class=\"info-card\">\n <i class=\"fa-solid fa-link\" style=\"color: var(--mj-status-info);\"></i>\n <strong>Child Sub-Agents</strong>\n <p>Share payload structure, dedicated to parent</p>\n </div>\n <div class=\"info-card\">\n <i class=\"fa-solid fa-share-nodes\" style=\"color: var(--mj-brand-primary);\"></i>\n <strong>Related Sub-Agents</strong>\n <p>Reusable agents with payload mapping</p>\n </div>\n </div>\n </mj-empty-state>\n } @else {\n <!-- Unified Sub-Agent List -->\n <div class=\"entity-list\">\n @for (item of filteredSubAgents; track item.agent.ID) {\n <div class=\"entity-item sub-agent-item\"\n [class.child-sub-agent]=\"item.type === 'child'\"\n [class.related-sub-agent]=\"item.type === 'related'\"\n (click)=\"navigateToEntity('MJ: AI Agents', item.agent.ID)\">\n <!-- Type Badge -->\n <div class=\"sub-agent-type-badge\"\n [style.background-color]=\"getSubAgentBadgeColor(item)\">\n <i [class]=\"getSubAgentBadgeIcon(item)\"></i>\n {{ getSubAgentBadgeText(item) }}\n </div>\n <!-- Agent Icon -->\n <div class=\"item-icon\">\n @if (hasSubAgentLogoURL(item.agent)) {\n <img [src]=\"item.agent.LogoURL\"\n [alt]=\"item.agent.Name + ' logo'\"\n class=\"sub-agent-logo\">\n } @else {\n <i [class]=\"getSubAgentIcon(item.agent)\"></i>\n }\n </div>\n <!-- Agent Content -->\n <div class=\"item-content\">\n <div class=\"item-title\">{{ item.agent.Name || 'Untitled Sub-Agent' }}</div>\n @if (item.agent.Description) {\n <div class=\"item-preview\">{{ item.agent.Description }}</div>\n }\n <div class=\"item-meta\">\n <!-- Payload Info -->\n <span class=\"meta-tag payload-info\">\n <i class=\"fa-solid fa-database\"></i>\n {{ getSubAgentPayloadInfo(item) }}\n </span>\n <!-- Status -->\n @if (item.agent.Status) {\n <span class=\"status-tag\"\n [style.background-color]=\"getStatusBadgeColor()\">\n {{ item.agent.Status }}\n </span>\n }\n <!-- Agent Type -->\n @if (item.agent.Type) {\n <span class=\"meta-tag\">{{ item.agent.Type }}</span>\n }\n </div>\n </div>\n <!-- Actions -->\n <div class=\"item-actions\">\n @if (EditMode) {\n <!-- Output Mapping Config (Related only) -->\n @if (item.type === 'related') {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"configureOutputMapping(item, $event)\"\n title=\"Configure output mapping\">\n <i class=\"fa-solid fa-exchange-alt\"></i>\n </button>\n }\n <!-- Advanced Settings (Child only) -->\n @if (item.type === 'child' && UserCanCreateSubAgents) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openSubAgentAdvancedSettings(item.agent, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n <!-- Remove/Unlink -->\n @if (UserCanDeleteSubAgents) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"item.type === 'child' ? removeChildSubAgent(item, $event) : unlinkRelatedSubAgent(item, $event)\"\n [title]=\"item.type === 'child' ? 'Delete child sub-agent' : 'Unlink related sub-agent'\"\n class=\"error-action\">\n <i [class]=\"item.type === 'child' ? 'fa-solid fa-trash' : 'fa-solid fa-unlink'\"></i>\n </button>\n }\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Prompts (With Model Selection) -->\n @if (record.ID) {\n <mj-accordion-panel id=\"prompts\"\n [Expanded]=\"GetSectionExpanded('prompts', false)\"\n [Disabled]=\"loadingStates.prompts\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts\n @if (loadingStates.prompts) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (promptCount > 0) {\n <span> ({{ promptCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"prompt-controls\">\n <!-- Model Selection Mode Control -->\n <div class=\"model-selection-mode\">\n <label class=\"model-selection-label\">\n <i class=\"fa-solid fa-sliders\"></i>\n Model Selection:\n </label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.ModelSelectionMode\"\n name=\"modelSelectionMode\"\n [Data]=\"modelSelectionModes\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"model-selection-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"model-selection-value\">{{ record.ModelSelectionMode || 'Agent Type' }}</span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNewPrompts) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Add Prompt\n </button>\n }\n </div>\n </div>\n @if (promptCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-comments\"\n Title=\"No Prompts Configured\"\n Message=\"Add prompts to define how this agent processes requests and generates responses.\"\n [ActionText]=\"(EditMode && UserCanCreateNewPrompts) ? 'Create First Prompt' : ''\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"addPrompt()\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (prompt of agentPrompts; track prompt.ID) {\n <div class=\"entity-item prompt-item\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ prompt.Name }}</div>\n @if (prompt.TemplateText) {\n <div class=\"item-preview\">{{ prompt.TemplateText.substring(0, 120) }}{{ prompt.TemplateText.length > 120 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (prompt.PromptRole) {\n <span class=\"meta-tag\">{{ prompt.PromptRole }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanCreatePrompts) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openPromptAdvancedSettings(prompt, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeletePrompts) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"removePrompt(prompt, $event)\"\n title=\"Remove prompt\"\n class=\"error-action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (promptCount > agentPrompts.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Prompts', '')\">\n <span>View all {{ promptCount }} prompts...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Learning & Analytics -->\n @if (record.ID) {\n <mj-accordion-panel id=\"learning\"\n [Expanded]=\"GetSectionExpanded('learning', false)\"\n [Disabled]=\"loadingStates.learningCycles\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles\n @if (loadingStates.learningCycles) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (learningCycleCount > 0) {\n <span> ({{ learningCycleCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Monitor and manage learning cycles, training sessions, and performance analytics.\n </div>\n </div>\n @if (learningCycleCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-brain\"\n Title=\"No Learning Cycles\"\n Message=\"Learning cycles will appear here as the agent processes requests and improves over time.\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (cycle of learningCycles; track cycle.ID) {\n <div class=\"entity-item learning-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', cycle.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-brain\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">Learning Cycle {{ cycle.ID.substring(0, 8) }}</div>\n <div class=\"item-meta\">\n @if (cycle.StartedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ cycle.StartedAt | date:'short' }}\n </span>\n }\n @if (cycle.Status) {\n <span class=\"status-tag\">{{ cycle.Status }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (learningCycleCount > learningCycles.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', '')\">\n <span>View all {{ learningCycleCount }} cycles...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Notes & Documentation -->\n @if (record.ID) {\n <mj-accordion-panel id=\"notes\"\n [Expanded]=\"GetSectionExpanded('notes', false)\"\n [Disabled]=\"loadingStates.notes\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes\n @if (loadingStates.notes) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (noteCount > 0) {\n <span> ({{ noteCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage notes, documentation, and annotations for this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNotes) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Add Note\n </button>\n }\n </div>\n </div>\n @if (noteCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-sticky-note\"\n Title=\"No Notes\"\n Message=\"Add notes to document important information, observations, or instructions for this agent.\"\n [ActionText]=\"(EditMode && UserCanCreateNotes) ? 'Create First Note' : ''\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"addNote()\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (note of agentNotes; track note.ID) {\n <div class=\"entity-item note-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', note.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ note.Type || 'Note' }}</div>\n @if (note.Note) {\n <div class=\"item-preview\">{{ note.Note.substring(0, 100) }}{{ note.Note.length > 100 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (note.__mj_CreatedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ note.__mj_CreatedAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (noteCount > agentNotes.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', '')\">\n <span>View all {{ noteCount }} notes...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Search -->\n @if (record.ID) {\n <mj-accordion-panel id=\"search\"\n [Expanded]=\"GetSectionExpanded('search', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-magnifying-glass\"></i> Search\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Control this agent's access to <strong>Scoped Search</strong> and assign the scopes it can use for pre-execution RAG or agent-invoked search.\n </div>\n </div>\n\n <!-- Scope Access mode -->\n <div class=\"agent-search-access\">\n <label class=\"agent-search-access-option\" [class.active]=\"record.SearchScopeAccess === 'All'\">\n <input type=\"radio\" name=\"SearchScopeAccess\" value=\"All\" [checked]=\"record.SearchScopeAccess === 'All'\" [disabled]=\"!EditMode\" (change)=\"record.SearchScopeAccess = 'All'\">\n <i class=\"fa-solid fa-globe\"></i>\n <div class=\"agent-search-access-text\">\n <div class=\"agent-search-access-title\">All</div>\n <div class=\"agent-search-access-desc\">Can use any scope including Global. No scope restriction.</div>\n </div>\n </label>\n <label class=\"agent-search-access-option\" [class.active]=\"record.SearchScopeAccess === 'Assigned'\">\n <input type=\"radio\" name=\"SearchScopeAccess\" value=\"Assigned\" [checked]=\"record.SearchScopeAccess === 'Assigned'\" [disabled]=\"!EditMode\" (change)=\"record.SearchScopeAccess = 'Assigned'\">\n <i class=\"fa-solid fa-user-check\"></i>\n <div class=\"agent-search-access-text\">\n <div class=\"agent-search-access-title\">Assigned</div>\n <div class=\"agent-search-access-desc\">Can use ONLY scopes listed below, for users with a Search grant on the scope (directly or through a role). Other scopes are rejected with ACCESS_DENIED.</div>\n </div>\n </label>\n <label class=\"agent-search-access-option\" [class.active]=\"record.SearchScopeAccess === 'None'\">\n <input type=\"radio\" name=\"SearchScopeAccess\" value=\"None\" [checked]=\"record.SearchScopeAccess === 'None'\" [disabled]=\"!EditMode\" (change)=\"record.SearchScopeAccess = 'None'\">\n <i class=\"fa-solid fa-ban\"></i>\n <div class=\"agent-search-access-text\">\n <div class=\"agent-search-access-title\">None</div>\n <div class=\"agent-search-access-desc\">No search capability. The Scoped Search action and pre-execution retrieval are disabled for this agent.</div>\n </div>\n </label>\n </div>\n\n <!-- Assigned scopes grid -->\n @if (record.SearchScopeAccess !== 'None') {\n <div class=\"agent-search-grid-header\">\n <h4>Assigned Scopes</h4>\n <p class=\"section-description\">\n <strong>Pre-Execution</strong> scopes are searched before the first LLM call, for users who may search them.\n <strong>Agent-Invoked</strong> scopes are callable via the Scoped Search tool during execution.\n <strong>Both</strong> covers both paths.\n </p>\n </div>\n <mj-search-scope-child-grid\n [ParentID]=\"record.ID\"\n ChildEntityName=\"MJ: AI Agent Search Scopes\"\n ParentFieldName=\"AgentID\"\n [Columns]=\"AgentSearchScopeColumns\"\n [Disabled]=\"!EditMode\"\n AddButtonLabel=\"+ Assign another scope\"\n EmptyMessage=\"No scopes assigned yet. Assign at least one if this agent will use Scoped Search.\"\n (RowsChanged)=\"LoadPermissionSummary()\">\n </mj-search-scope-child-grid>\n\n <!-- Phase 2A: read-only audit summary of who has\n permission on each of this agent's assigned scopes.\n Editing happens in the Knowledge Hub Config dashboard\n (see \"Permissions\" subtab under Search Scopes). -->\n <div class=\"agent-search-section\" style=\"margin-top: 16px;\">\n <h4 style=\"margin: 0 0 8px 0;\">\n <i class=\"fa-solid fa-shield-halved\"></i> Effective scope permissions\n </h4>\n <p class=\"section-description\" style=\"margin-bottom: 8px;\">\n Per-user / per-role grants on the scopes assigned above. Edit grants in\n <strong>Knowledge Hub Config &rarr; Search Scopes &rarr; Permissions</strong>.\n </p>\n @if (IsLoadingPermissions) {\n <div style=\"color: var(--mj-text-muted);\">Loading permissions&hellip;</div>\n } @else if (PermissionSummary.length === 0) {\n <div style=\"color: var(--mj-text-muted); font-style: italic;\">\n No scopes assigned yet \u2014 permissions will appear here once you add scopes above.\n </div>\n } @else {\n @for (s of PermissionSummary; track s.ScopeID) {\n <div style=\"margin-bottom: 12px; padding: 8px 12px; background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-subtle); border-radius: 4px;\">\n <div style=\"font-weight: 600; margin-bottom: 4px;\">{{ s.ScopeName }}</div>\n @if (s.Permissions.length === 0) {\n <div style=\"color: var(--mj-text-muted); font-size: 0.9em;\">\n No explicit permissions. Users need a Search grant (directly or through a role) unless this agent's access is <code>All</code>.\n </div>\n } @else {\n <ul style=\"margin: 4px 0 0 16px; padding: 0;\">\n @for (p of s.Permissions; track p.Principal + p.Level) {\n <li style=\"font-size: 0.9em; padding: 2px 0;\">\n <i class=\"fa-solid\" [class.fa-user]=\"p.PrincipalType === 'User'\" [class.fa-users]=\"p.PrincipalType === 'Role'\"></i>\n <strong>{{ p.Principal }}</strong>\n <span style=\"color: var(--mj-text-muted);\">({{ p.PrincipalType }})</span>\n &mdash; <span [style.color]=\"p.Level === 'None' ? 'var(--mj-status-error-text)' : 'var(--mj-text-primary)'\">{{ p.Level }}</span>\n </li>\n }\n </ul>\n }\n </div>\n }\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Payload -->\n <mj-accordion-panel id=\"payload\"\n [Expanded]=\"GetSectionExpanded('payload', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-exchange-alt\"></i> Payload Management\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure how this agent handles data payloads, path routing, and validation between parent and child agents.\n </div>\n </div>\n <!-- Payload Scope Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-target\"></i>\n Payload Scope\n </h3>\n <div class=\"payload-field-container\">\n <div class=\"payload-field-info\">\n <label class=\"payload-field-label\">Payload Scope Path</label>\n <p class=\"payload-field-description\">\n Specify a path within the parent payload that this sub-agent should operate on.\n Leave empty to receive the entire payload.\n </p>\n </div>\n <div class=\"payload-field-input\">\n <mj-form-field\n FieldName=\"PayloadScope\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n <div class=\"payload-field-example\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Example: <code>/customer/profile</code> or <code>/analysis/results</code></span>\n </div>\n </div>\n </div>\n </div>\n <!-- Path Configuration Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-route\"></i>\n Path Configuration\n </h3>\n <div class=\"payload-paths-grid\">\n <!-- Downstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon downstream\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Downstream Paths</h4>\n <p>JSON array of paths to pass to sub-agents</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadDownstreamPaths || '[&quot;*&quot;]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to pass entire payload or specify paths like <code>[\"user.id\", \"order.*\"]</code>\n </div>\n </div>\n </div>\n <!-- Upstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon upstream\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Upstream Paths</h4>\n <p>JSON array of paths sub-agents can write back</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadUpstreamPaths || '[&quot;*&quot;]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to allow all writes or limit to specific paths\n </div>\n </div>\n </div>\n <!-- Self Read Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-read\">\n <i class=\"fa-solid fa-eye\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Read Paths</h4>\n <p>JSON array of paths this agent can read</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can read from the payload\n </div>\n </div>\n </div>\n <!-- Self Write Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-write\">\n <i class=\"fa-solid fa-pen\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Write Paths</h4>\n <p>JSON array of paths this agent can write to</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can write back to the payload\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Validation Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Final Payload Validation\n </h3>\n <div class=\"payload-validation-container\">\n <div class=\"payload-validation-settings\">\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Validation Mode</label>\n <p class=\"validation-field-description\">How to handle validation failures</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Max Retries</label>\n <p class=\"validation-field-description\">Maximum validation retry attempts</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMaxRetries\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"payload-validation-schema\">\n <label class=\"validation-schema-label\">\n <i class=\"fa-solid fa-code\"></i>\n Validation Schema\n </label>\n <p class=\"validation-schema-description\">\n JSON schema or validation rules for the final payload structure\n </p>\n <div class=\"validation-schema-editor\">\n <mj-code-editor\n [value]=\"record.FinalPayloadValidation || '{}'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\"\n (valueChange)=\"updatePayloadField('FinalPayloadValidation', $event)\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Execution Guardrails (New Separate Panel) -->\n <mj-accordion-panel id=\"guardrails\"\n [Expanded]=\"GetSectionExpanded('guardrails', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-shield-halved\"></i> Execution Guardrails\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Set limits to prevent runaway agent executions and control resource usage.\n </div>\n </div>\n <div class=\"form-fields-grid\">\n <mj-form-field\n FieldName=\"MaxCostPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Cost ($)\"\n Description=\"Maximum cost per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTokensPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Tokens\"\n Description=\"Maximum tokens per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxIterationsPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Iterations\"\n Description=\"Maximum prompt iterations\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTimePerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Time (seconds)\"\n Description=\"Maximum execution time\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Configuration (Settings Panel) -->\n <mj-accordion-panel id=\"config\"\n [Expanded]=\"GetSectionExpanded('config', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-cogs\"></i> Configuration\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure agent behavior, execution settings, and advanced features.\n </div>\n </div>\n <!-- Identity & Behavior Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-id-card\"></i>\n Identity & Behavior\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Status</h4>\n <p>Current availability and operational status</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n name=\"agentStatus\"\n class=\"config-field-input\">\n </mj-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Status || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Type</h4>\n <p>Category and system-level behavior</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.TypeID\"\n [Data]=\"agentTypes\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n name=\"agentTypeID\"\n class=\"config-field-input\">\n </mj-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Type || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Category</h4>\n <p>Organizational category for this agent</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"SelectedCategoryKey\"\n SelectionMode=\"single\"\n SelectableTypes=\"branch\"\n Placeholder=\"Select a category...\"\n [Clearable]=\"true\"\n [EnableSearch]=\"true\"\n (ValueChange)=\"OnCategoryChange($event)\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Category || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-bolt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Expose as Action</h4>\n <p>Make available as an action for other agents</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExposeAsAction\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-align-left\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Description</h4>\n <p>Detailed agent description and purpose</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"Description\"\n Type=\"textarea\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Execution Settings Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Settings\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Mode</h4>\n <p>How sub-agents are executed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sort-numeric-down\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Order</h4>\n <p>Order when run with siblings</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionOrder\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Default Effort Level</h4>\n <p>Default effort level for all prompts (1-100)</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DefaultPromptEffortLevel\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Higher values request more thorough reasoning (1=minimal, 100=maximum)\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-code\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Driver Class</h4>\n <p>Custom implementation class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DriverClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Visual Identity Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-palette\"></i>\n Visual Identity\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-icons\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Icon Class</h4>\n <p>Font Awesome icon class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"IconClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Example: <code>fa-solid fa-robot</code>\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-image\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Logo URL</h4>\n <p>URL for agent logo image</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"LogoURL\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Takes precedence over Icon Class\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Context Compression Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-compress\"></i>\n Context Compression\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Enable Context Compression</h4>\n <p>Automatically compress conversation context when message threshold is reached</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"EnableContextCompression\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n (valueChange)=\"onContextCompressionToggle($event)\">\n </mj-form-field>\n </div>\n </div>\n @if (record.EnableContextCompression) {\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-hashtag\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Message Threshold</h4>\n <p>Messages before compression triggers</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageThreshold\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-save\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Messages to Keep</h4>\n <p>Recent messages to retain uncompressed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageRetentionCount\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Compression Prompt</h4>\n <p>Prompt used for summarization</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <div class=\"prompt-selector-container\">\n <div class=\"prompt-display\">\n @if (selectedContextCompressionPrompt) {\n <span class=\"prompt-name\">{{ selectedContextCompressionPrompt.Name }}</span>\n } @else {\n <span class=\"no-prompt\">No prompt selected</span>\n }\n </div>\n <div class=\"prompt-actions\">\n <button type=\"button\"\n mjButton\n variant=\"outline\"\n size=\"sm\"\n (click)=\"openContextCompressionPromptSelector()\"\n class=\"prompt-select-btn\">\n <i class=\"fa-solid fa-search\"></i>\n {{ selectedContextCompressionPrompt ? 'Change' : 'Select' }} Prompt\n </button>\n @if (selectedContextCompressionPrompt) {\n <button type=\"button\"\n mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"clearContextCompressionPrompt()\"\n class=\"prompt-clear-btn\"\n title=\"Clear selection\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n } @else {\n <span class=\"config-field-display\">{{ selectedContextCompressionPrompt?.Name || record.ContextCompressionPrompt || 'Not Set' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n </div>\n }\n </form>\n</mj-record-form-container>\n}\n\n<!-- Permissions Dialog (from @memberjunction/ng-agents) -->\n@if (ShowPermissionsDialog) {\n <mj-agent-permissions-dialog\n [Agent]=\"record\"\n (Closed)=\"onPermissionsDialogClosed()\"\n (PermissionsChanged)=\"refreshRelatedData()\">\n </mj-agent-permissions-dialog>\n}", styles: ["/* AI Agent Form - Modern Redesign */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Agent Header Section - Compact Design */\n.agent-header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n/* Header collapse toggle button */\n.agent-header-toggle {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle i {\n font-size: 10px;\n}\n\n.agent-overview {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper i {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n/* \u2500\u2500 Minimized Floating Header Bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.agent-header-mini {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand i {\n font-size: 9px;\n}\n\n.agent-header-mini-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer {\n flex: 1;\n}\n\n.agent-header-mini-btn {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn i {\n font-size: 11px;\n}\n\n.agent-icon-wrapper img.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode,\n.parent-agent {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode i,\n.parent-agent i {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.parent-agent.clickable:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Prompt Controls Section */\n.prompt-controls {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n/* Action Buttons Section */\n.agent-actions {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Panel-Based Form Content */\n.form-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n/* Panel Content */\n.panel-content {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title i {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n/* Form Fields Grid */\n.form-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Sub-grids styling (legacy) */\n.sub-grid-container {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; /* Hidden as we now use cards */\n}\n\n/* Empty States */\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n/* Loading State */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Quick Actions */\n.quick-actions {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* Entity List Interface */\n.entity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item .item-icon {\n background: var(--mj-status-success);\n}\n\n.action-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.model-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.learning-item .item-icon {\n background: var(--mj-status-error);\n}\n\n.note-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.item-icon i {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item .item-icon i,\n.action-item .item-icon i,\n.sub-agent-item .item-icon i,\n.model-item .item-icon i,\n.learning-item .item-icon i,\n.note-item .item-icon i {\n color: var(--mj-text-inverse);\n}\n\n.item-icon img.sub-agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content {\n flex: 1;\n min-width: 0;\n}\n\n.item-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag,\n.priority-tag,\n.status-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item:hover .item-actions {\n opacity: 1;\n}\n\n.entity-item:hover .item-actions > i {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n/* Pagination Controls */\n.pagination-controls {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn i {\n font-size: 12px;\n}\n\n.page-nav-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info .record-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info .fa-spinner {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn i {\n margin-right: 4px;\n}\n\n/* Payload Section Styles */\n.payload-config-section,\n.payload-paths-section,\n.payload-validation-section {\n margin-bottom: 32px;\n}\n\n.subsection-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title i {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group {\n margin-bottom: 20px;\n}\n\n.payload-field-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label i {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n/* Code editor styling */\n.payload-field-group mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group mj-code-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* Payload textarea styling */\n.payload-field-group mj-form-field ::ng-deep textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n/* Execution History Panel */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Timeline List for Execution History */\n.timeline-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Modern Card-Based Interface (Legacy - Keep for backward compatibility) */\n.cards-container {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card:hover::before {\n opacity: 1;\n}\n\n.card-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card .card-icon {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card .card-icon {\n background: var(--mj-status-success);\n}\n\n.action-card .card-icon {\n background: var(--mj-status-warning);\n}\n\n.card-icon i {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card .card-icon i,\n.prompt-card .card-icon i,\n.action-card .card-icon i {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card:hover .card-actions {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n/* Badge Styles */\n.priority-badge {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* View All Card */\n.view-all-card {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n/* Timeline Interface for History */\n.timeline-container {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item > div:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item:last-child .timeline-marker::after {\n display: none;\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker {\n background: var(--mj-text-muted);\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error i {\n flex-shrink: 0;\n}\n\n/* Expanded Content Styles */\n.timeline-expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section,\n.error-section {\n margin-bottom: 20px;\n}\n\n.result-section h5,\n.error-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.result-content,\n.error-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Code editor styling within result section */\n.result-section mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary i {\n font-size: 12px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n /* Header Responsiveness */\n .agent-header {\n padding: 16px;\n }\n\n .agent-header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button {\n flex: 1;\n justify-content: center;\n }\n\n /* Panel Responsiveness */\n .form-content {\n padding: 12px;\n }\n\n ::ng-deep .k-panelbar > .k-panelbar-item > .k-header {\n padding: 16px 20px;\n font-size: 15px;\n }\n\n .panel-content {\n padding: 20px 16px;\n }\n\n .section-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n /* Entity List Responsiveness */\n .entity-item {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon {\n width: 36px;\n height: 36px;\n }\n\n .item-icon i {\n font-size: 16px;\n }\n\n .item-title {\n font-size: 15px;\n }\n\n .item-preview {\n font-size: 13px;\n }\n\n .item-meta {\n gap: 8px;\n }\n\n /* Timeline Responsiveness */\n .timeline-item {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker i {\n font-size: 12px;\n }\n\n .timeline-title {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date {\n align-self: flex-start;\n }\n\n /* Form Field Responsiveness */\n .form-fields-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n /* Legacy card support */\n .cards-container {\n grid-template-columns: 1fr;\n }\n}\n\n/* Execution History Panel - Max Height and Scroll */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Custom scrollbar for execution history */\n.execution-history-panel::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n/* Execution History Search Bar */\n.execution-search-bar {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar .fa-search {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n/* New Execution History Card Design */\n.execution-history-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; /* Align with execution title text, accounting for status indicator + gap */\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item i {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label {\n font-weight: 500;\n}\n\n.metric-value {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n.expand-icon {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n/* Execution Expanded Content */\n.execution-expanded-content {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics {\n margin-bottom: 20px;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail i {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section {\n margin-top: 16px;\n}\n\n.result-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n/* Responsive adjustments for execution history */\n@media (max-width: 768px) {\n .execution-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section {\n width: 100%;\n }\n\n .execution-metrics {\n margin-left: 0; /* Remove left margin on mobile */\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* === PAYLOAD MANAGEMENT SECTION === */\n.payload-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n/* Payload Scope Styling */\n.payload-field-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example i {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n/* Path Configuration Grid */\n.payload-paths-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content {\n padding: 1rem;\n}\n\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n/* Payload Validation Container */\n.payload-validation-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label i {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* === CONFIGURATION SECTION === */\n.config-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width {\n grid-column: 1 / -1;\n}\n\n.config-card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content {\n padding: 1rem;\n}\n\n/* Custom field styling for config cards */\n.config-field-input {\n width: 100%;\n min-width: 250px;\n}\n\n.config-card-content ::ng-deep mj-form-field {\n width: 100% !important;\n}\n\n.config-field-display {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n/* Prompt selector styling */\n.prompt-selector-container {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn {\n white-space: nowrap;\n}\n\n.prompt-clear-btn {\n min-width: 32px;\n}\n\n.config-card-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n/* === RESPONSIVE DESIGN === */\n@media (max-width: 768px) {\n .payload-field-container,\n .payload-validation-container {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title,\n .config-section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header,\n .config-card-header {\n padding: 0.75rem;\n }\n\n .payload-path-content,\n .config-card-content {\n padding: 0.75rem;\n }\n\n .payload-field-container,\n .payload-validation-container {\n padding: 1rem;\n }\n}\n\n/* ===================================\n Unified Sub-Agents with Filtering\n =================================== */\n\n/* Filter Controls */\n.sub-agent-filter-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* Sub-Agent Type Badge */\n.sub-agent-type-badge {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n/* Sub-Agent Item Styling */\n.sub-agent-item {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item:hover {\n transform: translateX(4px);\n}\n\n/* Payload Info Tag */\n.payload-info {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n/* Empty State Info Cards */\n.empty-state-info {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card strong {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card p {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n/* Responsive adjustments for sub-agent filters */\n@media (max-width: 768px) {\n .sub-agent-filter-header {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls,\n .header-actions {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info {\n grid-template-columns: 1fr;\n }\n}\n\n/* ===== Search Scope Access (mockup #5) ===== */\n.agent-search-access {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin: 8px 0 20px;\n}\n\n.agent-search-access-option {\n display: grid;\n grid-template-columns: 24px 28px 1fr;\n align-items: start;\n gap: 10px;\n padding: 14px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n transition: background 120ms ease, border-color 120ms ease;\n}\n\n.agent-search-access-option:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.agent-search-access-option.active {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-search-access-option input[type=\"radio\"] {\n accent-color: var(--mj-brand-primary);\n margin-top: 2px;\n}\n\n.agent-search-access-option > i {\n font-size: 20px;\n color: var(--mj-brand-primary);\n text-align: center;\n margin-top: 2px;\n}\n\n.agent-search-access-text {\n min-width: 0;\n}\n\n.agent-search-access-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.agent-search-access-desc {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.agent-search-grid-header {\n margin: 8px 0 12px;\n}\n\n.agent-search-grid-header h4 {\n margin: 0 0 4px;\n color: var(--mj-text-primary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n@media (max-width: 768px) {\n .agent-search-access {\n grid-template-columns: 1fr;\n }\n}\n\n/* \u2500\u2500 Execution History: Runs | Sessions segmented toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.history-view-toggle {\n display: inline-flex;\n gap: 2px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 3px;\n margin-bottom: 14px;\n}\n\n.history-toggle-option {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 6px 16px;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.history-toggle-option:hover {\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.history-toggle-count {\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active .history-toggle-count {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary);\n}\n\n/* \u2500\u2500 Voice session rows in Execution History \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.session-card {\n cursor: pointer;\n}\n\n.session-role-chip {\n display: inline-flex;\n align-items: center;\n margin-left: 8px;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 10.5px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.session-role-chip--target {\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n color: var(--mj-status-info);\n}\n\n.session-status-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.session-status-pill[data-status=\"Active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n border-color: color-mix(in srgb, var(--mj-status-success) 25%, transparent);\n}\n\n.session-status-pill[data-status=\"Idle\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n border-color: color-mix(in srgb, var(--mj-status-warning) 25%, transparent);\n}\n\n/* \u2500\u2500 Form tabs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Panes are hidden with `display: none`, never removed from the DOM. The\n designer pane holds UNSAVED canvas edits; @if-ing it away on a tab switch\n would discard them silently, and would also throw away the canvas's zoom and\n node positions on every trip to Details. */\n\n.agent-tabbar {\n flex: 0 0 auto;\n padding: 8px 12px 0;\n background: var(--mj-bg-page);\n}\n\n.agent-pane {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.agent-pane--hidden {\n display: none;\n}\n\n.agent-pane--designer {\n overflow: hidden;\n padding: 8px 12px 12px;\n background: var(--mj-bg-page);\n}\n\n/* The designer's dynamically-created section has no height of its own, so without\n this the flow canvas collapses to zero and renders as an empty strip. */\n.agent-pane--designer > ng-component,\n.agent-pane--designer > * {\n flex: 1;\n min-height: 0;\n}\n\n.agent-pane--invocations {\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n}\n\n/* Initial load: the form's header renders as soon as the record arrives, but the tab strip and\n every pane wait on the agent TYPE. This fills that window so the page reads as loading rather\n than as broken. */\n.agent-form-loading {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 240px;\n padding: 32px;\n background: var(--mj-bg-page);\n}\n"] }]
5859
+ args: [{ standalone: false, selector: 'mj-ai-agent-form', template: "@if (record) {\n<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n [ToolbarConfig]=\"toolbarConfig\"\n [WidthMode]=\"'full-width'\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n <form class=\"record-form\" #form=\"ngForm\">\n <!-- Agent Header \u2014 expanded view -->\n @if (!HeaderCollapsed) {\n <div class=\"agent-header phone-hero\" [class.hero-view]=\"!EditMode\" [class.hero-compact]=\"!EditMode && !HeroDetailsOpen\">\n <div class=\"agent-header-content\">\n <button class=\"agent-header-toggle phone-hero-hide\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Minimize header\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <div class=\"agent-overview\">\n <div class=\"agent-icon-wrapper\">\n @if (hasLogoURL()) {\n <img [src]=\"record.LogoURL\" [alt]=\"record.Name + ' logo'\" class=\"agent-logo\">\n } @else {\n <i [class]=\"getAgentIcon()\"></i>\n }\n </div>\n <div class=\"agent-info\">\n @if (EditMode) {\n <input type=\"text\" class=\"mj-input agent-name-input\"\n [(ngModel)]=\"record.Name\"\n name=\"agentName\"\n placeholder=\"Enter agent name...\">\n } @else {\n <h1 class=\"agent-name\">{{ record.Name || 'Untitled AI Agent' }}</h1>\n }\n <div class=\"agent-meta\">\n @if (record.Status) {\n <span class=\"status-badge\" [style.background-color]=\"getStatusBadgeColor()\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ record.Status }}\n </span>\n }\n @if (record.Type) {\n <span class=\"execution-mode phone-hero-detail\">\n Agent Type: {{ record.Type }}\n </span>\n }\n @if (record.Parent) {\n <span class=\"parent-agent clickable phone-hero-detail\"\n (click)=\"navigateToParentAgent()\"\n title=\"Open parent agent: {{ record.Parent }}\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Child of {{ record.Parent }}\n <i class=\"fa-solid fa-external-link\" style=\"margin-left: 4px; font-size: 10px;\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"agent-actions\">\n @if (record.ID) {\n <button mjButton variant=\"primary\" size=\"lg\" class=\"phone-hero-run\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run this AI agent\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n <button mjButton size=\"lg\" class=\"phone-hero-detail\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone \u2014 click to manage permissions' : 'Restricted \u2014 click to manage permissions'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n {{ IsOpenToEveryone ? 'Open' : 'Restricted' }}\n </button>\n }\n <button mjButton variant=\"outline\" size=\"sm\" class=\"phone-hero-detail\" (click)=\"refreshRelatedData()\" title=\"Refresh all data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n @if (!EditMode && HeroSummary) {\n <button type=\"button\" class=\"phone-hero-summary\" [attr.aria-expanded]=\"HeroDetailsOpen\" (click)=\"ToggleHeroDetails()\">\n <span class=\"phone-hero-summary-text\">{{ HeroSummary }}</span>\n <i class=\"fa-solid fa-chevron-down\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n <!-- Agent Header \u2014 minimized floating bar -->\n @if (HeaderCollapsed) {\n <div class=\"agent-header-mini\">\n <button class=\"agent-header-mini-expand\" (click)=\"ToggleHeaderCollapsed()\"\n title=\"Expand header\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n <span class=\"agent-header-mini-name\">{{ record.Name || 'Untitled AI Agent' }}</span>\n @if (record.Status) {\n <span class=\"agent-header-mini-status\" [style.background-color]=\"getStatusBadgeColor()\">\n {{ record.Status }}\n </span>\n }\n <div class=\"agent-header-mini-spacer\"></div>\n @if (record.ID) {\n <button class=\"agent-header-mini-btn agent-header-mini-btn--primary\"\n (click)=\"openTestHarness()\"\n [disabled]=\"record.Status !== 'Active'\"\n title=\"Run agent\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n <button class=\"agent-header-mini-btn\"\n (click)=\"openPermissionsDialog()\"\n [title]=\"IsOpenToEveryone ? 'Open to everyone' : 'Restricted'\">\n <i class=\"fa-solid\" [class.fa-lock-open]=\"IsOpenToEveryone\" [class.fa-lock]=\"!IsOpenToEveryone\"\n [style.color]=\"IsOpenToEveryone ? 'var(--mj-status-success)' : null\"></i>\n </button>\n }\n <button class=\"agent-header-mini-btn\"\n (click)=\"refreshRelatedData()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n }\n <!-- The tab strip and every pane depend on the agent's TYPE, which loads asynchronously.\n Without this the form rendered its header over an empty area for the whole load \u2014\n no tabs, no designer, and the details pane hidden because no tab was active yet. -->\n @if (IsFormInitializing) {\n <div class=\"agent-form-loading\">\n <mj-loading text=\"Loading agent...\" size=\"medium\"></mj-loading>\n </div>\n } @else {\n <!-- Tabs, not accordions. For an agent type that ships a designer, the diagram IS the agent;\n leaving it as one collapsed panel among eleven made the record's most important view its\n least reachable one. Invocations is offered for every agent, because \"what runs this when\n I'm not looking?\" is a question you can ask of any of them. -->\n @if (FormTabs.length > 1) {\n <div class=\"agent-tabbar\">\n <!-- Phone: the tabs become one button that opens the Sections sheet -->\n <mj-section-picker class=\"phone-section-picker\"\n [Items]=\"SectionPickerItems\"\n [ActiveKey]=\"ActiveFormTab || ''\"\n (ActiveKeyChange)=\"OnSectionPicked($event)\"></mj-section-picker>\n <mj-tab-nav [Tabs]=\"FormTabs\" [ActiveKey]=\"ActiveFormTab || ''\" (TabChange)=\"OnFormTabChange($event)\"></mj-tab-nav>\n </div>\n }\n\n @if (HasDesignerTab) {\n <!-- Hidden with CSS rather than removed with @if: the designer holds UNSAVED edits, and\n destroying it on a tab switch would discard them without a word. Keeping it mounted also\n means the canvas keeps its zoom and node positions across trips to Details. -->\n <div class=\"agent-pane agent-pane--designer\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'designer'\">\n @if (loadingStates.customSection) {\n <mj-loading text=\"Loading {{ agentType?.Name }} configuration...\" size=\"medium\"></mj-loading>\n }\n <ng-container #customSectionContainer></ng-container>\n </div>\n }\n\n @if (record.ID) {\n <div class=\"agent-pane agent-pane--invocations\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'invocations'\">\n <mj-agent-invocations\n [Provider]=\"Provider\"\n [AgentID]=\"record.ID\"\n [Active]=\"ActiveFormTab === 'invocations'\"\n [ExposeAsAction]=\"record.ExposeAsAction\"\n [ParentAgentName]=\"record.Parent\"\n [ParentAgentID]=\"record.ParentID\"\n (RecordOpenRequested)=\"OnInvocationOpenRequested($event)\">\n </mj-agent-invocations>\n </div>\n <div class=\"agent-pane agent-pane--rubrics\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'rubrics'\">\n <mj-agent-rubrics\n [Provider]=\"Provider\"\n [AgentID]=\"record.ID\"\n [Active]=\"ActiveFormTab === 'rubrics'\">\n </mj-agent-rubrics>\n </div>\n }\n\n <!-- Single Pane Layout with Expander Panels -->\n <div class=\"form-content agent-pane\" [class.agent-pane--hidden]=\"ActiveFormTab !== 'details'\">\n <!-- Requests & History -->\n @if (record.ID) {\n <mj-accordion-panel id=\"history\"\n [Expanded]=\"GetSectionExpanded('history', false)\"\n [Disabled]=\"loadingStates.executionHistory\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-history\"></i> Execution History\n @if (loadingStates.executionHistory) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (executionHistoryCount > 0) {\n <span> ({{ executionHistoryCount }}@if (executionHistoryCount < totalExecutionHistoryCount) { of {{ totalExecutionHistoryCount }}})</span>\n }\n </ng-template>\n <div class=\"panel-content execution-history-panel\">\n <!-- Segmented toggle: agent runs vs. realtime voice sessions -->\n @if (UserCanViewSessions) {\n <div class=\"history-view-toggle\" role=\"tablist\">\n <button type=\"button\" class=\"history-toggle-option\"\n [class.active]=\"executionHistoryView === 'runs'\"\n (click)=\"setExecutionHistoryView('runs')\">\n <i class=\"fa-solid fa-person-running\"></i> Runs\n @if (totalExecutionHistoryCount > 0) {\n <span class=\"history-toggle-count\">{{ totalExecutionHistoryCount }}</span>\n }\n </button>\n <button type=\"button\" class=\"history-toggle-option\"\n [class.active]=\"executionHistoryView === 'sessions'\"\n (click)=\"setExecutionHistoryView('sessions')\">\n <i class=\"fa-solid fa-tower-broadcast\"></i> Sessions\n @if (totalSessionCount > 0) {\n <span class=\"history-toggle-count\">{{ totalSessionCount }}</span>\n }\n </button>\n </div>\n }\n @if (executionHistoryView === 'sessions') {\n <!-- Voice/realtime sessions list -->\n @if (loadingSessions) {\n <mj-loading text=\"Loading sessions...\" size=\"medium\"></mj-loading>\n } @else if (agentSessions.length === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-tower-broadcast\"\n Title=\"No Voice Sessions\"\n Message=\"This agent hasn't participated in any realtime voice sessions yet \u2014 neither as the co-agent nor as a delegation target.\"\n Size=\"compact\" />\n } @else {\n <div class=\"execution-history-list\">\n @for (item of agentSessions; track item.row.ID) {\n <div class=\"execution-card session-card\" (click)=\"openSessionRecord(item.row.ID)\" title=\"Open session\">\n <div class=\"execution-header\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getSessionStatusColor(item.row.Status)\">\n <i [class]=\"getSessionStatusIcon(item.row.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-title\">\n Session #{{ item.row.ID.substring(0, 8) }}\n @if (item.isCoAgent) {\n <span class=\"session-role-chip\">as co-agent</span>\n }\n @if (item.isTarget) {\n <span class=\"session-role-chip session-role-chip--target\">as target</span>\n }\n </div>\n <div class=\"execution-date\">{{ item.row.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n <div class=\"execution-metrics\">\n <div class=\"metric-item\">\n <span class=\"session-status-pill\" [attr.data-status]=\"item.row.Status\">{{ item.row.Status }}</span>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatSessionDuration(item) }}</span>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-plug\"></i>\n <span class=\"metric-label\">Channels:</span>\n <span class=\"metric-value\">{{ item.channelCount }}</span>\n </div>\n @if (item.isCoAgent && item.targetAgentName) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-bullseye\"></i>\n <span class=\"metric-label\">Target:</span>\n <span class=\"metric-value\">{{ item.targetAgentName }}</span>\n </div>\n }\n @if (item.isTarget && !item.isCoAgent && item.row.Agent) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-tower-broadcast\"></i>\n <span class=\"metric-label\">Co-agent:</span>\n <span class=\"metric-value\">{{ item.row.Agent }}</span>\n </div>\n }\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-user\"></i>\n <span class=\"metric-label\">User:</span>\n <span class=\"metric-value\">{{ item.row.User }}</span>\n </div>\n </div>\n </div>\n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openSessionRecord(item.row.ID); $event.stopPropagation()\" title=\"View session details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n }\n } @else {\n @if (loadingStates.executionHistory) {\n <mj-loading text=\"Loading execution history...\" size=\"medium\"></mj-loading>\n } @else if (executionHistoryCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-clock-rotate-left\"\n Title=\"No Execution History\"\n Message=\"This agent hasn't been executed yet. Use the Test Agent button to run the agent and see execution history here.\"\n Size=\"compact\" />\n } @else {\n <!-- Search Bar -->\n <div class=\"execution-search-bar\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search\"></i>\n <input type=\"text\" class=\"mj-input\"\n [(ngModel)]=\"executionSearchText\"\n (ngModelChange)=\"onExecutionSearchChange()\"\n [ngModelOptions]=\"{standalone: true}\"\n placeholder=\"Search by Run ID...\">\n </div>\n </div>\n <div class=\"execution-history-list\">\n @if (filteredExecutions.length === 0) {\n <mj-empty-state\n Variant=\"no-results\"\n Title=\"No Matching Results\"\n [Message]=\"ExecutionSearchEmptyMessage\"\n Size=\"compact\" />\n }\n @for (execution of filteredExecutions; track execution.ID) {\n <div class=\"execution-card\" [class.expanded]=\"expandedExecutions[execution.ID]\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution.ID)\">\n <div class=\"execution-left-section\">\n <div class=\"execution-status\">\n <div class=\"status-indicator\" [style.background-color]=\"getExecutionStatusColor(execution.Status)\">\n <i [class]=\"getExecutionStatusIcon(execution.Status)\"></i>\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-title\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"expandedExecutions[execution.ID]\"></i>\n Execution #{{ execution.ID.substring(0, 8) }}\n </div>\n <div class=\"execution-date\">{{ execution.__mj_CreatedAt | date:'MMM d, h:mm a' }}</div>\n </div>\n </div>\n <div class=\"execution-metrics\">\n @if (execution.Configuration) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <span class=\"metric-label\">Config:</span>\n <span class=\"metric-value\">{{ execution.Configuration }}</span>\n </div>\n }\n @if (execution.CompletedAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span class=\"metric-label\">Duration:</span>\n <span class=\"metric-value\">{{ formatExecutionTimeFromDates(execution.StartedAt, execution.CompletedAt) }}</span>\n </div>\n } @else if (execution.Status === 'Running') {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metric-label\">Running:</span>\n <!-- <span class=\"metric-value\">{{ execution.StartedAt | runningTime }}</span> -->\n </div>\n }\n @if (execution.TotalTokensUsedRollup || execution.TotalTokensUsed) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-microchip\"></i>\n <span class=\"metric-label\">Tokens:</span>\n <span class=\"metric-value\">{{ formatTokenCount(execution.TotalTokensUsedRollup || execution.TotalTokensUsed) }}</span>\n </div>\n }\n @if (execution.TotalCostRollup || execution.TotalCost) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <span class=\"metric-label\">Cost:</span>\n <span class=\"metric-value\">${{ formatCost(execution.TotalCostRollup || execution.TotalCost) }}</span>\n </div>\n }\n </div>\n </div>\n <div class=\"execution-actions\">\n <button class=\"action-btn\" (click)=\"openExecutionRecord(execution.ID); $event.stopPropagation()\" title=\"View details\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n </div>\n </div>\n @if (expandedExecutions[execution.ID]) {\n <div class=\"execution-expanded-content\">\n <!-- Detailed Metrics -->\n <div class=\"detailed-metrics\">\n <div class=\"metrics-grid\">\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Started</span>\n <span class=\"metric-data\">{{ execution.StartedAt | date:'medium' }}</span>\n </div>\n </div>\n @if (execution.CompletedAt) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Completed</span>\n <span class=\"metric-data\">{{ execution.CompletedAt | date:'medium' }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-microchip\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Tokens</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsed) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalTokensUsedRollup && execution.TotalTokensUsedRollup !== execution.TotalTokensUsed) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-sitemap\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">{{ formatTokenCount(execution.TotalTokensUsedRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Direct Cost</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCost) }}</span>\n </div>\n </div>\n }\n @if (execution.TotalCostRollup && execution.TotalCostRollup !== execution.TotalCost) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-calculator\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Total + Sub-agents</span>\n <span class=\"metric-data\">${{ formatCost(execution.TotalCostRollup) }}</span>\n </div>\n </div>\n }\n @if (execution.ConversationID) {\n <div class=\"metric-detail\">\n <i class=\"fa-solid fa-comments\"></i>\n <div class=\"metric-info\">\n <span class=\"metric-title\">Conversation</span>\n <span class=\"metric-data\">{{ execution.ConversationID.substring(0, 8) }}...</span>\n </div>\n </div>\n }\n </div>\n </div>\n @if (HasExecutionResult(execution)) {\n <div class=\"result-section\">\n <h5><i class=\"fa-solid fa-file-text\"></i> Result</h5>\n <mj-code-editor\n [value]=\"getExecutionResultPreview(execution, false)\"\n [readonly]=\"true\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"max-height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (execution.ErrorMessage) {\n <div class=\"error-section\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h5>\n <div class=\"error-content\">{{ execution.ErrorMessage }}</div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Pagination Controls -->\n @if (totalPages > 1) {\n <div class=\"pagination-controls\">\n <button mjButton\n variant=\"outline\"\n (click)=\"goToPreviousPage()\"\n [disabled]=\"!hasPreviousPage || isLoadingPage\"\n class=\"page-nav-btn\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n Previous\n </button>\n <div class=\"page-info\">\n @if (isLoadingPage) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Loading...\n } @else {\n Page {{ executionHistoryCurrentPage }} of {{ totalPages }}\n <span class=\"record-count\">({{ totalExecutionHistoryCount }} total)</span>\n }\n </div>\n <button mjButton\n variant=\"outline\"\n (click)=\"goToNextPage()\"\n [disabled]=\"!hasNextPage || isLoadingPage\"\n class=\"page-nav-btn\">\n Next\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"navigateToEntity('MJ: AI Agent Runs', '')\"\n class=\"view-all-btn\">\n <i class=\"fa-solid fa-external-link\"></i>\n View All in Grid\n </button>\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Actions -->\n @if (record.ID) {\n <mj-accordion-panel id=\"actions\"\n [Expanded]=\"GetSectionExpanded('actions', false)\"\n [Disabled]=\"loadingStates.actions\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-bolt\"></i> Actions\n @if (loadingStates.actions) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (actionCount > 0) {\n <span> ({{ actionCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n @if (loadingStates.actions) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading actions...</p>\n </div>\n } @else {\n <div class=\"section-header\">\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateActions) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"configureActions()\">\n <i class=\"fa-solid fa-plus\"></i> Add Action\n </button>\n }\n </div>\n </div>\n @if (actionCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-bolt\"\n Title=\"No Actions Configured\"\n Message=\"Add actions to enable this agent to perform specific tasks and operations.\"\n [ActionText]=\"(EditMode && UserCanCreateActions) ? 'Configure First Action' : ''\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"configureActions()\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (action of agentActions; track action.ID) {\n <div class=\"entity-item action-item\" (click)=\"navigateToEntity('MJ: Actions', action.ID)\">\n <div class=\"item-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ action.Name || 'Untitled Action' }}</div>\n @if (action.Description) {\n <div class=\"item-preview\">{{ action.Description }}</div>\n }\n <div class=\"item-meta\">\n @if (action.Type) {\n <span class=\"meta-tag\">{{ action.Type }}</span>\n }\n <span class=\"status-tag\" [class.active]=\"action.Status==='Active'\" [class.inactive]=\"action.Status!=='Active'\">\n <i class=\"fa-solid\" [class.fa-check-circle]=\"action.Status==='Active'\" [class.fa-times-circle]=\"action.Status!=='Active'\"></i>\n {{ action.Status }}\n </span>\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanDeleteActions) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"removeAction(action, $event)\"\n title=\"Remove action\"\n class=\"error-action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (actionCount > agentActions.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Actions', '')\">\n <span>View all {{ actionCount }} actions...</span>\n </div>\n }\n </div>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Sub-Agents (Unified View with Filter) -->\n @if (record.ID) {\n <mj-accordion-panel id=\"subagents\"\n [Expanded]=\"GetSectionExpanded('subagents', false)\"\n [Disabled]=\"loadingStates.subAgents\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-sitemap\"></i> Sub-Agents\n @if (loadingStates.subAgents) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (totalSubAgentCount > 0) {\n <span> ({{ totalSubAgentCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <!-- Filter Controls -->\n <div class=\"section-header sub-agent-filter-header\">\n <div class=\"filter-controls\">\n <div class=\"mj-button-group\">\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'all'\"\n (click)=\"setSubAgentFilter('all')\">\n <i class=\"fa-solid fa-layer-group\"></i>\n All ({{ totalSubAgentCount }})\n </button>\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'child'\"\n (click)=\"setSubAgentFilter('child')\">\n <i class=\"fa-solid fa-link\"></i>\n Child ({{ childSubAgentCount }})\n </button>\n <button mjButton\n size=\"sm\"\n [class.active]=\"subAgentFilter === 'related'\"\n (click)=\"setSubAgentFilter('related')\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Related ({{ relatedSubAgentCount }})\n </button>\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateSubAgents) {\n <button mjButton\n variant=\"primary\"\n size=\"sm\"\n (click)=\"createChildSubAgent()\"\n title=\"Create a new child sub-agent that shares this agent's payload\">\n <i class=\"fa-solid fa-link\"></i>\n Create Child\n </button>\n <button mjButton\n size=\"sm\"\n (click)=\"linkRelatedSubAgent()\"\n title=\"Link an existing agent as a related sub-agent with payload mapping\">\n <i class=\"fa-solid fa-share-nodes\"></i>\n Link Related\n </button>\n }\n </div>\n </div>\n <!-- Empty State -->\n @if (totalSubAgentCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-sitemap\"\n Title=\"No Sub-Agents\"\n Message=\"Sub-agents help build complex workflows through hierarchical orchestration.\"\n Size=\"compact\">\n <div class=\"empty-state-info\">\n <div class=\"info-card\">\n <i class=\"fa-solid fa-link\" style=\"color: var(--mj-status-info);\"></i>\n <strong>Child Sub-Agents</strong>\n <p>Share payload structure, dedicated to parent</p>\n </div>\n <div class=\"info-card\">\n <i class=\"fa-solid fa-share-nodes\" style=\"color: var(--mj-brand-primary);\"></i>\n <strong>Related Sub-Agents</strong>\n <p>Reusable agents with payload mapping</p>\n </div>\n </div>\n </mj-empty-state>\n } @else {\n <!-- Unified Sub-Agent List -->\n <div class=\"entity-list\">\n @for (item of filteredSubAgents; track item.agent.ID) {\n <div class=\"entity-item sub-agent-item\"\n [class.child-sub-agent]=\"item.type === 'child'\"\n [class.related-sub-agent]=\"item.type === 'related'\"\n (click)=\"navigateToEntity('MJ: AI Agents', item.agent.ID)\">\n <!-- Type Badge -->\n <div class=\"sub-agent-type-badge\"\n [style.background-color]=\"getSubAgentBadgeColor(item)\">\n <i [class]=\"getSubAgentBadgeIcon(item)\"></i>\n {{ getSubAgentBadgeText(item) }}\n </div>\n <!-- Agent Icon -->\n <div class=\"item-icon\">\n @if (hasSubAgentLogoURL(item.agent)) {\n <img [src]=\"item.agent.LogoURL\"\n [alt]=\"item.agent.Name + ' logo'\"\n class=\"sub-agent-logo\">\n } @else {\n <i [class]=\"getSubAgentIcon(item.agent)\"></i>\n }\n </div>\n <!-- Agent Content -->\n <div class=\"item-content\">\n <div class=\"item-title\">{{ item.agent.Name || 'Untitled Sub-Agent' }}</div>\n @if (item.agent.Description) {\n <div class=\"item-preview\">{{ item.agent.Description }}</div>\n }\n <div class=\"item-meta\">\n <!-- Payload Info -->\n <span class=\"meta-tag payload-info\">\n <i class=\"fa-solid fa-database\"></i>\n {{ getSubAgentPayloadInfo(item) }}\n </span>\n <!-- Status -->\n @if (item.agent.Status) {\n <span class=\"status-tag\"\n [style.background-color]=\"getStatusBadgeColor()\">\n {{ item.agent.Status }}\n </span>\n }\n <!-- Agent Type -->\n @if (item.agent.Type) {\n <span class=\"meta-tag\">{{ item.agent.Type }}</span>\n }\n </div>\n </div>\n <!-- Actions -->\n <div class=\"item-actions\">\n @if (EditMode) {\n <!-- Output Mapping Config (Related only) -->\n @if (item.type === 'related') {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"configureOutputMapping(item, $event)\"\n title=\"Configure output mapping\">\n <i class=\"fa-solid fa-exchange-alt\"></i>\n </button>\n }\n <!-- Advanced Settings (Child only) -->\n @if (item.type === 'child' && UserCanCreateSubAgents) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openSubAgentAdvancedSettings(item.agent, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n <!-- Remove/Unlink -->\n @if (UserCanDeleteSubAgents) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"item.type === 'child' ? removeChildSubAgent(item, $event) : unlinkRelatedSubAgent(item, $event)\"\n [title]=\"item.type === 'child' ? 'Delete child sub-agent' : 'Unlink related sub-agent'\"\n class=\"error-action\">\n <i [class]=\"item.type === 'child' ? 'fa-solid fa-trash' : 'fa-solid fa-unlink'\"></i>\n </button>\n }\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Prompts (With Model Selection) -->\n @if (record.ID) {\n <mj-accordion-panel id=\"prompts\"\n [Expanded]=\"GetSectionExpanded('prompts', false)\"\n [Disabled]=\"loadingStates.prompts\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-comments\"></i> Prompts\n @if (loadingStates.prompts) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (promptCount > 0) {\n <span> ({{ promptCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"prompt-controls\">\n <!-- Model Selection Mode Control -->\n <div class=\"model-selection-mode\">\n <label class=\"model-selection-label\">\n <i class=\"fa-solid fa-sliders\"></i>\n Model Selection:\n </label>\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.ModelSelectionMode\"\n name=\"modelSelectionMode\"\n [Data]=\"modelSelectionModes\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n class=\"model-selection-dropdown\">\n </mj-dropdown>\n } @else {\n <span class=\"model-selection-value\">{{ record.ModelSelectionMode || 'Agent Type' }}</span>\n }\n </div>\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNewPrompts) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addPrompt()\">\n <i class=\"fa-solid fa-plus\"></i> Add Prompt\n </button>\n }\n </div>\n </div>\n @if (promptCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-comments\"\n Title=\"No Prompts Configured\"\n Message=\"Add prompts to define how this agent processes requests and generates responses.\"\n [ActionText]=\"(EditMode && UserCanCreateNewPrompts) ? 'Create First Prompt' : ''\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"addPrompt()\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (prompt of agentPrompts; track prompt.ID) {\n <div class=\"entity-item prompt-item\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ prompt.Name }}</div>\n @if (prompt.TemplateText) {\n <div class=\"item-preview\">{{ prompt.TemplateText.substring(0, 120) }}{{ prompt.TemplateText.length > 120 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (prompt.PromptRole) {\n <span class=\"meta-tag\">{{ prompt.PromptRole }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n @if (EditMode && UserCanCreatePrompts) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"openPromptAdvancedSettings(prompt, $event)\"\n title=\"Advanced settings\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n }\n @if (EditMode && UserCanDeletePrompts) {\n <button mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"removePrompt(prompt, $event)\"\n title=\"Remove prompt\"\n class=\"error-action\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (promptCount > agentPrompts.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Prompts', '')\">\n <span>View all {{ promptCount }} prompts...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Learning & Analytics -->\n @if (record.ID) {\n <mj-accordion-panel id=\"learning\"\n [Expanded]=\"GetSectionExpanded('learning', false)\"\n [Disabled]=\"loadingStates.learningCycles\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-brain\"></i> Learning Cycles\n @if (loadingStates.learningCycles) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (learningCycleCount > 0) {\n <span> ({{ learningCycleCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Monitor and manage learning cycles, training sessions, and performance analytics.\n </div>\n </div>\n @if (learningCycleCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-brain\"\n Title=\"No Learning Cycles\"\n Message=\"Learning cycles will appear here as the agent processes requests and improves over time.\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (cycle of learningCycles; track cycle.ID) {\n <div class=\"entity-item learning-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', cycle.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-brain\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">Learning Cycle {{ cycle.ID.substring(0, 8) }}</div>\n <div class=\"item-meta\">\n @if (cycle.StartedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ cycle.StartedAt | date:'short' }}\n </span>\n }\n @if (cycle.Status) {\n <span class=\"status-tag\">{{ cycle.Status }}</span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (learningCycleCount > learningCycles.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Learning Cycles', '')\">\n <span>View all {{ learningCycleCount }} cycles...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Notes & Documentation -->\n @if (record.ID) {\n <mj-accordion-panel id=\"notes\"\n [Expanded]=\"GetSectionExpanded('notes', false)\"\n [Disabled]=\"loadingStates.notes\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-sticky-note\"></i> Notes\n @if (loadingStates.notes) {\n <span><i class=\"fa-solid fa-spinner fa-spin\"></i></span>\n } @else if (noteCount > 0) {\n <span> ({{ noteCount }})</span>\n }\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Manage notes, documentation, and annotations for this agent.\n </div>\n <div class=\"header-actions\">\n @if (EditMode && UserCanCreateNotes) {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"addNote()\">\n <i class=\"fa-solid fa-plus\"></i> Add Note\n </button>\n }\n </div>\n </div>\n @if (noteCount === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-sticky-note\"\n Title=\"No Notes\"\n Message=\"Add notes to document important information, observations, or instructions for this agent.\"\n [ActionText]=\"(EditMode && UserCanCreateNotes) ? 'Create First Note' : ''\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"addNote()\"\n Size=\"compact\" />\n } @else {\n <div class=\"entity-list\">\n @for (note of agentNotes; track note.ID) {\n <div class=\"entity-item note-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', note.ID)\">\n <div class=\"item-icon\">\n <i class=\"fa-solid fa-sticky-note\"></i>\n </div>\n <div class=\"item-content\">\n <div class=\"item-title\">{{ note.Type || 'Note' }}</div>\n @if (note.Note) {\n <div class=\"item-preview\">{{ note.Note.substring(0, 100) }}{{ note.Note.length > 100 ? '...' : '' }}</div>\n }\n <div class=\"item-meta\">\n @if (note.__mj_CreatedAt) {\n <span class=\"meta-tag\">\n <i class=\"fa-solid fa-calendar\"></i>\n {{ note.__mj_CreatedAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"item-actions\">\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n @if (noteCount > agentNotes.length) {\n <div class=\"view-more-item\" (click)=\"navigateToEntity('MJ: AI Agent Notes', '')\">\n <span>View all {{ noteCount }} notes...</span>\n </div>\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Search -->\n @if (record.ID) {\n <mj-accordion-panel id=\"search\"\n [Expanded]=\"GetSectionExpanded('search', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-magnifying-glass\"></i> Search\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Control this agent's access to <strong>Scoped Search</strong> and assign the scopes it can use for pre-execution RAG or agent-invoked search.\n </div>\n </div>\n\n <!-- Scope Access mode -->\n <div class=\"agent-search-access\">\n <label class=\"agent-search-access-option\" [class.active]=\"record.SearchScopeAccess === 'All'\">\n <input type=\"radio\" name=\"SearchScopeAccess\" value=\"All\" [checked]=\"record.SearchScopeAccess === 'All'\" [disabled]=\"!EditMode\" (change)=\"record.SearchScopeAccess = 'All'\">\n <i class=\"fa-solid fa-globe\"></i>\n <div class=\"agent-search-access-text\">\n <div class=\"agent-search-access-title\">All</div>\n <div class=\"agent-search-access-desc\">Can use any scope including Global. No scope restriction.</div>\n </div>\n </label>\n <label class=\"agent-search-access-option\" [class.active]=\"record.SearchScopeAccess === 'Assigned'\">\n <input type=\"radio\" name=\"SearchScopeAccess\" value=\"Assigned\" [checked]=\"record.SearchScopeAccess === 'Assigned'\" [disabled]=\"!EditMode\" (change)=\"record.SearchScopeAccess = 'Assigned'\">\n <i class=\"fa-solid fa-user-check\"></i>\n <div class=\"agent-search-access-text\">\n <div class=\"agent-search-access-title\">Assigned</div>\n <div class=\"agent-search-access-desc\">Can use ONLY scopes listed below, for users with a Search grant on the scope (directly or through a role). Other scopes are rejected with ACCESS_DENIED.</div>\n </div>\n </label>\n <label class=\"agent-search-access-option\" [class.active]=\"record.SearchScopeAccess === 'None'\">\n <input type=\"radio\" name=\"SearchScopeAccess\" value=\"None\" [checked]=\"record.SearchScopeAccess === 'None'\" [disabled]=\"!EditMode\" (change)=\"record.SearchScopeAccess = 'None'\">\n <i class=\"fa-solid fa-ban\"></i>\n <div class=\"agent-search-access-text\">\n <div class=\"agent-search-access-title\">None</div>\n <div class=\"agent-search-access-desc\">No search capability. The Scoped Search action and pre-execution retrieval are disabled for this agent.</div>\n </div>\n </label>\n </div>\n\n <!-- Assigned scopes grid -->\n @if (record.SearchScopeAccess !== 'None') {\n <div class=\"agent-search-grid-header\">\n <h4>Assigned Scopes</h4>\n <p class=\"section-description\">\n <strong>Pre-Execution</strong> scopes are searched before the first LLM call, for users who may search them.\n <strong>Agent-Invoked</strong> scopes are callable via the Scoped Search tool during execution.\n <strong>Both</strong> covers both paths.\n </p>\n </div>\n <mj-search-scope-child-grid\n [ParentID]=\"record.ID\"\n ChildEntityName=\"MJ: AI Agent Search Scopes\"\n ParentFieldName=\"AgentID\"\n [Columns]=\"AgentSearchScopeColumns\"\n [Disabled]=\"!EditMode\"\n AddButtonLabel=\"+ Assign another scope\"\n EmptyMessage=\"No scopes assigned yet. Assign at least one if this agent will use Scoped Search.\"\n (RowsChanged)=\"LoadPermissionSummary()\">\n </mj-search-scope-child-grid>\n\n <!-- Phase 2A: read-only audit summary of who has\n permission on each of this agent's assigned scopes.\n Editing happens in the Knowledge Hub Config dashboard\n (see \"Permissions\" subtab under Search Scopes). -->\n <div class=\"agent-search-section\" style=\"margin-top: 16px;\">\n <h4 style=\"margin: 0 0 8px 0;\">\n <i class=\"fa-solid fa-shield-halved\"></i> Effective scope permissions\n </h4>\n <p class=\"section-description\" style=\"margin-bottom: 8px;\">\n Per-user / per-role grants on the scopes assigned above. Edit grants in\n <strong>Knowledge Hub Config &rarr; Search Scopes &rarr; Permissions</strong>.\n </p>\n @if (IsLoadingPermissions) {\n <div style=\"color: var(--mj-text-muted);\">Loading permissions&hellip;</div>\n } @else if (PermissionSummary.length === 0) {\n <div style=\"color: var(--mj-text-muted); font-style: italic;\">\n No scopes assigned yet \u2014 permissions will appear here once you add scopes above.\n </div>\n } @else {\n @for (s of PermissionSummary; track s.ScopeID) {\n <div style=\"margin-bottom: 12px; padding: 8px 12px; background: var(--mj-bg-surface-card); border: 1px solid var(--mj-border-subtle); border-radius: 4px;\">\n <div style=\"font-weight: 600; margin-bottom: 4px;\">{{ s.ScopeName }}</div>\n @if (s.Permissions.length === 0) {\n <div style=\"color: var(--mj-text-muted); font-size: 0.9em;\">\n No explicit permissions. Users need a Search grant (directly or through a role) unless this agent's access is <code>All</code>.\n </div>\n } @else {\n <ul style=\"margin: 4px 0 0 16px; padding: 0;\">\n @for (p of s.Permissions; track p.Principal + p.Level) {\n <li style=\"font-size: 0.9em; padding: 2px 0;\">\n <i class=\"fa-solid\" [class.fa-user]=\"p.PrincipalType === 'User'\" [class.fa-users]=\"p.PrincipalType === 'Role'\"></i>\n <strong>{{ p.Principal }}</strong>\n <span style=\"color: var(--mj-text-muted);\">({{ p.PrincipalType }})</span>\n &mdash; <span [style.color]=\"p.Level === 'None' ? 'var(--mj-status-error-text)' : 'var(--mj-text-primary)'\">{{ p.Level }}</span>\n </li>\n }\n </ul>\n }\n </div>\n }\n }\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n <!-- Payload -->\n <mj-accordion-panel id=\"payload\"\n [Expanded]=\"GetSectionExpanded('payload', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-exchange-alt\"></i> Payload Management\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure how this agent handles data payloads, path routing, and validation between parent and child agents.\n </div>\n </div>\n <!-- Payload Scope Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-target\"></i>\n Payload Scope\n </h3>\n <div class=\"payload-field-container\">\n <div class=\"payload-field-info\">\n <label class=\"payload-field-label\">Payload Scope Path</label>\n <p class=\"payload-field-description\">\n Specify a path within the parent payload that this sub-agent should operate on.\n Leave empty to receive the entire payload.\n </p>\n </div>\n <div class=\"payload-field-input\">\n <mj-form-field\n FieldName=\"PayloadScope\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n <div class=\"payload-field-example\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Example: <code>/customer/profile</code> or <code>/analysis/results</code></span>\n </div>\n </div>\n </div>\n </div>\n <!-- Path Configuration Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-route\"></i>\n Path Configuration\n </h3>\n <div class=\"payload-paths-grid\">\n <!-- Downstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon downstream\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Downstream Paths</h4>\n <p>JSON array of paths to pass to sub-agents</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadDownstreamPaths || '[&quot;*&quot;]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadDownstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to pass entire payload or specify paths like <code>[\"user.id\", \"order.*\"]</code>\n </div>\n </div>\n </div>\n <!-- Upstream Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon upstream\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Upstream Paths</h4>\n <p>JSON array of paths sub-agents can write back</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadUpstreamPaths || '[&quot;*&quot;]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadUpstreamPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Use <code>[\"*\"]</code> to allow all writes or limit to specific paths\n </div>\n </div>\n </div>\n <!-- Self Read Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-read\">\n <i class=\"fa-solid fa-eye\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Read Paths</h4>\n <p>JSON array of paths this agent can read</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfReadPaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfReadPaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can read from the payload\n </div>\n </div>\n </div>\n <!-- Self Write Paths -->\n <div class=\"payload-path-card\">\n <div class=\"payload-path-header\">\n <div class=\"payload-path-icon self-write\">\n <i class=\"fa-solid fa-pen\"></i>\n </div>\n <div class=\"payload-path-info\">\n <h4>Self Write Paths</h4>\n <p>JSON array of paths this agent can write to</p>\n </div>\n </div>\n <div class=\"payload-path-content\">\n <div class=\"json-editor-container\">\n <mj-code-editor\n [value]=\"record.PayloadSelfWritePaths || '[]'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 100px; width: 100%;\"\n (valueChange)=\"updatePayloadField('PayloadSelfWritePaths', $event)\">\n </mj-code-editor>\n </div>\n <div class=\"payload-path-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Paths this agent's prompts can write back to the payload\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Validation Section -->\n <div class=\"payload-section\">\n <h3 class=\"payload-section-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Final Payload Validation\n </h3>\n <div class=\"payload-validation-container\">\n <div class=\"payload-validation-settings\">\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Validation Mode</label>\n <p class=\"validation-field-description\">How to handle validation failures</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n <div class=\"validation-field-group\">\n <label class=\"validation-field-label\">Max Retries</label>\n <p class=\"validation-field-description\">Maximum validation retry attempts</p>\n <mj-form-field\n FieldName=\"FinalPayloadValidationMaxRetries\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"payload-validation-schema\">\n <label class=\"validation-schema-label\">\n <i class=\"fa-solid fa-code\"></i>\n Validation Schema\n </label>\n <p class=\"validation-schema-description\">\n JSON schema or validation rules for the final payload structure\n </p>\n <div class=\"validation-schema-editor\">\n <mj-code-editor\n [value]=\"record.FinalPayloadValidation || '{}'\"\n [readonly]=\"!EditMode\"\n language=\"json\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\"\n (valueChange)=\"updatePayloadField('FinalPayloadValidation', $event)\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Execution Guardrails (New Separate Panel) -->\n <mj-accordion-panel id=\"guardrails\"\n [Expanded]=\"GetSectionExpanded('guardrails', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-shield-halved\"></i> Execution Guardrails\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Set limits to prevent runaway agent executions and control resource usage.\n </div>\n </div>\n <div class=\"form-fields-grid\">\n <mj-form-field\n FieldName=\"MaxCostPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Cost ($)\"\n Description=\"Maximum cost per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTokensPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Tokens\"\n Description=\"Maximum tokens per run\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxIterationsPerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Iterations\"\n Description=\"Maximum prompt iterations\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <mj-form-field\n FieldName=\"MaxTimePerRun\"\n Type=\"numerictextbox\"\n Caption=\"Max Time (seconds)\"\n Description=\"Maximum execution time\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </mj-accordion-panel>\n <!-- Configuration (Settings Panel) -->\n <mj-accordion-panel id=\"config\"\n [Expanded]=\"GetSectionExpanded('config', false)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-cogs\"></i> Configuration\n </ng-template>\n <div class=\"panel-content\">\n <div class=\"section-header\">\n <div class=\"section-description\">\n Configure agent behavior, execution settings, and advanced features.\n </div>\n </div>\n <!-- Identity & Behavior Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-id-card\"></i>\n Identity & Behavior\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Status</h4>\n <p>Current availability and operational status</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.Status\"\n [Data]=\"statusOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n name=\"agentStatus\"\n class=\"config-field-input\">\n </mj-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Status || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Agent Type</h4>\n <p>Category and system-level behavior</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-dropdown\n [(ngModel)]=\"record.TypeID\"\n [Data]=\"agentTypes\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n name=\"agentTypeID\"\n class=\"config-field-input\">\n </mj-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Type || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-folder-tree\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Category</h4>\n <p>Organizational category for this agent</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <mj-tree-dropdown\n [BranchConfig]=\"CategoryBranchConfig\"\n [Value]=\"SelectedCategoryKey\"\n SelectionMode=\"single\"\n SelectableTypes=\"branch\"\n Placeholder=\"Select a category...\"\n [Clearable]=\"true\"\n [EnableSearch]=\"true\"\n (ValueChange)=\"OnCategoryChange($event)\">\n </mj-tree-dropdown>\n } @else {\n <span class=\"config-field-display\">{{ record.Category || 'Not Set' }}</span>\n }\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-bolt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Expose as Action</h4>\n <p>Make available as an action for other agents</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExposeAsAction\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-align-left\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Description</h4>\n <p>Detailed agent description and purpose</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"Description\"\n Type=\"textarea\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n style=\"width: 100%;\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Execution Settings Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-play\"></i>\n Execution Settings\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Mode</h4>\n <p>How sub-agents are executed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionMode\"\n Type=\"dropdownlist\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-sort-numeric-down\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Execution Order</h4>\n <p>Order when run with siblings</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ExecutionOrder\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Default Effort Level</h4>\n <p>Default effort level for all prompts (1-100)</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DefaultPromptEffortLevel\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Higher values request more thorough reasoning (1=minimal, 100=maximum)\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-code\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Driver Class</h4>\n <p>Custom implementation class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"DriverClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n </div>\n </div>\n <!-- Visual Identity Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-palette\"></i>\n Visual Identity\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-icons\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Icon Class</h4>\n <p>Font Awesome icon class</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"IconClass\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Example: <code>fa-solid fa-robot</code>\n </div>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-image\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Logo URL</h4>\n <p>URL for agent logo image</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"LogoURL\"\n Type=\"textbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n <div class=\"config-card-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Takes precedence over Icon Class\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- Context Compression Section -->\n <div class=\"config-section\">\n <h3 class=\"config-section-title\">\n <i class=\"fa-solid fa-compress\"></i>\n Context Compression\n </h3>\n <div class=\"config-grid\">\n <div class=\"config-card full-width\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Enable Context Compression</h4>\n <p>Automatically compress conversation context when message threshold is reached</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"EnableContextCompression\"\n Type=\"checkbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\"\n (valueChange)=\"onContextCompressionToggle($event)\">\n </mj-form-field>\n </div>\n </div>\n @if (record.EnableContextCompression) {\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-hashtag\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Message Threshold</h4>\n <p>Messages before compression triggers</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageThreshold\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-save\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Messages to Keep</h4>\n <p>Recent messages to retain uncompressed</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n <mj-form-field\n FieldName=\"ContextCompressionMessageRetentionCount\"\n Type=\"numerictextbox\"\n Caption=\"\"\n [EditMode]=\"EditMode\"\n [Record]=\"record\">\n </mj-form-field>\n </div>\n </div>\n <div class=\"config-card\">\n <div class=\"config-card-header\">\n <div class=\"config-card-icon\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n </div>\n <div class=\"config-card-info\">\n <h4>Compression Prompt</h4>\n <p>Prompt used for summarization</p>\n </div>\n </div>\n <div class=\"config-card-content\">\n @if (EditMode) {\n <div class=\"prompt-selector-container\">\n <div class=\"prompt-display\">\n @if (selectedContextCompressionPrompt) {\n <span class=\"prompt-name\">{{ selectedContextCompressionPrompt.Name }}</span>\n } @else {\n <span class=\"no-prompt\">No prompt selected</span>\n }\n </div>\n <div class=\"prompt-actions\">\n <button type=\"button\"\n mjButton\n variant=\"outline\"\n size=\"sm\"\n (click)=\"openContextCompressionPromptSelector()\"\n class=\"prompt-select-btn\">\n <i class=\"fa-solid fa-search\"></i>\n {{ selectedContextCompressionPrompt ? 'Change' : 'Select' }} Prompt\n </button>\n @if (selectedContextCompressionPrompt) {\n <button type=\"button\"\n mjButton\n variant=\"flat\"\n size=\"sm\"\n (click)=\"clearContextCompressionPrompt()\"\n class=\"prompt-clear-btn\"\n title=\"Clear selection\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n } @else {\n <span class=\"config-field-display\">{{ selectedContextCompressionPrompt?.Name || record.ContextCompressionPrompt || 'Not Set' }}</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n </div>\n }\n </form>\n</mj-record-form-container>\n}\n\n<!-- Permissions Dialog (from @memberjunction/ng-agents) -->\n@if (ShowPermissionsDialog) {\n <mj-agent-permissions-dialog\n [Agent]=\"record\"\n (Closed)=\"onPermissionsDialogClosed()\"\n (PermissionsChanged)=\"refreshRelatedData()\">\n </mj-agent-permissions-dialog>\n}", styles: ["/* AI Agent Form - Modern Redesign */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n}\n\n.record-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n/* Agent Header Section - Compact Design */\n.agent-header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 8px 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n transition: padding 0.2s ease;\n}\n\n.agent-header-content {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n/* Header collapse toggle button */\n.agent-header-toggle {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n padding: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-toggle i {\n font-size: 10px;\n}\n\n.agent-overview {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.agent-icon-wrapper {\n width: 36px;\n height: 36px;\n background: var(--mj-brand-primary);\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n\n.agent-icon-wrapper i {\n color: var(--mj-text-inverse);\n font-size: 18px;\n}\n\n/* \u2500\u2500 Minimized Floating Header Bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.agent-header-mini {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 12px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n height: 32px;\n}\n\n.agent-header-mini-expand {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-disabled);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-expand:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-expand i {\n font-size: 9px;\n}\n\n.agent-header-mini-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n\n.agent-header-mini-status {\n padding: 1px 7px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n}\n\n.agent-header-mini-spacer {\n flex: 1;\n}\n\n.agent-header-mini-btn {\n background: none;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n flex-shrink: 0;\n transition: all 0.15s ease;\n}\n\n.agent-header-mini-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border-color: var(--mj-border-strong);\n}\n\n.agent-header-mini-btn:disabled {\n opacity: 0.35;\n cursor: not-allowed;\n}\n\n.agent-header-mini-btn--primary {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-header-mini-btn--primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.agent-header-mini-btn i {\n font-size: 11px;\n}\n\n.agent-icon-wrapper img.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n}\n\n.agent-info {\n flex: 1;\n min-width: 0;\n}\n\n.agent-name {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.2;\n}\n\n.agent-name-input {\n font-size: 16px !important;\n font-weight: 500 !important;\n height: 30px !important;\n width: 100% !important;\n max-width: 350px !important;\n}\n\n.agent-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n padding: 3px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-badge.active {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge.pending {\n background: var(--mj-status-warning);\n color: var(--mj-text-primary);\n}\n\n.status-badge.disabled {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.execution-mode,\n.parent-agent {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 10px;\n border-radius: 12px;\n}\n\n.execution-mode i,\n.parent-agent i {\n font-size: 12px;\n opacity: 0.8;\n}\n\n.parent-agent.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.parent-agent.clickable:hover {\n background: var(--mj-border-default);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.parent-agent.clickable:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Prompt Controls Section */\n.prompt-controls {\n flex: 1;\n margin-right: 16px;\n}\n\n.agent-meta-info {\n display: flex;\n gap: 24px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.meta-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.meta-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n}\n\n.agent-description {\n margin-top: 16px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n font-size: 15px;\n}\n\n.agent-description-input {\n width: 100%;\n max-width: 600px;\n min-height: 80px;\n resize: vertical;\n}\n\n/* Action Buttons Section */\n.agent-actions {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n.action-buttons-row {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border-radius: 8px;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n}\n\n.action-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);\n}\n\n.action-button.primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n}\n\n.action-button.primary:hover {\n background: var(--mj-brand-primary-hover);\n}\n\n.action-button.secondary {\n background: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.action-button.secondary:hover {\n background: var(--mj-text-secondary);\n}\n\n.action-warnings {\n margin-top: 8px;\n font-size: 13px;\n color: var(--mj-status-error);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Panel-Based Form Content */\n.form-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n padding: 8px 12px;\n}\n\n/* Panel Content */\n.panel-content {\n padding: 16px;\n background: var(--mj-bg-surface);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-bottom: 16px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-shrink: 0;\n}\n\n.tab-section {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n padding: 24px;\n margin-bottom: 24px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\n border: 1px solid var(--mj-border-default);\n}\n\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 16px;\n border-bottom: 2px solid var(--mj-bg-surface-sunken);\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 12px;\n margin: 0;\n color: var(--mj-text-primary);\n font-size: 18px;\n font-weight: 600;\n}\n\n.section-title i {\n color: var(--mj-brand-primary);\n font-size: 20px;\n}\n\n.section-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.6;\n margin-top: 8px;\n}\n\n/* Form Fields Grid */\n.form-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 20px;\n margin-top: 20px;\n}\n\n.form-field-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form-field-label {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Sub-grids styling (legacy) */\n.sub-grid-container {\n height: 500px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n display: none; /* Hidden as we now use cards */\n}\n\n/* Empty States */\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 36px;\n color: var(--mj-brand-primary);\n margin-bottom: 16px;\n display: block;\n}\n\n.loading-state p {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-disabled);\n}\n\n/* Loading State */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 90%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.loading-spinner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.spinner-icon {\n width: 48px;\n height: 48px;\n border: 4px solid var(--mj-bg-surface-sunken);\n border-top: 4px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Quick Actions */\n.quick-actions {\n display: flex;\n gap: 16px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.quick-action-card {\n flex: 1;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: center;\n}\n\n.quick-action-card:hover {\n background: var(--mj-bg-surface);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-2px);\n}\n\n.quick-action-icon {\n font-size: 32px;\n color: var(--mj-brand-primary);\n margin-bottom: 8px;\n}\n\n.quick-action-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.quick-action-description {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* Entity List Interface */\n.entity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 16px;\n}\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.entity-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n transform: translateY(-1px);\n}\n\n.item-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.prompt-item .item-icon {\n background: var(--mj-status-success);\n}\n\n.action-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.sub-agent-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.model-item .item-icon {\n background: var(--mj-brand-primary);\n}\n\n.learning-item .item-icon {\n background: var(--mj-status-error);\n}\n\n.note-item .item-icon {\n background: var(--mj-status-warning);\n}\n\n.item-icon i {\n color: var(--mj-text-muted);\n font-size: 18px;\n}\n\n.prompt-item .item-icon i,\n.action-item .item-icon i,\n.sub-agent-item .item-icon i,\n.model-item .item-icon i,\n.learning-item .item-icon i,\n.note-item .item-icon i {\n color: var(--mj-text-inverse);\n}\n\n.item-icon img.sub-agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 6px;\n}\n\n.item-content {\n flex: 1;\n min-width: 0;\n}\n\n.item-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n}\n\n.item-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n margin: 4px 0 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.item-meta {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.meta-tag,\n.priority-tag,\n.status-tag {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n padding: 3px 8px;\n border-radius: 6px;\n font-weight: 500;\n}\n\n.meta-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.priority-tag {\n color: var(--mj-text-inverse);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-tag {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-tag.active {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.status-tag.inactive {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.item-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n color: var(--mj-text-muted);\n font-size: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-item:hover .item-actions {\n opacity: 1;\n}\n\n.entity-item:hover .item-actions > i {\n color: var(--mj-brand-primary);\n}\n\n.view-more-item {\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 10px;\n text-align: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-more-item:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n/* Pagination Controls */\n.pagination-controls {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: center;\n padding: 16px;\n margin-top: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n}\n\n.page-nav-btn {\n min-width: 120px;\n font-weight: 500;\n}\n\n.page-nav-btn i {\n font-size: 12px;\n}\n\n.page-nav-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.page-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 0 16px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n min-width: 200px;\n text-align: center;\n}\n\n.page-info .record-count {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-weight: normal;\n}\n\n.page-info .fa-spinner {\n margin-right: 8px;\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn {\n color: var(--mj-text-muted);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.view-all-btn:hover {\n color: var(--mj-brand-primary);\n}\n\n.view-all-btn i {\n margin-right: 4px;\n}\n\n/* Payload Section Styles */\n.payload-config-section,\n.payload-paths-section,\n.payload-validation-section {\n margin-bottom: 32px;\n}\n\n.subsection-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.subsection-title i {\n color: var(--mj-brand-primary);\n}\n\n.subsection-divider {\n margin-top: 32px;\n margin-bottom: 16px;\n padding-top: 24px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.payload-config-grid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.payload-field-group {\n margin-bottom: 20px;\n}\n\n.payload-field-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.payload-field-label i {\n color: var(--mj-text-muted);\n font-size: 16px;\n}\n\n.field-description {\n font-size: 12px;\n font-weight: normal;\n color: var(--mj-text-muted);\n margin-left: auto;\n}\n\n/* Code editor styling */\n.payload-field-group mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.payload-field-group mj-code-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* Payload textarea styling */\n.payload-field-group mj-form-field ::ng-deep textarea {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 13px;\n line-height: 1.5;\n min-height: 120px;\n resize: vertical;\n}\n\n/* Execution History Panel */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Timeline List for Execution History */\n.timeline-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n.timeline-marker {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 6px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.timeline-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.timeline-preview {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Modern Card-Based Interface (Legacy - Keep for backward compatibility) */\n.cards-container {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.entity-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n position: relative;\n overflow: hidden;\n}\n\n.entity-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n border-color: var(--mj-brand-primary);\n}\n\n.entity-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: var(--mj-brand-primary);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.entity-card:hover::before {\n opacity: 1;\n}\n\n.card-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.card-icon {\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sub-agent-card .card-icon {\n background: var(--mj-brand-primary);\n}\n\n.prompt-card .card-icon {\n background: var(--mj-status-success);\n}\n\n.action-card .card-icon {\n background: var(--mj-status-warning);\n}\n\n.card-icon i {\n font-size: 18px;\n color: var(--mj-text-muted);\n}\n\n.sub-agent-card .card-icon i,\n.prompt-card .card-icon i,\n.action-card .card-icon i {\n color: var(--mj-text-inverse);\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n line-height: 1.3;\n word-wrap: break-word;\n}\n\n.card-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 4px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n}\n\n.meta-item i {\n font-size: 11px;\n opacity: 0.8;\n}\n\n.meta-item.active {\n color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n}\n\n.meta-item.inactive {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n}\n\n.card-actions {\n opacity: 0;\n transition: opacity 0.3s ease;\n color: var(--mj-text-muted);\n}\n\n.entity-card:hover .card-actions {\n opacity: 1;\n color: var(--mj-brand-primary);\n}\n\n/* Badge Styles */\n.priority-badge {\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.type-badge {\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n/* View All Card */\n.view-all-card {\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.view-all-card:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n transform: translateY(-2px);\n}\n\n.view-all-content {\n text-align: center;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.view-all-content i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n/* Timeline Interface for History */\n.timeline-container {\n position: relative;\n margin-top: 16px;\n}\n\n.timeline-item {\n display: flex;\n flex-direction: column;\n margin-bottom: 24px;\n transition: all 0.3s ease;\n border-radius: 12px;\n padding: 16px;\n background: transparent;\n border: 1px solid transparent;\n}\n\n.timeline-item:hover {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.timeline-item.expanded {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.timeline-item.view-all {\n cursor: pointer;\n background: var(--mj-bg-surface-card);\n border: 2px dashed var(--mj-border-default);\n}\n\n.timeline-item.view-all:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-item > div:first-child {\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-marker {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 16px;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.timeline-marker::after {\n content: '';\n position: absolute;\n top: 50px;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.timeline-item:last-child .timeline-marker::after {\n display: none;\n}\n\n.timeline-marker i {\n color: var(--mj-text-inverse);\n font-size: 16px;\n}\n\n.timeline-marker.view-all-marker {\n background: var(--mj-text-muted);\n}\n\n.timeline-content {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-start;\n}\n\n.timeline-header {\n flex: 1;\n cursor: pointer;\n}\n\n.timeline-header > div:first-child {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n gap: 16px;\n}\n\n.expand-icon {\n transition: transform 0.3s ease;\n margin-right: 8px;\n color: var(--mj-text-muted);\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n.timeline-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n line-height: 1.3;\n}\n\n.timeline-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n margin-left: auto;\n}\n\n.timeline-preview {\n font-size: 13px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n margin-top: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n}\n\n.timeline-status {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 8px;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 4px 8px;\n border-radius: 6px;\n}\n\n.timeline-description {\n color: var(--mj-text-muted);\n font-size: 14px;\n line-height: 1.5;\n margin: 8px 0;\n}\n\n.timeline-error {\n color: var(--mj-status-error);\n font-size: 13px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n padding: 8px 12px;\n border-radius: 6px;\n margin-top: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-error i {\n flex-shrink: 0;\n}\n\n/* Expanded Content Styles */\n.timeline-expanded-content {\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.result-section,\n.error-section {\n margin-bottom: 20px;\n}\n\n.result-section h5,\n.error-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.result-content,\n.error-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-text-secondary);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* Code editor styling within result section */\n.result-section mj-code-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.execution-details {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n margin-bottom: 20px;\n}\n\n.detail-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.detail-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n min-width: 80px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--mj-text-secondary);\n word-break: break-all;\n}\n\n.timeline-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n}\n\n.btn-primary {\n padding: 8px 16px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.btn-primary i {\n font-size: 12px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n /* Header Responsiveness */\n .agent-header {\n padding: 16px;\n }\n\n .agent-header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .agent-overview {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .agent-meta {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .agent-actions {\n width: 100%;\n align-self: stretch;\n }\n\n .action-button {\n flex: 1;\n justify-content: center;\n }\n\n /* Panel Responsiveness */\n .form-content {\n padding: 12px;\n }\n\n .panel-content {\n padding: 20px 16px;\n }\n\n .section-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .header-actions {\n flex-wrap: wrap;\n align-self: stretch;\n }\n\n /* Entity List Responsiveness */\n .entity-item {\n padding: 12px;\n gap: 12px;\n }\n\n .item-icon {\n width: 36px;\n height: 36px;\n }\n\n .item-icon i {\n font-size: 16px;\n }\n\n .item-title {\n font-size: 15px;\n }\n\n .item-preview {\n font-size: 13px;\n }\n\n .item-meta {\n gap: 8px;\n }\n\n /* Timeline Responsiveness */\n .timeline-item {\n padding: 12px;\n gap: 12px;\n }\n\n .timeline-marker {\n width: 28px;\n height: 28px;\n }\n\n .timeline-marker i {\n font-size: 12px;\n }\n\n .timeline-title {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .timeline-date {\n align-self: flex-start;\n }\n\n /* Form Field Responsiveness */\n .form-fields-grid {\n grid-template-columns: 1fr;\n gap: 16px;\n }\n\n /* Legacy card support */\n .cards-container {\n grid-template-columns: 1fr;\n }\n}\n\n/* Execution History Panel - Max Height and Scroll */\n.execution-history-panel {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Custom scrollbar for execution history */\n.execution-history-panel::-webkit-scrollbar {\n width: 8px;\n}\n\n.execution-history-panel::-webkit-scrollbar-track {\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 4px;\n}\n\n.execution-history-panel::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-disabled);\n}\n\n/* Execution History Search Bar */\n.execution-search-bar {\n margin-bottom: 16px;\n padding: 0 4px;\n}\n\n.execution-search-bar .fa-search {\n color: var(--mj-text-secondary);\n margin-right: 8px;\n font-size: 14px;\n}\n\n/* New Execution History Card Design */\n.execution-history-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 8px;\n}\n\n.execution-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n transition: all 0.2s ease;\n cursor: pointer;\n}\n\n.execution-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n transform: translateY(-1px);\n}\n\n.execution-card.expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 6px 20px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.execution-header {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n}\n\n.execution-left-section {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.execution-status {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n}\n\n.status-indicator {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.status-indicator i {\n color: var(--mj-text-inverse);\n font-size: 14px;\n}\n\n.execution-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.execution-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-date {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.execution-metrics {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex-wrap: wrap;\n margin-left: 44px; /* Align with execution title text, accounting for status indicator + gap */\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-card);\n padding: 6px 10px;\n border-radius: 6px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.metric-item i {\n color: var(--mj-text-muted);\n font-size: 12px;\n}\n\n.metric-label {\n font-weight: 500;\n}\n\n.metric-value {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.execution-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-muted);\n}\n\n.action-btn:hover {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n}\n\n.action-btn i {\n font-size: 12px;\n}\n\n.expand-icon {\n transition: transform 0.2s ease;\n color: var(--mj-text-muted);\n margin-right: 4px;\n}\n\n.expand-icon.expanded {\n transform: rotate(90deg);\n}\n\n/* Execution Expanded Content */\n.execution-expanded-content {\n padding: 16px;\n border-top: 1px solid var(--mj-bg-surface-sunken);\n background: var(--mj-bg-surface-card);\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n to {\n opacity: 1;\n max-height: 500px;\n padding-top: 16px;\n padding-bottom: 16px;\n }\n}\n\n.detailed-metrics {\n margin-bottom: 20px;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.metric-detail {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n}\n\n.metric-detail i {\n color: var(--mj-brand-primary);\n font-size: 16px;\n width: 20px;\n text-align: center;\n}\n\n.metric-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n}\n\n.metric-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-data {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.result-section {\n margin-top: 16px;\n}\n\n.result-section h5 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.error-section h5 {\n color: var(--mj-status-error);\n}\n\n.error-content {\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 12px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--mj-status-error);\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 150px;\n overflow-y: auto;\n}\n\n/* Responsive adjustments for execution history */\n@media (max-width: 768px) {\n .execution-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n }\n\n .execution-left-section {\n width: 100%;\n }\n\n .execution-metrics {\n margin-left: 0; /* Remove left margin on mobile */\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n width: 100%;\n }\n\n .metric-item {\n font-size: 11px;\n padding: 4px 8px;\n }\n\n .metrics-grid {\n grid-template-columns: 1fr;\n }\n}\n\n/* === PAYLOAD MANAGEMENT SECTION === */\n.payload-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.payload-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.payload-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n/* Payload Scope Styling */\n.payload-field-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-field-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.payload-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.5;\n margin: 0;\n}\n\n.payload-field-input {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.payload-field-example {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-card);\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.payload-field-example i {\n color: var(--mj-status-warning);\n font-size: 0.9rem;\n}\n\n.payload-field-example code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.2rem 0.4rem;\n border-radius: 4px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n}\n\n/* Path Configuration Grid */\n.payload-paths-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.payload-path-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.payload-path-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.payload-path-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.payload-path-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.payload-path-icon.downstream {\n background: var(--mj-status-success);\n}\n\n.payload-path-icon.upstream {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-read {\n background: var(--mj-brand-primary);\n}\n\n.payload-path-icon.self-write {\n background: var(--mj-status-warning);\n}\n\n.payload-path-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.payload-path-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.payload-path-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-content {\n padding: 1rem;\n}\n\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 0.75rem;\n}\n\n.json-editor-container:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.payload-path-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.payload-path-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.payload-path-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n/* Payload Validation Container */\n.payload-validation-container {\n padding: 1.5rem;\n display: grid;\n grid-template-columns: 1fr 2fr;\n gap: 2rem;\n align-items: start;\n}\n\n.payload-validation-settings {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.validation-field-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.validation-field-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n}\n\n.validation-field-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0 0 0.5rem 0;\n}\n\n.payload-validation-schema {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.validation-schema-label {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.95rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.validation-schema-label i {\n color: var(--mj-brand-primary);\n}\n\n.validation-schema-description {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.validation-schema-editor {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.validation-schema-editor:hover {\n border-color: var(--mj-brand-primary);\n}\n\n/* === CONFIGURATION SECTION === */\n.config-section {\n margin-bottom: 2rem;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.config-section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.config-section-title i {\n color: var(--mj-brand-primary);\n font-size: 1.2rem;\n}\n\n.config-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 1.5rem;\n padding: 1.5rem;\n width: 100%;\n}\n\n.config-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 4px 12px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.config-card.full-width {\n grid-column: 1 / -1;\n}\n\n.config-card-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-card-icon {\n width: 40px;\n height: 40px;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.config-card-icon i {\n color: var(--mj-text-inverse);\n font-size: 1.2rem;\n}\n\n.config-card-info h4 {\n margin: 0 0 0.25rem 0;\n font-size: 1rem;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.config-card-info p {\n margin: 0;\n font-size: 0.85rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n}\n\n.config-card-content {\n padding: 1rem;\n}\n\n/* Custom field styling for config cards */\n.config-field-input {\n width: 100%;\n min-width: 250px;\n}\n\n.config-card-content ::ng-deep mj-form-field {\n width: 100% !important;\n}\n\n.config-field-display {\n color: var(--mj-text-secondary);\n font-size: 14px;\n font-weight: 500;\n padding: 8px 0;\n display: block;\n min-height: 20px;\n}\n\n/* Prompt selector styling */\n.prompt-selector-container {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n.prompt-display {\n flex: 1;\n min-width: 0;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n}\n\n.prompt-name {\n color: var(--mj-text-secondary);\n font-weight: 500;\n font-size: 14px;\n}\n\n.no-prompt {\n color: var(--mj-text-muted);\n font-style: italic;\n font-size: 14px;\n}\n\n.prompt-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.prompt-select-btn {\n white-space: nowrap;\n}\n\n.prompt-clear-btn {\n min-width: 32px;\n}\n\n.config-card-hint {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.4;\n margin-top: 0.5rem;\n}\n\n.config-card-hint i {\n color: var(--mj-brand-primary);\n margin-top: 0.1rem;\n flex-shrink: 0;\n}\n\n.config-card-hint code {\n background: var(--mj-bg-surface-sunken);\n padding: 0.1rem 0.3rem;\n border-radius: 3px;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--mj-text-secondary);\n}\n\n\n/* === RESPONSIVE DESIGN === */\n@media (max-width: 768px) {\n .payload-field-container,\n .payload-validation-container {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n\n .payload-paths-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .config-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n\n .payload-section-title,\n .config-section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n\n .payload-path-header,\n .config-card-header {\n padding: 0.75rem;\n }\n\n .payload-path-content,\n .config-card-content {\n padding: 0.75rem;\n }\n\n .payload-field-container,\n .payload-validation-container {\n padding: 1rem;\n }\n}\n\n/* ===================================\n Unified Sub-Agents with Filtering\n =================================== */\n\n/* Filter Controls */\n.sub-agent-filter-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.filter-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n/* Sub-Agent Type Badge */\n.sub-agent-type-badge {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-inverse);\n display: flex;\n align-items: center;\n gap: 4px;\n z-index: 1;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n/* Sub-Agent Item Styling */\n.sub-agent-item {\n position: relative;\n padding-left: 8px;\n transition: all 0.2s ease;\n}\n\n.sub-agent-item.child-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item.related-sub-agent {\n border-left: 4px solid var(--mj-brand-primary);\n}\n\n.sub-agent-item:hover {\n transform: translateX(4px);\n}\n\n/* Payload Info Tag */\n.payload-info {\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-family: 'Roboto Mono', monospace;\n font-size: 11px;\n}\n\n/* Empty State Info Cards */\n.empty-state-info {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin: 24px 0;\n max-width: 600px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.info-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n text-align: left;\n}\n\n.info-card i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.info-card strong {\n display: block;\n margin-bottom: 4px;\n font-size: 14px;\n}\n\n.info-card p {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n/* Responsive adjustments for sub-agent filters */\n@media (max-width: 768px) {\n .sub-agent-filter-header {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-controls,\n .header-actions {\n width: 100%;\n justify-content: center;\n }\n\n .empty-state-info {\n grid-template-columns: 1fr;\n }\n}\n\n/* ===== Search Scope Access (mockup #5) ===== */\n.agent-search-access {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin: 8px 0 20px;\n}\n\n.agent-search-access-option {\n display: grid;\n grid-template-columns: 24px 28px 1fr;\n align-items: start;\n gap: 10px;\n padding: 14px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n transition: background 120ms ease, border-color 120ms ease;\n}\n\n.agent-search-access-option:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n}\n\n.agent-search-access-option.active {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n}\n\n.agent-search-access-option input[type=\"radio\"] {\n accent-color: var(--mj-brand-primary);\n margin-top: 2px;\n}\n\n.agent-search-access-option > i {\n font-size: 20px;\n color: var(--mj-brand-primary);\n text-align: center;\n margin-top: 2px;\n}\n\n.agent-search-access-text {\n min-width: 0;\n}\n\n.agent-search-access-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n font-size: 0.9rem;\n}\n\n.agent-search-access-desc {\n font-size: 0.8rem;\n color: var(--mj-text-secondary);\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.agent-search-grid-header {\n margin: 8px 0 12px;\n}\n\n.agent-search-grid-header h4 {\n margin: 0 0 4px;\n color: var(--mj-text-primary);\n font-size: 1rem;\n font-weight: 600;\n}\n\n@media (max-width: 768px) {\n .agent-search-access {\n grid-template-columns: 1fr;\n }\n}\n\n/* \u2500\u2500 Execution History: Runs | Sessions segmented toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.history-view-toggle {\n display: inline-flex;\n gap: 2px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 3px;\n margin-bottom: 14px;\n}\n\n.history-toggle-option {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n padding: 6px 16px;\n border: none;\n border-radius: 8px;\n background: transparent;\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.history-toggle-option:hover {\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active {\n background: var(--mj-bg-surface);\n color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.history-toggle-count {\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n color: var(--mj-text-secondary);\n}\n\n.history-toggle-option.active .history-toggle-count {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 25%, transparent);\n color: var(--mj-brand-primary);\n}\n\n/* \u2500\u2500 Voice session rows in Execution History \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.session-card {\n cursor: pointer;\n}\n\n.session-role-chip {\n display: inline-flex;\n align-items: center;\n margin-left: 8px;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 10.5px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.session-role-chip--target {\n background: color-mix(in srgb, var(--mj-status-info) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n color: var(--mj-status-info);\n}\n\n.session-status-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n}\n\n.session-status-pill[data-status=\"Active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n border-color: color-mix(in srgb, var(--mj-status-success) 25%, transparent);\n}\n\n.session-status-pill[data-status=\"Idle\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n border-color: color-mix(in srgb, var(--mj-status-warning) 25%, transparent);\n}\n\n/* \u2500\u2500 Form tabs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Panes are hidden with `display: none`, never removed from the DOM. The\n designer pane holds UNSAVED canvas edits; @if-ing it away on a tab switch\n would discard them silently, and would also throw away the canvas's zoom and\n node positions on every trip to Details. */\n\n.agent-tabbar {\n flex: 0 0 auto;\n padding: 8px 12px 0;\n background: var(--mj-bg-page);\n}\n\n/* Phone section picker: hidden until the 768px rule swaps it in for the tab nav */\n.agent-tabbar .phone-section-picker {\n display: none;\n}\n\n@media (max-width: 768px) {\n .agent-tabbar {\n padding: 4px 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .agent-tabbar mj-tab-nav {\n display: none;\n }\n\n .agent-tabbar .phone-section-picker {\n display: block;\n }\n}\n\n/* Phone hero (6A): one identity row, icon beside the name and status, instead of the older\n phone rule's icon-above-name stack. Scoped to .phone-hero so edit mode keeps that layout. */\n@media (max-width: 768px) {\n .agent-header.phone-hero.hero-view .agent-overview {\n flex-direction: row;\n align-items: center;\n gap: 10px;\n width: 100%;\n }\n\n .agent-header.phone-hero.hero-view .agent-info {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .agent-header.phone-hero.hero-view .agent-name {\n overflow-wrap: anywhere;\n }\n\n .agent-header.phone-hero.hero-view .agent-meta {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n }\n}\n\n.agent-pane {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.agent-pane--hidden {\n display: none;\n}\n\n.agent-pane--designer {\n overflow: hidden;\n padding: 8px 12px 12px;\n background: var(--mj-bg-page);\n}\n\n/* The designer's dynamically-created section has no height of its own, so without\n this the flow canvas collapses to zero and renders as an empty strip. */\n.agent-pane--designer > ng-component,\n.agent-pane--designer > * {\n flex: 1;\n min-height: 0;\n}\n\n.agent-pane--invocations {\n overflow-y: auto;\n overflow-x: hidden;\n background: var(--mj-bg-page);\n}\n\n/* Initial load: the form's header renders as soon as the record arrives, but the tab strip and\n every pane wait on the agent TYPE. This fills that window so the page reads as loading rather\n than as broken. */\n.agent-form-loading {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 240px;\n padding: 32px;\n background: var(--mj-bg-page);\n}\n", "/* ============================================\n PHONE HERO (design call 6A), shared by the custom forms that own a hero.\n Under 768px the hero keeps icon, name, status and the primary action. Anything tagged\n .phone-hero-detail hides while the hero is compact and comes back when the summary line is\n tapped. Edit mode is untouched: the host only gets .hero-compact / .hero-view in view mode.\n Host: .phone-hero [class.hero-view]=\"!EditMode\" [class.hero-compact]=\"!EditMode && !HeroDetailsOpen\"\n Tags: .phone-hero-detail hidden while compact\n .phone-hero-hide hidden in view mode (said elsewhere on the phone hero)\n .phone-hero-only shown only on phones\n .phone-hero-top a title + action row that stacks\n .phone-hero-actions / .phone-hero-run the primary action, full width at 44px\n .phone-hero-stats a metric row that reflows to a 2-up grid when the hero is expanded\n .phone-hero-status a status chip in the identity row (with .phone-hero-only)\n ============================================ */\n.phone-hero-summary,\n.phone-hero-only {\n display: none;\n}\n\n@media (max-width: 768px) {\n .phone-hero {\n padding: 12px !important;\n }\n\n /* !important: several heroes carry inline display/padding styles on these rows */\n .phone-hero.hero-compact .phone-hero-detail,\n .phone-hero.hero-view .phone-hero-hide {\n display: none !important;\n }\n\n .phone-hero-only {\n display: inline-flex;\n }\n\n /* Lower specificity than the compact rule above, so a compact hero still hides it */\n .phone-hero .phone-hero-stats {\n display: grid !important;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 8px;\n }\n\n .phone-hero-status {\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface-sunken);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n /* data-status comes from RunStatusKind(); the -text / -bg pairs keep contrast in both themes */\n .phone-hero-status[data-status=\"running\"] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n .phone-hero-status[data-status=\"success\"] { color: var(--mj-status-success-text); background: var(--mj-status-success-bg); }\n .phone-hero-status[data-status=\"error\"] { color: var(--mj-status-error-text); background: var(--mj-status-error-bg); }\n .phone-hero-status[data-status=\"info\"] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n\n .phone-hero-top {\n flex-direction: column;\n align-items: stretch;\n gap: 10px;\n }\n\n .phone-hero-actions {\n width: 100%;\n }\n\n .phone-hero .phone-hero-run {\n width: 100%;\n min-height: 44px;\n justify-content: center;\n }\n\n /* Inherits the hero's text colour, so it reads on light heroes and on the brand-blue\n Queries hero alike; a muted token would be grey on blue. */\n .phone-hero-summary {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 44px;\n margin-top: 8px;\n padding: 0 4px;\n border: 0;\n border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: var(--mj-text-sm);\n text-align: left;\n cursor: pointer;\n opacity: 0.85;\n }\n\n .phone-hero-summary:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n }\n\n .phone-hero-summary-text {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .phone-hero-summary > i {\n flex-shrink: 0;\n transition: transform 0.15s ease;\n }\n\n .phone-hero-summary[aria-expanded=\"true\"] > i {\n transform: rotate(180deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .phone-hero-summary > i {\n transition: none;\n }\n}\n"] }]
5810
5860
  }], null, { CustomSectionContainer: [{
5811
5861
  type: ViewChild,
5812
5862
  args: ['customSectionContainer', { read: ViewContainerRef }]
5813
5863
  }] }); })();
5814
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJAIAgentFormComponentExtended, { className: "MJAIAgentFormComponentExtended", filePath: "src/lib/custom/AIAgents/ai-agent-form.component.ts", lineNumber: 116 }); })();
5864
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJAIAgentFormComponentExtended, { className: "MJAIAgentFormComponentExtended", filePath: "src/lib/custom/AIAgents/ai-agent-form.component.ts", lineNumber: 118 }); })();
5815
5865
  //# sourceMappingURL=ai-agent-form.component.js.map