@memberjunction/ng-core-entity-forms 5.44.0 → 5.45.1

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 (119) hide show
  1. package/dist/lib/custom/Lists/list-form.component.d.ts +1 -0
  2. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/Lists/list-form.component.js +4 -2
  4. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  5. package/dist/lib/custom/Queries/query-form.component.d.ts +1 -0
  6. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/Queries/query-form.component.js +6 -4
  8. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  9. package/dist/lib/custom/Templates/template-params-grid.component.d.ts +1 -0
  10. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  11. package/dist/lib/custom/Templates/template-params-grid.component.js +5 -3
  12. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  13. package/dist/lib/custom/Templates/templates-form.component.d.ts +2 -1
  14. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  15. package/dist/lib/custom/Templates/templates-form.component.js +10 -4
  16. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  17. package/dist/lib/custom/Tests/test-form.component.d.ts +2 -1
  18. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  19. package/dist/lib/custom/Tests/test-form.component.js +5 -3
  20. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  21. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +2 -1
  22. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  23. package/dist/lib/custom/Tests/test-suite-form.component.js +5 -3
  24. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  25. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +15 -1
  26. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  27. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +277 -133
  28. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  29. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +10 -0
  30. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
  31. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +80 -26
  32. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
  33. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  34. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +3 -1
  35. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  36. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +273 -263
  37. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  38. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  39. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +219 -197
  40. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  41. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.d.ts.map +1 -1
  42. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js +116 -96
  43. package/dist/lib/generated/Entities/MJAIAgentRun/mjaiagentrun.form.component.js.map +1 -1
  44. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js +23 -21
  45. package/dist/lib/generated/Entities/MJAIAgentRunStep/mjaiagentrunstep.form.component.js.map +1 -1
  46. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.d.ts.map +1 -1
  47. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js +44 -34
  48. package/dist/lib/generated/Entities/MJAIAgentSession/mjaiagentsession.form.component.js.map +1 -1
  49. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
  50. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +29 -11
  51. package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
  52. package/dist/lib/generated/Entities/MJAISkill/mjaiskill.form.component.js +37 -35
  53. package/dist/lib/generated/Entities/MJAISkill/mjaiskill.form.component.js.map +1 -1
  54. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.d.ts.map +1 -1
  55. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js +23 -5
  56. package/dist/lib/generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component.js.map +1 -1
  57. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.d.ts.map +1 -1
  58. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js +31 -13
  59. package/dist/lib/generated/Entities/MJApplication/mjapplication.form.component.js.map +1 -1
  60. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.d.ts.map +1 -1
  61. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +91 -43
  62. package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/MJConversationWidgetInstance/mjconversationwidgetinstance.form.component.d.ts +10 -0
  64. package/dist/lib/generated/Entities/MJConversationWidgetInstance/mjconversationwidgetinstance.form.component.d.ts.map +1 -0
  65. package/dist/lib/generated/Entities/MJConversationWidgetInstance/mjconversationwidgetinstance.form.component.js +86 -0
  66. package/dist/lib/generated/Entities/MJConversationWidgetInstance/mjconversationwidgetinstance.form.component.js.map +1 -0
  67. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
  68. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +30 -12
  69. package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
  70. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.d.ts.map +1 -1
  71. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js +27 -9
  72. package/dist/lib/generated/Entities/MJCredentialType/mjcredentialtype.form.component.js.map +1 -1
  73. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  74. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +447 -419
  75. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  76. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.d.ts.map +1 -1
  77. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js +29 -11
  78. package/dist/lib/generated/Entities/MJEnvironment/mjenvironment.form.component.js.map +1 -1
  79. package/dist/lib/generated/Entities/MJExternalDataSource/mjexternaldatasource.form.component.d.ts +10 -0
  80. package/dist/lib/generated/Entities/MJExternalDataSource/mjexternaldatasource.form.component.d.ts.map +1 -0
  81. package/dist/lib/generated/Entities/MJExternalDataSource/mjexternaldatasource.form.component.js +113 -0
  82. package/dist/lib/generated/Entities/MJExternalDataSource/mjexternaldatasource.form.component.js.map +1 -0
  83. package/dist/lib/generated/Entities/MJExternalDataSourceType/mjexternaldatasourcetype.form.component.d.ts +10 -0
  84. package/dist/lib/generated/Entities/MJExternalDataSourceType/mjexternaldatasourcetype.form.component.d.ts.map +1 -0
  85. package/dist/lib/generated/Entities/MJExternalDataSourceType/mjexternaldatasourcetype.form.component.js +95 -0
  86. package/dist/lib/generated/Entities/MJExternalDataSourceType/mjexternaldatasourcetype.form.component.js.map +1 -0
  87. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.d.ts.map +1 -1
  88. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +54 -46
  89. package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
  90. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
  91. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +37 -19
  92. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
  93. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.d.ts.map +1 -1
  94. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +30 -12
  95. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
  96. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  97. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +147 -111
  98. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  99. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.d.ts +10 -0
  100. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.d.ts.map +1 -0
  101. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js +169 -0
  102. package/dist/lib/generated/Entities/MJUserRoutine/mjuserroutine.form.component.js.map +1 -0
  103. package/dist/lib/generated/Entities/MJUserRoutineRecipient/mjuserroutinerecipient.form.component.d.ts +10 -0
  104. package/dist/lib/generated/Entities/MJUserRoutineRecipient/mjuserroutinerecipient.form.component.d.ts.map +1 -0
  105. package/dist/lib/generated/Entities/MJUserRoutineRecipient/mjuserroutinerecipient.form.component.js +82 -0
  106. package/dist/lib/generated/Entities/MJUserRoutineRecipient/mjuserroutinerecipient.form.component.js.map +1 -0
  107. package/dist/lib/generated/Entities/MJUserRoutineRun/mjuserroutinerun.form.component.d.ts +10 -0
  108. package/dist/lib/generated/Entities/MJUserRoutineRun/mjuserroutinerun.form.component.d.ts.map +1 -0
  109. package/dist/lib/generated/Entities/MJUserRoutineRun/mjuserroutinerun.form.component.js +100 -0
  110. package/dist/lib/generated/Entities/MJUserRoutineRun/mjuserroutinerun.form.component.js.map +1 -0
  111. package/dist/lib/generated/generated-forms.module.d.ts +243 -237
  112. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  113. package/dist/lib/generated/generated-forms.module.js +109 -91
  114. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  115. package/dist/lib/shared/components/template-editor.component.d.ts +4 -2
  116. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  117. package/dist/lib/shared/components/template-editor.component.js +10 -9
  118. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  119. package/package.json +38 -38
@@ -45,7 +45,7 @@ function MJAIAgentRunFormComponentExtended_Conditional_8_Template(rf, ctx) { if
45
45
  } }
46
46
  function MJAIAgentRunFormComponentExtended_Conditional_13_Template(rf, ctx) { if (rf & 1) {
47
47
  const _r2 = i0.ɵɵgetCurrentView();
48
- i0.ɵɵelementStart(0, "span", 12)(1, "a", 35);
48
+ i0.ɵɵelementStart(0, "span", 12)(1, "a", 36);
49
49
  i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_13_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agents", ctx_r0.record.AgentID)); });
50
50
  i0.ɵɵtext(2);
51
51
  i0.ɵɵelementEnd()();
@@ -57,28 +57,34 @@ function MJAIAgentRunFormComponentExtended_Conditional_13_Template(rf, ctx) { if
57
57
  function MJAIAgentRunFormComponentExtended_Conditional_16_Template(rf, ctx) { if (rf & 1) {
58
58
  const _r3 = i0.ɵɵgetCurrentView();
59
59
  i0.ɵɵelementStart(0, "span", 14);
60
- i0.ɵɵelement(1, "i", 36);
61
- i0.ɵɵelementStart(2, "a", 37);
60
+ i0.ɵɵelement(1, "i", 37);
61
+ i0.ɵɵelementStart(2, "a", 38);
62
62
  i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_16_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToParentRun()); });
63
63
  i0.ɵɵtext(3, "Parent Run");
64
64
  i0.ɵɵelementEnd()();
65
65
  } }
66
66
  function MJAIAgentRunFormComponentExtended_Conditional_17_Template(rf, ctx) { if (rf & 1) {
67
67
  const _r4 = i0.ɵɵgetCurrentView();
68
- i0.ɵɵelementStart(0, "span", 38);
68
+ i0.ɵɵelementStart(0, "span", 39);
69
69
  i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_17_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToConversation()); });
70
- i0.ɵɵelement(1, "i", 39);
70
+ i0.ɵɵelement(1, "i", 40);
71
71
  i0.ɵɵelementStart(2, "span");
72
72
  i0.ɵɵtext(3, "Conversation");
73
73
  i0.ɵɵelementEnd();
74
- i0.ɵɵelement(4, "i", 40);
74
+ i0.ɵɵelement(4, "i", 41);
75
75
  i0.ɵɵelementEnd();
76
76
  } }
77
- function MJAIAgentRunFormComponentExtended_Conditional_32_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "div", 22)(1, "span", 23);
77
+ function MJAIAgentRunFormComponentExtended_Conditional_19_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelementStart(0, "div", 17);
79
+ i0.ɵɵelement(1, "i", 42);
80
+ i0.ɵɵtext(2, " Plan Mode ");
81
+ i0.ɵɵelementEnd();
82
+ } }
83
+ function MJAIAgentRunFormComponentExtended_Conditional_33_Template(rf, ctx) { if (rf & 1) {
84
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
79
85
  i0.ɵɵtext(2, "Completed");
80
86
  i0.ɵɵelementEnd();
81
- i0.ɵɵelementStart(3, "span", 24);
87
+ i0.ɵɵelementStart(3, "span", 25);
82
88
  i0.ɵɵtext(4);
83
89
  i0.ɵɵpipe(5, "date");
84
90
  i0.ɵɵelementEnd()();
@@ -87,11 +93,11 @@ function MJAIAgentRunFormComponentExtended_Conditional_32_Template(rf, ctx) { if
87
93
  i0.ɵɵadvance(4);
88
94
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r0.record.CompletedAt, "medium"));
89
95
  } }
90
- function MJAIAgentRunFormComponentExtended_Conditional_33_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "div", 22)(1, "span", 23);
96
+ function MJAIAgentRunFormComponentExtended_Conditional_34_Template(rf, ctx) { if (rf & 1) {
97
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
92
98
  i0.ɵɵtext(2, "Duration");
93
99
  i0.ɵɵelementEnd();
94
- i0.ɵɵelementStart(3, "span", 24);
100
+ i0.ɵɵelementStart(3, "span", 25);
95
101
  i0.ɵɵtext(4);
96
102
  i0.ɵɵelementEnd()();
97
103
  } if (rf & 2) {
@@ -99,11 +105,11 @@ function MJAIAgentRunFormComponentExtended_Conditional_33_Template(rf, ctx) { if
99
105
  i0.ɵɵadvance(4);
100
106
  i0.ɵɵtextInterpolate(ctx_r0.calculateDuration(ctx_r0.record.StartedAt, ctx_r0.record.CompletedAt));
101
107
  } }
102
- function MJAIAgentRunFormComponentExtended_Conditional_34_Template(rf, ctx) { if (rf & 1) {
103
- i0.ɵɵelementStart(0, "div", 22)(1, "span", 23);
108
+ function MJAIAgentRunFormComponentExtended_Conditional_35_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
104
110
  i0.ɵɵtext(2, "Result");
105
111
  i0.ɵɵelementEnd();
106
- i0.ɵɵelementStart(3, "span", 24);
112
+ i0.ɵɵelementStart(3, "span", 25);
107
113
  i0.ɵɵtext(4);
108
114
  i0.ɵɵelementEnd()();
109
115
  } if (rf & 2) {
@@ -113,8 +119,8 @@ function MJAIAgentRunFormComponentExtended_Conditional_34_Template(rf, ctx) { if
113
119
  i0.ɵɵadvance();
114
120
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Success ? "Success" : "Failed", " ");
115
121
  } }
116
- function MJAIAgentRunFormComponentExtended_Conditional_35_Conditional_3_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵelementStart(0, "span", 24);
122
+ function MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_3_Template(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵelementStart(0, "span", 25);
118
124
  i0.ɵɵtext(1);
119
125
  i0.ɵɵpipe(2, "number");
120
126
  i0.ɵɵelementEnd();
@@ -123,17 +129,17 @@ function MJAIAgentRunFormComponentExtended_Conditional_35_Conditional_3_Template
123
129
  i0.ɵɵadvance();
124
130
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r0.costMetrics.totalTokensInput + ctx_r0.costMetrics.totalTokensOutput, "1.0-0"));
125
131
  } }
126
- function MJAIAgentRunFormComponentExtended_Conditional_35_Conditional_4_Template(rf, ctx) { if (rf & 1) {
127
- i0.ɵɵelementStart(0, "span", 41);
128
- i0.ɵɵelement(1, "i", 42);
132
+ function MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_4_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵelementStart(0, "span", 43);
134
+ i0.ɵɵelement(1, "i", 44);
129
135
  i0.ɵɵelementEnd();
130
136
  } }
131
- function MJAIAgentRunFormComponentExtended_Conditional_35_Template(rf, ctx) { if (rf & 1) {
132
- i0.ɵɵelementStart(0, "div", 22)(1, "span", 23);
137
+ function MJAIAgentRunFormComponentExtended_Conditional_36_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
133
139
  i0.ɵɵtext(2, "Tokens");
134
140
  i0.ɵɵelementEnd();
135
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_35_Conditional_3_Template, 3, 4, "span", 24);
136
- i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_35_Conditional_4_Template, 2, 0, "span", 41);
141
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_3_Template, 3, 4, "span", 25);
142
+ i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_4_Template, 2, 0, "span", 43);
137
143
  i0.ɵɵelementEnd();
138
144
  } if (rf & 2) {
139
145
  const ctx_r0 = i0.ɵɵnextContext();
@@ -142,8 +148,8 @@ function MJAIAgentRunFormComponentExtended_Conditional_35_Template(rf, ctx) { if
142
148
  i0.ɵɵadvance();
143
149
  i0.ɵɵconditional(ctx_r0.costMetrics.isLoading ? 4 : -1);
144
150
  } }
145
- function MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_3_Template(rf, ctx) { if (rf & 1) {
146
- i0.ɵɵelementStart(0, "span", 24);
151
+ function MJAIAgentRunFormComponentExtended_Conditional_37_Conditional_3_Template(rf, ctx) { if (rf & 1) {
152
+ i0.ɵɵelementStart(0, "span", 25);
147
153
  i0.ɵɵtext(1);
148
154
  i0.ɵɵpipe(2, "number");
149
155
  i0.ɵɵelementEnd();
@@ -152,17 +158,17 @@ function MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_3_Template
152
158
  i0.ɵɵadvance();
153
159
  i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(2, 1, ctx_r0.costMetrics.totalCost, "1.2-4"));
154
160
  } }
155
- function MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_4_Template(rf, ctx) { if (rf & 1) {
156
- i0.ɵɵelementStart(0, "span", 41);
157
- i0.ɵɵelement(1, "i", 42);
161
+ function MJAIAgentRunFormComponentExtended_Conditional_37_Conditional_4_Template(rf, ctx) { if (rf & 1) {
162
+ i0.ɵɵelementStart(0, "span", 43);
163
+ i0.ɵɵelement(1, "i", 44);
158
164
  i0.ɵɵelementEnd();
159
165
  } }
160
- function MJAIAgentRunFormComponentExtended_Conditional_36_Template(rf, ctx) { if (rf & 1) {
161
- i0.ɵɵelementStart(0, "div", 22)(1, "span", 23);
166
+ function MJAIAgentRunFormComponentExtended_Conditional_37_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
162
168
  i0.ɵɵtext(2, "Cost");
163
169
  i0.ɵɵelementEnd();
164
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_3_Template, 3, 4, "span", 24);
165
- i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_36_Conditional_4_Template, 2, 0, "span", 41);
170
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_37_Conditional_3_Template, 3, 4, "span", 25);
171
+ i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_37_Conditional_4_Template, 2, 0, "span", 43);
166
172
  i0.ɵɵelementEnd();
167
173
  } if (rf & 2) {
168
174
  const ctx_r0 = i0.ɵɵnextContext();
@@ -171,11 +177,11 @@ function MJAIAgentRunFormComponentExtended_Conditional_36_Template(rf, ctx) { if
171
177
  i0.ɵɵadvance();
172
178
  i0.ɵɵconditional(ctx_r0.costMetrics.isLoading ? 4 : -1);
173
179
  } }
174
- function MJAIAgentRunFormComponentExtended_Conditional_37_Template(rf, ctx) { if (rf & 1) {
175
- i0.ɵɵelementStart(0, "div", 22)(1, "span", 23);
180
+ function MJAIAgentRunFormComponentExtended_Conditional_38_Template(rf, ctx) { if (rf & 1) {
181
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
176
182
  i0.ɵɵtext(2, "Effort Level");
177
183
  i0.ɵɵelementEnd();
178
- i0.ɵɵelementStart(3, "span", 24);
184
+ i0.ɵɵelementStart(3, "span", 25);
179
185
  i0.ɵɵtext(4);
180
186
  i0.ɵɵelementEnd()();
181
187
  } if (rf & 2) {
@@ -183,15 +189,15 @@ function MJAIAgentRunFormComponentExtended_Conditional_37_Template(rf, ctx) { if
183
189
  i0.ɵɵadvance(4);
184
190
  i0.ɵɵtextInterpolate(ctx_r0.record.EffortLevel);
185
191
  } }
186
- function MJAIAgentRunFormComponentExtended_Conditional_38_Template(rf, ctx) { if (rf & 1) {
192
+ function MJAIAgentRunFormComponentExtended_Conditional_39_Template(rf, ctx) { if (rf & 1) {
187
193
  const _r5 = i0.ɵɵgetCurrentView();
188
- i0.ɵɵelementStart(0, "div", 25)(1, "div", 43);
189
- i0.ɵɵelement(2, "i", 44);
190
- i0.ɵɵelementStart(3, "div", 45)(4, "div", 46);
194
+ i0.ɵɵelementStart(0, "div", 26)(1, "div", 45);
195
+ i0.ɵɵelement(2, "i", 46);
196
+ i0.ɵɵelementStart(3, "div", 47)(4, "div", 48);
191
197
  i0.ɵɵtext(5, "Configuration");
192
198
  i0.ɵɵelementEnd();
193
- i0.ɵɵelementStart(6, "div", 47)(7, "a", 35);
194
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_38_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Configurations", ctx_r0.record.ConfigurationID)); });
199
+ i0.ɵɵelementStart(6, "div", 49)(7, "a", 36);
200
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_39_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Configurations", ctx_r0.record.ConfigurationID)); });
195
201
  i0.ɵɵtext(8);
196
202
  i0.ɵɵelementEnd()()()()();
197
203
  } if (rf & 2) {
@@ -199,10 +205,10 @@ function MJAIAgentRunFormComponentExtended_Conditional_38_Template(rf, ctx) { if
199
205
  i0.ɵɵadvance(8);
200
206
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Configuration || "Unknown", " ");
201
207
  } }
202
- function MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template(rf, ctx) { if (rf & 1) {
208
+ function MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_4_Template(rf, ctx) { if (rf & 1) {
203
209
  const _r7 = i0.ɵɵgetCurrentView();
204
- i0.ɵɵelementStart(0, "as-split-area", 49)(1, "mj-ai-agent-run-step-detail", 51);
205
- i0.ɵɵlistener("closePanel", function MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template_mj_ai_agent_run_step_detail_closePanel_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.closeJsonPanel()); })("navigateToActionLog", function MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template_mj_ai_agent_run_step_detail_navigateToActionLog_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.navigateToActionLog($event)); })("copyToClipboard", function MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template_mj_ai_agent_run_step_detail_copyToClipboard_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.copyToClipboard($event)); });
210
+ i0.ɵɵelementStart(0, "as-split-area", 51)(1, "mj-ai-agent-run-step-detail", 53);
211
+ i0.ɵɵlistener("closePanel", function MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_4_Template_mj_ai_agent_run_step_detail_closePanel_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.closeJsonPanel()); })("navigateToActionLog", function MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_4_Template_mj_ai_agent_run_step_detail_navigateToActionLog_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.navigateToActionLog($event)); })("copyToClipboard", function MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_4_Template_mj_ai_agent_run_step_detail_copyToClipboard_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.copyToClipboard($event)); });
206
212
  i0.ɵɵelementEnd()();
207
213
  } if (rf & 2) {
208
214
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -210,12 +216,12 @@ function MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template
210
216
  i0.ɵɵadvance();
211
217
  i0.ɵɵproperty("selectedTimelineItem", ctx_r0.selectedTimelineItem);
212
218
  } }
213
- function MJAIAgentRunFormComponentExtended_Conditional_53_Template(rf, ctx) { if (rf & 1) {
219
+ function MJAIAgentRunFormComponentExtended_Conditional_54_Template(rf, ctx) { if (rf & 1) {
214
220
  const _r6 = i0.ɵɵgetCurrentView();
215
- i0.ɵɵelementStart(0, "div", 33)(1, "as-split", 48)(2, "as-split-area", 49)(3, "mj-ai-agent-run-timeline", 50);
216
- i0.ɵɵlistener("itemSelected", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function MJAIAgentRunFormComponentExtended_Conditional_53_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); });
221
+ i0.ɵɵelementStart(0, "div", 34)(1, "as-split", 50)(2, "as-split-area", 51)(3, "mj-ai-agent-run-timeline", 52);
222
+ i0.ɵɵlistener("itemSelected", function MJAIAgentRunFormComponentExtended_Conditional_54_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function MJAIAgentRunFormComponentExtended_Conditional_54_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); });
217
223
  i0.ɵɵelementEnd()();
218
- i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_53_Conditional_4_Template, 2, 2, "as-split-area", 49);
224
+ i0.ɵɵconditionalCreate(4, MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_4_Template, 2, 2, "as-split-area", 51);
219
225
  i0.ɵɵelementEnd()();
220
226
  } if (rf & 2) {
221
227
  const ctx_r0 = i0.ɵɵnextContext();
@@ -226,44 +232,44 @@ function MJAIAgentRunFormComponentExtended_Conditional_53_Template(rf, ctx) { if
226
232
  i0.ɵɵadvance();
227
233
  i0.ɵɵconditional(ctx_r0.selectedTimelineItem ? 4 : -1);
228
234
  } }
229
- function MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_1_Template(rf, ctx) { if (rf & 1) {
230
- i0.ɵɵelement(0, "mj-ai-agent-run-flow", 52);
235
+ function MJAIAgentRunFormComponentExtended_Conditional_55_Conditional_1_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵelement(0, "mj-ai-agent-run-flow", 54);
231
237
  } if (rf & 2) {
232
238
  const ctx_r0 = i0.ɵɵnextContext(2);
233
239
  i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("dataHelper", ctx_r0.dataHelper)("agentName", (ctx_r0.agent == null ? null : ctx_r0.agent.Name) || null)("runStatus", ctx_r0.record.Status || "")("agentIconClass", (ctx_r0.agent == null ? null : ctx_r0.agent.IconClass) || null)("agentLogoUrl", (ctx_r0.agent == null ? null : ctx_r0.agent.LogoURL) || null);
234
240
  } }
235
- function MJAIAgentRunFormComponentExtended_Conditional_54_Template(rf, ctx) { if (rf & 1) {
236
- i0.ɵɵelementStart(0, "div", 33);
237
- i0.ɵɵconditionalCreate(1, MJAIAgentRunFormComponentExtended_Conditional_54_Conditional_1_Template, 1, 6, "mj-ai-agent-run-flow", 52);
241
+ function MJAIAgentRunFormComponentExtended_Conditional_55_Template(rf, ctx) { if (rf & 1) {
242
+ i0.ɵɵelementStart(0, "div", 34);
243
+ i0.ɵɵconditionalCreate(1, MJAIAgentRunFormComponentExtended_Conditional_55_Conditional_1_Template, 1, 6, "mj-ai-agent-run-flow", 54);
238
244
  i0.ɵɵelementEnd();
239
245
  } if (rf & 2) {
240
246
  const ctx_r0 = i0.ɵɵnextContext();
241
247
  i0.ɵɵadvance();
242
248
  i0.ɵɵconditional(ctx_r0.visualizationLoaded ? 1 : -1);
243
249
  } }
244
- function MJAIAgentRunFormComponentExtended_Conditional_55_Conditional_1_Template(rf, ctx) { if (rf & 1) {
245
- i0.ɵɵelement(0, "mj-ai-agent-run-analytics", 53, 0);
250
+ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_1_Template(rf, ctx) { if (rf & 1) {
251
+ i0.ɵɵelement(0, "mj-ai-agent-run-analytics", 55, 0);
246
252
  } if (rf & 2) {
247
253
  const ctx_r0 = i0.ɵɵnextContext(2);
248
254
  i0.ɵɵproperty("agentRunId", ctx_r0.record.ID);
249
255
  } }
250
- function MJAIAgentRunFormComponentExtended_Conditional_55_Template(rf, ctx) { if (rf & 1) {
251
- i0.ɵɵelementStart(0, "div", 33);
252
- i0.ɵɵconditionalCreate(1, MJAIAgentRunFormComponentExtended_Conditional_55_Conditional_1_Template, 2, 1, "mj-ai-agent-run-analytics", 53);
256
+ function MJAIAgentRunFormComponentExtended_Conditional_56_Template(rf, ctx) { if (rf & 1) {
257
+ i0.ɵɵelementStart(0, "div", 34);
258
+ i0.ɵɵconditionalCreate(1, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_1_Template, 2, 1, "mj-ai-agent-run-analytics", 55);
253
259
  i0.ɵɵelementEnd();
254
260
  } if (rf & 2) {
255
261
  const ctx_r0 = i0.ɵɵnextContext();
256
262
  i0.ɵɵadvance();
257
263
  i0.ɵɵconditional(ctx_r0.analyticsLoaded ? 1 : -1);
258
264
  } }
259
- function MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_2_Template(rf, ctx) { if (rf & 1) {
260
- i0.ɵɵelement(0, "i", 31);
265
+ function MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_2_Template(rf, ctx) { if (rf & 1) {
266
+ i0.ɵɵelement(0, "i", 32);
261
267
  i0.ɵɵtext(1, " General Information ");
262
268
  } }
263
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_14_Template(rf, ctx) { if (rf & 1) {
269
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_14_Template(rf, ctx) { if (rf & 1) {
264
270
  const _r9 = i0.ɵɵgetCurrentView();
265
- i0.ɵɵelementStart(0, "a", 35);
266
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_14_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.ParentRunID)); });
271
+ i0.ɵɵelementStart(0, "a", 36);
272
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_14_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.ParentRunID)); });
267
273
  i0.ɵɵtext(1);
268
274
  i0.ɵɵelementEnd();
269
275
  } if (rf & 2) {
@@ -271,15 +277,15 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_14_Templat
271
277
  i0.ɵɵadvance();
272
278
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.ParentRunID, " ");
273
279
  } }
274
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_15_Template(rf, ctx) { if (rf & 1) {
280
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_15_Template(rf, ctx) { if (rf & 1) {
275
281
  i0.ɵɵelementStart(0, "span");
276
282
  i0.ɵɵtext(1, "None (Root)");
277
283
  i0.ɵɵelementEnd();
278
284
  } }
279
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_20_Template(rf, ctx) { if (rf & 1) {
285
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_20_Template(rf, ctx) { if (rf & 1) {
280
286
  const _r10 = i0.ɵɵgetCurrentView();
281
- i0.ɵɵelementStart(0, "a", 35);
282
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_20_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.LastRunID)); });
287
+ i0.ɵɵelementStart(0, "a", 36);
288
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_20_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.LastRunID)); });
283
289
  i0.ɵɵtext(1);
284
290
  i0.ɵɵelementEnd();
285
291
  } if (rf & 2) {
@@ -287,15 +293,15 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_20_Templat
287
293
  i0.ɵɵadvance();
288
294
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.LastRunID, " ");
289
295
  } }
290
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_21_Template(rf, ctx) { if (rf & 1) {
296
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_21_Template(rf, ctx) { if (rf & 1) {
291
297
  i0.ɵɵelementStart(0, "span");
292
298
  i0.ɵɵtext(1, "None");
293
299
  i0.ɵɵelementEnd();
294
300
  } }
295
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_26_Template(rf, ctx) { if (rf & 1) {
301
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_26_Template(rf, ctx) { if (rf & 1) {
296
302
  const _r11 = i0.ɵɵgetCurrentView();
297
- i0.ɵɵelementStart(0, "a", 35);
298
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_26_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: Conversations", ctx_r0.record.ConversationID)); });
303
+ i0.ɵɵelementStart(0, "a", 36);
304
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_26_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: Conversations", ctx_r0.record.ConversationID)); });
299
305
  i0.ɵɵtext(1);
300
306
  i0.ɵɵelementEnd();
301
307
  } if (rf & 2) {
@@ -303,15 +309,15 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_26_Templat
303
309
  i0.ɵɵadvance();
304
310
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.ConversationID, " ");
305
311
  } }
306
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_27_Template(rf, ctx) { if (rf & 1) {
312
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_27_Template(rf, ctx) { if (rf & 1) {
307
313
  i0.ɵɵelementStart(0, "span");
308
314
  i0.ɵɵtext(1, "N/A");
309
315
  i0.ɵɵelementEnd();
310
316
  } }
311
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_32_Template(rf, ctx) { if (rf & 1) {
317
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_32_Template(rf, ctx) { if (rf & 1) {
312
318
  const _r12 = i0.ɵɵgetCurrentView();
313
- i0.ɵɵelementStart(0, "a", 35);
314
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_32_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: Users", ctx_r0.record.UserID)); });
319
+ i0.ɵɵelementStart(0, "a", 36);
320
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_32_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: Users", ctx_r0.record.UserID)); });
315
321
  i0.ɵɵtext(1);
316
322
  i0.ɵɵelementEnd();
317
323
  } if (rf & 2) {
@@ -319,19 +325,19 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_32_Templat
319
325
  i0.ɵɵadvance();
320
326
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.User || "N/A", " ");
321
327
  } }
322
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_33_Template(rf, ctx) { if (rf & 1) {
328
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_33_Template(rf, ctx) { if (rf & 1) {
323
329
  i0.ɵɵelementStart(0, "span");
324
330
  i0.ɵɵtext(1, "N/A");
325
331
  i0.ɵɵelementEnd();
326
332
  } }
327
- function MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_35_Template(rf, ctx) { if (rf & 1) {
328
- i0.ɵɵelement(0, "i", 62);
333
+ function MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_35_Template(rf, ctx) { if (rf & 1) {
334
+ i0.ɵɵelement(0, "i", 64);
329
335
  i0.ɵɵtext(1, " Execution Settings ");
330
336
  } }
331
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_41_Template(rf, ctx) { if (rf & 1) {
337
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_41_Template(rf, ctx) { if (rf & 1) {
332
338
  const _r13 = i0.ɵɵgetCurrentView();
333
- i0.ɵɵelementStart(0, "a", 35);
334
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_41_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Models", ctx_r0.record.OverrideModelID)); });
339
+ i0.ɵɵelementStart(0, "a", 36);
340
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_41_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Models", ctx_r0.record.OverrideModelID)); });
335
341
  i0.ɵɵtext(1);
336
342
  i0.ɵɵelementEnd();
337
343
  } if (rf & 2) {
@@ -339,15 +345,15 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_41_Templat
339
345
  i0.ɵɵadvance();
340
346
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.OverrideModel || "N/A", " ");
341
347
  } }
342
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_42_Template(rf, ctx) { if (rf & 1) {
348
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_42_Template(rf, ctx) { if (rf & 1) {
343
349
  i0.ɵɵelementStart(0, "span");
344
350
  i0.ɵɵtext(1, "N/A");
345
351
  i0.ɵɵelementEnd();
346
352
  } }
347
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_47_Template(rf, ctx) { if (rf & 1) {
353
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_47_Template(rf, ctx) { if (rf & 1) {
348
354
  const _r14 = i0.ɵɵgetCurrentView();
349
- i0.ɵɵelementStart(0, "a", 35);
350
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_47_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Vendors", ctx_r0.record.OverrideVendorID)); });
355
+ i0.ɵɵelementStart(0, "a", 36);
356
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_47_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Vendors", ctx_r0.record.OverrideVendorID)); });
351
357
  i0.ɵɵtext(1);
352
358
  i0.ɵɵelementEnd();
353
359
  } if (rf & 2) {
@@ -355,35 +361,35 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_47_Templat
355
361
  i0.ɵɵadvance();
356
362
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.OverrideVendor || "N/A", " ");
357
363
  } }
358
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_48_Template(rf, ctx) { if (rf & 1) {
364
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_48_Template(rf, ctx) { if (rf & 1) {
359
365
  i0.ɵɵelementStart(0, "span");
360
366
  i0.ɵɵtext(1, "N/A");
361
367
  i0.ɵɵelementEnd();
362
368
  } }
363
- function MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_55_Template(rf, ctx) { if (rf & 1) {
364
- i0.ɵɵelement(0, "i", 63);
369
+ function MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_55_Template(rf, ctx) { if (rf & 1) {
370
+ i0.ɵɵelement(0, "i", 65);
365
371
  i0.ɵɵtext(1, " Execution Status ");
366
372
  } }
367
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_65_Template(rf, ctx) { if (rf & 1) {
373
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_65_Template(rf, ctx) { if (rf & 1) {
368
374
  i0.ɵɵelementStart(0, "span");
369
375
  i0.ɵɵtext(1, "In Progress");
370
376
  i0.ɵɵelementEnd();
371
377
  } }
372
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_66_Template(rf, ctx) { if (rf & 1) {
373
- i0.ɵɵelementStart(0, "span", 59);
378
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_66_Template(rf, ctx) { if (rf & 1) {
379
+ i0.ɵɵelementStart(0, "span", 61);
374
380
  i0.ɵɵtext(1, "Yes");
375
381
  i0.ɵɵelementEnd();
376
382
  } }
377
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_67_Template(rf, ctx) { if (rf & 1) {
378
- i0.ɵɵelementStart(0, "span", 60);
383
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_67_Template(rf, ctx) { if (rf & 1) {
384
+ i0.ɵɵelementStart(0, "span", 62);
379
385
  i0.ɵɵtext(1, "No");
380
386
  i0.ɵɵelementEnd();
381
387
  } }
382
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_68_Template(rf, ctx) { if (rf & 1) {
383
- i0.ɵɵelementStart(0, "div", 61)(1, "label");
388
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_68_Template(rf, ctx) { if (rf & 1) {
389
+ i0.ɵɵelementStart(0, "div", 63)(1, "label");
384
390
  i0.ɵɵtext(2, "Message");
385
391
  i0.ɵɵelementEnd();
386
- i0.ɵɵelementStart(3, "div", 64);
392
+ i0.ɵɵelementStart(3, "div", 66);
387
393
  i0.ɵɵtext(4);
388
394
  i0.ɵɵelementEnd()();
389
395
  } if (rf & 2) {
@@ -391,11 +397,11 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_68_Templat
391
397
  i0.ɵɵadvance(4);
392
398
  i0.ɵɵtextInterpolate(ctx_r0.record.Message);
393
399
  } }
394
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_69_Template(rf, ctx) { if (rf & 1) {
395
- i0.ɵɵelementStart(0, "div", 61)(1, "label");
400
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_69_Template(rf, ctx) { if (rf & 1) {
401
+ i0.ɵɵelementStart(0, "div", 63)(1, "label");
396
402
  i0.ɵɵtext(2, "Error Message");
397
403
  i0.ɵɵelementEnd();
398
- i0.ɵɵelementStart(3, "div", 60);
404
+ i0.ɵɵelementStart(3, "div", 62);
399
405
  i0.ɵɵtext(4);
400
406
  i0.ɵɵelementEnd()();
401
407
  } if (rf & 2) {
@@ -403,31 +409,31 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_69_Templat
403
409
  i0.ɵɵadvance(4);
404
410
  i0.ɵɵtextInterpolate(ctx_r0.record.ErrorMessage);
405
411
  } }
406
- function MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_71_Template(rf, ctx) { if (rf & 1) {
407
- i0.ɵɵelement(0, "i", 65);
412
+ function MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_71_Template(rf, ctx) { if (rf & 1) {
413
+ i0.ɵɵelement(0, "i", 67);
408
414
  i0.ɵɵtext(1, " Usage & Cost ");
409
415
  } }
410
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_ng_template_1_Template(rf, ctx) { if (rf & 1) {
411
- i0.ɵɵelement(0, "i", 69);
416
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_ng_template_1_Template(rf, ctx) { if (rf & 1) {
417
+ i0.ɵɵelement(0, "i", 71);
412
418
  i0.ɵɵtext(1, " Result ");
413
419
  } }
414
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Conditional_3_Template(rf, ctx) { if (rf & 1) {
415
- i0.ɵɵelement(0, "mj-code-editor", 67);
420
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_Conditional_3_Template(rf, ctx) { if (rf & 1) {
421
+ i0.ɵɵelement(0, "mj-code-editor", 69);
416
422
  } if (rf & 2) {
417
423
  const ctx_r0 = i0.ɵɵnextContext(3);
418
424
  i0.ɵɵproperty("ngModel", ctx_r0.parsedResult)("language", "json")("readonly", true);
419
425
  } }
420
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Conditional_4_Template(rf, ctx) { if (rf & 1) {
421
- i0.ɵɵelementStart(0, "div", 68);
422
- i0.ɵɵelement(1, "i", 42);
426
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_Conditional_4_Template(rf, ctx) { if (rf & 1) {
427
+ i0.ɵɵelementStart(0, "div", 70);
428
+ i0.ɵɵelement(1, "i", 44);
423
429
  i0.ɵɵtext(2, " Loading result data... ");
424
430
  i0.ɵɵelementEnd();
425
431
  } }
426
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Template(rf, ctx) { if (rf & 1) {
427
- i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
428
- i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_ng_template_1_Template, 2, 0, "ng-template", 55);
429
- i0.ɵɵelementStart(2, "div", 66);
430
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Conditional_3_Template, 1, 3, "mj-code-editor", 67)(4, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Conditional_4_Template, 3, 0, "div", 68);
432
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_Template(rf, ctx) { if (rf & 1) {
433
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 56);
434
+ i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_ng_template_1_Template, 2, 0, "ng-template", 57);
435
+ i0.ɵɵelementStart(2, "div", 68);
436
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_Conditional_3_Template, 1, 3, "mj-code-editor", 69)(4, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_Conditional_4_Template, 3, 0, "div", 70);
431
437
  i0.ɵɵelementEnd()();
432
438
  } if (rf & 2) {
433
439
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -435,27 +441,27 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Templa
435
441
  i0.ɵɵadvance(3);
436
442
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 3 : 4);
437
443
  } }
438
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_ng_template_1_Template(rf, ctx) { if (rf & 1) {
439
- i0.ɵɵelement(0, "i", 70);
444
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_ng_template_1_Template(rf, ctx) { if (rf & 1) {
445
+ i0.ɵɵelement(0, "i", 72);
440
446
  i0.ɵɵtext(1, " Starting Payload ");
441
447
  } }
442
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Conditional_3_Template(rf, ctx) { if (rf & 1) {
443
- i0.ɵɵelement(0, "mj-code-editor", 67);
448
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_Conditional_3_Template(rf, ctx) { if (rf & 1) {
449
+ i0.ɵɵelement(0, "mj-code-editor", 69);
444
450
  } if (rf & 2) {
445
451
  const ctx_r0 = i0.ɵɵnextContext(3);
446
452
  i0.ɵɵproperty("ngModel", ctx_r0.parsedStartingPayload)("language", "json")("readonly", true);
447
453
  } }
448
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Conditional_4_Template(rf, ctx) { if (rf & 1) {
449
- i0.ɵɵelementStart(0, "div", 68);
450
- i0.ɵɵelement(1, "i", 42);
454
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_Conditional_4_Template(rf, ctx) { if (rf & 1) {
455
+ i0.ɵɵelementStart(0, "div", 70);
456
+ i0.ɵɵelement(1, "i", 44);
451
457
  i0.ɵɵtext(2, " Loading payload data... ");
452
458
  i0.ɵɵelementEnd();
453
459
  } }
454
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Template(rf, ctx) { if (rf & 1) {
455
- i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
456
- i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_ng_template_1_Template, 2, 0, "ng-template", 55);
457
- i0.ɵɵelementStart(2, "div", 66);
458
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Conditional_3_Template, 1, 3, "mj-code-editor", 67)(4, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Conditional_4_Template, 3, 0, "div", 68);
460
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_Template(rf, ctx) { if (rf & 1) {
461
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 56);
462
+ i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_ng_template_1_Template, 2, 0, "ng-template", 57);
463
+ i0.ɵɵelementStart(2, "div", 68);
464
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_Conditional_3_Template, 1, 3, "mj-code-editor", 69)(4, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_Conditional_4_Template, 3, 0, "div", 70);
459
465
  i0.ɵɵelementEnd()();
460
466
  } if (rf & 2) {
461
467
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -463,27 +469,27 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Templa
463
469
  i0.ɵɵadvance(3);
464
470
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 3 : 4);
465
471
  } }
466
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_ng_template_1_Template(rf, ctx) { if (rf & 1) {
467
- i0.ɵɵelement(0, "i", 71);
472
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_ng_template_1_Template(rf, ctx) { if (rf & 1) {
473
+ i0.ɵɵelement(0, "i", 73);
468
474
  i0.ɵɵtext(1, " Execution Data ");
469
475
  } }
470
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Conditional_3_Template(rf, ctx) { if (rf & 1) {
471
- i0.ɵɵelement(0, "mj-code-editor", 67);
476
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_Conditional_3_Template(rf, ctx) { if (rf & 1) {
477
+ i0.ɵɵelement(0, "mj-code-editor", 69);
472
478
  } if (rf & 2) {
473
479
  const ctx_r0 = i0.ɵɵnextContext(3);
474
480
  i0.ɵɵproperty("ngModel", ctx_r0.parsedData)("language", "json")("readonly", true);
475
481
  } }
476
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Conditional_4_Template(rf, ctx) { if (rf & 1) {
477
- i0.ɵɵelementStart(0, "div", 68);
478
- i0.ɵɵelement(1, "i", 42);
482
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_Conditional_4_Template(rf, ctx) { if (rf & 1) {
483
+ i0.ɵɵelementStart(0, "div", 70);
484
+ i0.ɵɵelement(1, "i", 44);
479
485
  i0.ɵɵtext(2, " Loading execution data... ");
480
486
  i0.ɵɵelementEnd();
481
487
  } }
482
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Template(rf, ctx) { if (rf & 1) {
483
- i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
484
- i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_ng_template_1_Template, 2, 0, "ng-template", 55);
485
- i0.ɵɵelementStart(2, "div", 66);
486
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Conditional_3_Template, 1, 3, "mj-code-editor", 67)(4, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Conditional_4_Template, 3, 0, "div", 68);
488
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_Template(rf, ctx) { if (rf & 1) {
489
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 56);
490
+ i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_ng_template_1_Template, 2, 0, "ng-template", 57);
491
+ i0.ɵɵelementStart(2, "div", 68);
492
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_Conditional_3_Template, 1, 3, "mj-code-editor", 69)(4, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_Conditional_4_Template, 3, 0, "div", 70);
487
493
  i0.ɵɵelementEnd()();
488
494
  } if (rf & 2) {
489
495
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -491,27 +497,27 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Templa
491
497
  i0.ɵɵadvance(3);
492
498
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 3 : 4);
493
499
  } }
494
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_ng_template_1_Template(rf, ctx) { if (rf & 1) {
495
- i0.ɵɵelement(0, "i", 72);
500
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_ng_template_1_Template(rf, ctx) { if (rf & 1) {
501
+ i0.ɵɵelement(0, "i", 74);
496
502
  i0.ɵɵtext(1, " Final Payload ");
497
503
  } }
498
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Conditional_3_Template(rf, ctx) { if (rf & 1) {
499
- i0.ɵɵelement(0, "mj-code-editor", 67);
504
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_Conditional_3_Template(rf, ctx) { if (rf & 1) {
505
+ i0.ɵɵelement(0, "mj-code-editor", 69);
500
506
  } if (rf & 2) {
501
507
  const ctx_r0 = i0.ɵɵnextContext(3);
502
508
  i0.ɵɵproperty("ngModel", ctx_r0.parsedFinalPayload)("language", "json")("readonly", true);
503
509
  } }
504
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Conditional_4_Template(rf, ctx) { if (rf & 1) {
505
- i0.ɵɵelementStart(0, "div", 68);
506
- i0.ɵɵelement(1, "i", 42);
510
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_Conditional_4_Template(rf, ctx) { if (rf & 1) {
511
+ i0.ɵɵelementStart(0, "div", 70);
512
+ i0.ɵɵelement(1, "i", 44);
507
513
  i0.ɵɵtext(2, " Loading final payload data... ");
508
514
  i0.ɵɵelementEnd();
509
515
  } }
510
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Template(rf, ctx) { if (rf & 1) {
511
- i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
512
- i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_ng_template_1_Template, 2, 0, "ng-template", 55);
513
- i0.ɵɵelementStart(2, "div", 66);
514
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Conditional_3_Template, 1, 3, "mj-code-editor", 67)(4, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Conditional_4_Template, 3, 0, "div", 68);
516
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_Template(rf, ctx) { if (rf & 1) {
517
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 56);
518
+ i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_ng_template_1_Template, 2, 0, "ng-template", 57);
519
+ i0.ɵɵelementStart(2, "div", 68);
520
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_Conditional_3_Template, 1, 3, "mj-code-editor", 69)(4, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_Conditional_4_Template, 3, 0, "div", 70);
515
521
  i0.ɵɵelementEnd()();
516
522
  } if (rf & 2) {
517
523
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -519,27 +525,27 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Templa
519
525
  i0.ɵɵadvance(3);
520
526
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 3 : 4);
521
527
  } }
522
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_ng_template_1_Template(rf, ctx) { if (rf & 1) {
523
- i0.ɵɵelement(0, "i", 75);
528
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_ng_template_1_Template(rf, ctx) { if (rf & 1) {
529
+ i0.ɵɵelement(0, "i", 77);
524
530
  i0.ɵɵtext(1, " Payload Diff ");
525
531
  } }
526
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Conditional_3_Template(rf, ctx) { if (rf & 1) {
527
- i0.ɵɵelement(0, "mj-deep-diff", 74);
532
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_Conditional_3_Template(rf, ctx) { if (rf & 1) {
533
+ i0.ɵɵelement(0, "mj-deep-diff", 76);
528
534
  } if (rf & 2) {
529
535
  const ctx_r0 = i0.ɵɵnextContext(3);
530
536
  i0.ɵɵproperty("oldValue", ctx_r0.startingPayloadObject)("newValue", ctx_r0.finalPayloadObject)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", false)("maxDepth", 10)("maxStringLength", 200)("treatNullAsUndefined", true);
531
537
  } }
532
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Conditional_4_Template(rf, ctx) { if (rf & 1) {
533
- i0.ɵɵelementStart(0, "div", 68);
534
- i0.ɵɵelement(1, "i", 42);
538
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_Conditional_4_Template(rf, ctx) { if (rf & 1) {
539
+ i0.ɵɵelementStart(0, "div", 70);
540
+ i0.ɵɵelement(1, "i", 44);
535
541
  i0.ɵɵtext(2, " Loading payload diff... ");
536
542
  i0.ɵɵelementEnd();
537
543
  } }
538
- function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Template(rf, ctx) { if (rf & 1) {
539
- i0.ɵɵelementStart(0, "mj-accordion-panel", 54);
540
- i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_ng_template_1_Template, 2, 0, "ng-template", 55);
541
- i0.ɵɵelementStart(2, "div", 73);
542
- i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Conditional_3_Template, 1, 9, "mj-deep-diff", 74)(4, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Conditional_4_Template, 3, 0, "div", 68);
544
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_Template(rf, ctx) { if (rf & 1) {
545
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 56);
546
+ i0.ɵɵtemplate(1, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_ng_template_1_Template, 2, 0, "ng-template", 57);
547
+ i0.ɵɵelementStart(2, "div", 75);
548
+ i0.ɵɵconditionalCreate(3, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_Conditional_3_Template, 1, 9, "mj-deep-diff", 76)(4, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_Conditional_4_Template, 3, 0, "div", 70);
543
549
  i0.ɵɵelementEnd()();
544
550
  } if (rf & 2) {
545
551
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -547,125 +553,125 @@ function MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Templa
547
553
  i0.ɵɵadvance(3);
548
554
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 3 : 4);
549
555
  } }
550
- function MJAIAgentRunFormComponentExtended_Conditional_56_Template(rf, ctx) { if (rf & 1) {
556
+ function MJAIAgentRunFormComponentExtended_Conditional_57_Template(rf, ctx) { if (rf & 1) {
551
557
  const _r8 = i0.ɵɵgetCurrentView();
552
- i0.ɵɵelementStart(0, "div", 34)(1, "mj-accordion-panel", 54);
553
- i0.ɵɵtemplate(2, MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_2_Template, 2, 0, "ng-template", 55);
554
- i0.ɵɵelementStart(3, "div", 56)(4, "div", 57)(5, "label");
558
+ i0.ɵɵelementStart(0, "div", 35)(1, "mj-accordion-panel", 56);
559
+ i0.ɵɵtemplate(2, MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_2_Template, 2, 0, "ng-template", 57);
560
+ i0.ɵɵelementStart(3, "div", 58)(4, "div", 59)(5, "label");
555
561
  i0.ɵɵtext(6, "Agent");
556
562
  i0.ɵɵelementEnd();
557
- i0.ɵɵelementStart(7, "span")(8, "a", 35);
558
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_56_Template_a_click_8_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agents", ctx_r0.record.AgentID)); });
563
+ i0.ɵɵelementStart(7, "span")(8, "a", 36);
564
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Conditional_57_Template_a_click_8_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agents", ctx_r0.record.AgentID)); });
559
565
  i0.ɵɵtext(9);
560
566
  i0.ɵɵelementEnd()()();
561
- i0.ɵɵelementStart(10, "div", 57)(11, "label");
567
+ i0.ɵɵelementStart(10, "div", 59)(11, "label");
562
568
  i0.ɵɵtext(12, "Parent Run ID");
563
569
  i0.ɵɵelementEnd();
564
570
  i0.ɵɵelementStart(13, "span");
565
- i0.ɵɵconditionalCreate(14, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_14_Template, 2, 1, "a", 58);
566
- i0.ɵɵconditionalCreate(15, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_15_Template, 2, 0, "span");
571
+ i0.ɵɵconditionalCreate(14, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_14_Template, 2, 1, "a", 60);
572
+ i0.ɵɵconditionalCreate(15, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_15_Template, 2, 0, "span");
567
573
  i0.ɵɵelementEnd()();
568
- i0.ɵɵelementStart(16, "div", 57)(17, "label");
574
+ i0.ɵɵelementStart(16, "div", 59)(17, "label");
569
575
  i0.ɵɵtext(18, "Last Run ID");
570
576
  i0.ɵɵelementEnd();
571
577
  i0.ɵɵelementStart(19, "span");
572
- i0.ɵɵconditionalCreate(20, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_20_Template, 2, 1, "a", 58);
573
- i0.ɵɵconditionalCreate(21, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_21_Template, 2, 0, "span");
578
+ i0.ɵɵconditionalCreate(20, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_20_Template, 2, 1, "a", 60);
579
+ i0.ɵɵconditionalCreate(21, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_21_Template, 2, 0, "span");
574
580
  i0.ɵɵelementEnd()();
575
- i0.ɵɵelementStart(22, "div", 57)(23, "label");
581
+ i0.ɵɵelementStart(22, "div", 59)(23, "label");
576
582
  i0.ɵɵtext(24, "Conversation ID");
577
583
  i0.ɵɵelementEnd();
578
584
  i0.ɵɵelementStart(25, "span");
579
- i0.ɵɵconditionalCreate(26, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_26_Template, 2, 1, "a", 58);
580
- i0.ɵɵconditionalCreate(27, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_27_Template, 2, 0, "span");
585
+ i0.ɵɵconditionalCreate(26, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_26_Template, 2, 1, "a", 60);
586
+ i0.ɵɵconditionalCreate(27, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_27_Template, 2, 0, "span");
581
587
  i0.ɵɵelementEnd()();
582
- i0.ɵɵelementStart(28, "div", 57)(29, "label");
588
+ i0.ɵɵelementStart(28, "div", 59)(29, "label");
583
589
  i0.ɵɵtext(30, "User");
584
590
  i0.ɵɵelementEnd();
585
591
  i0.ɵɵelementStart(31, "span");
586
- i0.ɵɵconditionalCreate(32, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_32_Template, 2, 1, "a", 58);
587
- i0.ɵɵconditionalCreate(33, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_33_Template, 2, 0, "span");
592
+ i0.ɵɵconditionalCreate(32, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_32_Template, 2, 1, "a", 60);
593
+ i0.ɵɵconditionalCreate(33, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_33_Template, 2, 0, "span");
588
594
  i0.ɵɵelementEnd()()()();
589
- i0.ɵɵelementStart(34, "mj-accordion-panel", 54);
590
- i0.ɵɵtemplate(35, MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_35_Template, 2, 0, "ng-template", 55);
591
- i0.ɵɵelementStart(36, "div", 56)(37, "div", 57)(38, "label");
595
+ i0.ɵɵelementStart(34, "mj-accordion-panel", 56);
596
+ i0.ɵɵtemplate(35, MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_35_Template, 2, 0, "ng-template", 57);
597
+ i0.ɵɵelementStart(36, "div", 58)(37, "div", 59)(38, "label");
592
598
  i0.ɵɵtext(39, "Override Model");
593
599
  i0.ɵɵelementEnd();
594
600
  i0.ɵɵelementStart(40, "span");
595
- i0.ɵɵconditionalCreate(41, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_41_Template, 2, 1, "a", 58);
596
- i0.ɵɵconditionalCreate(42, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_42_Template, 2, 0, "span");
601
+ i0.ɵɵconditionalCreate(41, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_41_Template, 2, 1, "a", 60);
602
+ i0.ɵɵconditionalCreate(42, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_42_Template, 2, 0, "span");
597
603
  i0.ɵɵelementEnd()();
598
- i0.ɵɵelementStart(43, "div", 57)(44, "label");
604
+ i0.ɵɵelementStart(43, "div", 59)(44, "label");
599
605
  i0.ɵɵtext(45, "Override Vendor");
600
606
  i0.ɵɵelementEnd();
601
607
  i0.ɵɵelementStart(46, "span");
602
- i0.ɵɵconditionalCreate(47, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_47_Template, 2, 1, "a", 58);
603
- i0.ɵɵconditionalCreate(48, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_48_Template, 2, 0, "span");
608
+ i0.ɵɵconditionalCreate(47, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_47_Template, 2, 1, "a", 60);
609
+ i0.ɵɵconditionalCreate(48, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_48_Template, 2, 0, "span");
604
610
  i0.ɵɵelementEnd()();
605
- i0.ɵɵelementStart(49, "div", 57)(50, "label");
611
+ i0.ɵɵelementStart(49, "div", 59)(50, "label");
606
612
  i0.ɵɵtext(51, "Verbose Logging");
607
613
  i0.ɵɵelementEnd();
608
614
  i0.ɵɵelementStart(52, "span");
609
615
  i0.ɵɵtext(53);
610
616
  i0.ɵɵelementEnd()()()();
611
- i0.ɵɵelementStart(54, "mj-accordion-panel", 54);
612
- i0.ɵɵtemplate(55, MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_55_Template, 2, 0, "ng-template", 55);
613
- i0.ɵɵelementStart(56, "div", 56)(57, "div", 57)(58, "label");
617
+ i0.ɵɵelementStart(54, "mj-accordion-panel", 56);
618
+ i0.ɵɵtemplate(55, MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_55_Template, 2, 0, "ng-template", 57);
619
+ i0.ɵɵelementStart(56, "div", 58)(57, "div", 59)(58, "label");
614
620
  i0.ɵɵtext(59, "Status");
615
621
  i0.ɵɵelementEnd();
616
- i0.ɵɵelementStart(60, "span", 17);
622
+ i0.ɵɵelementStart(60, "span", 18);
617
623
  i0.ɵɵtext(61);
618
624
  i0.ɵɵelementEnd()();
619
- i0.ɵɵelementStart(62, "div", 57)(63, "label");
625
+ i0.ɵɵelementStart(62, "div", 59)(63, "label");
620
626
  i0.ɵɵtext(64, "Success");
621
627
  i0.ɵɵelementEnd();
622
- i0.ɵɵconditionalCreate(65, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_65_Template, 2, 0, "span")(66, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_66_Template, 2, 0, "span", 59)(67, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_67_Template, 2, 0, "span", 60);
628
+ i0.ɵɵconditionalCreate(65, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_65_Template, 2, 0, "span")(66, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_66_Template, 2, 0, "span", 61)(67, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_67_Template, 2, 0, "span", 62);
623
629
  i0.ɵɵelementEnd();
624
- i0.ɵɵconditionalCreate(68, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_68_Template, 5, 1, "div", 61);
625
- i0.ɵɵconditionalCreate(69, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_69_Template, 5, 1, "div", 61);
630
+ i0.ɵɵconditionalCreate(68, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_68_Template, 5, 1, "div", 63);
631
+ i0.ɵɵconditionalCreate(69, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_69_Template, 5, 1, "div", 63);
626
632
  i0.ɵɵelementEnd()();
627
- i0.ɵɵelementStart(70, "mj-accordion-panel", 54);
628
- i0.ɵɵtemplate(71, MJAIAgentRunFormComponentExtended_Conditional_56_ng_template_71_Template, 2, 0, "ng-template", 55);
629
- i0.ɵɵelementStart(72, "div", 56)(73, "div", 57)(74, "label");
633
+ i0.ɵɵelementStart(70, "mj-accordion-panel", 56);
634
+ i0.ɵɵtemplate(71, MJAIAgentRunFormComponentExtended_Conditional_57_ng_template_71_Template, 2, 0, "ng-template", 57);
635
+ i0.ɵɵelementStart(72, "div", 58)(73, "div", 59)(74, "label");
630
636
  i0.ɵɵtext(75, "Total Tokens Used");
631
637
  i0.ɵɵelementEnd();
632
638
  i0.ɵɵelementStart(76, "span");
633
639
  i0.ɵɵtext(77);
634
640
  i0.ɵɵpipe(78, "number");
635
641
  i0.ɵɵelementEnd()();
636
- i0.ɵɵelementStart(79, "div", 57)(80, "label");
642
+ i0.ɵɵelementStart(79, "div", 59)(80, "label");
637
643
  i0.ɵɵtext(81, "Prompt Tokens");
638
644
  i0.ɵɵelementEnd();
639
645
  i0.ɵɵelementStart(82, "span");
640
646
  i0.ɵɵtext(83);
641
647
  i0.ɵɵpipe(84, "number");
642
648
  i0.ɵɵelementEnd()();
643
- i0.ɵɵelementStart(85, "div", 57)(86, "label");
649
+ i0.ɵɵelementStart(85, "div", 59)(86, "label");
644
650
  i0.ɵɵtext(87, "Completion Tokens");
645
651
  i0.ɵɵelementEnd();
646
652
  i0.ɵɵelementStart(88, "span");
647
653
  i0.ɵɵtext(89);
648
654
  i0.ɵɵpipe(90, "number");
649
655
  i0.ɵɵelementEnd()();
650
- i0.ɵɵelementStart(91, "div", 57)(92, "label");
656
+ i0.ɵɵelementStart(91, "div", 59)(92, "label");
651
657
  i0.ɵɵtext(93, "Total Cost");
652
658
  i0.ɵɵelementEnd();
653
659
  i0.ɵɵelementStart(94, "span");
654
660
  i0.ɵɵtext(95);
655
661
  i0.ɵɵpipe(96, "number");
656
662
  i0.ɵɵelementEnd()();
657
- i0.ɵɵelementStart(97, "div", 57)(98, "label");
663
+ i0.ɵɵelementStart(97, "div", 59)(98, "label");
658
664
  i0.ɵɵtext(99, "Total Prompt Iterations");
659
665
  i0.ɵɵelementEnd();
660
666
  i0.ɵɵelementStart(100, "span");
661
667
  i0.ɵɵtext(101);
662
668
  i0.ɵɵpipe(102, "number");
663
669
  i0.ɵɵelementEnd()()()();
664
- i0.ɵɵconditionalCreate(103, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_103_Template, 5, 2, "mj-accordion-panel", 54);
665
- i0.ɵɵconditionalCreate(104, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_104_Template, 5, 2, "mj-accordion-panel", 54);
666
- i0.ɵɵconditionalCreate(105, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_105_Template, 5, 2, "mj-accordion-panel", 54);
667
- i0.ɵɵconditionalCreate(106, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_106_Template, 5, 2, "mj-accordion-panel", 54);
668
- i0.ɵɵconditionalCreate(107, MJAIAgentRunFormComponentExtended_Conditional_56_Conditional_107_Template, 5, 2, "mj-accordion-panel", 54);
670
+ i0.ɵɵconditionalCreate(103, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_103_Template, 5, 2, "mj-accordion-panel", 56);
671
+ i0.ɵɵconditionalCreate(104, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_104_Template, 5, 2, "mj-accordion-panel", 56);
672
+ i0.ɵɵconditionalCreate(105, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_105_Template, 5, 2, "mj-accordion-panel", 56);
673
+ i0.ɵɵconditionalCreate(106, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_106_Template, 5, 2, "mj-accordion-panel", 56);
674
+ i0.ɵɵconditionalCreate(107, MJAIAgentRunFormComponentExtended_Conditional_57_Conditional_107_Template, 5, 2, "mj-accordion-panel", 56);
669
675
  i0.ɵɵelementEnd();
670
676
  } if (rf & 2) {
671
677
  const ctx_r0 = i0.ɵɵnextContext();
@@ -1420,7 +1426,7 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
1420
1426
  let _t;
1421
1427
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineComponent = _t.first);
1422
1428
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analyticsComponent = _t.first);
1423
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 57, vars: 33, consts: [["analyticsComponent", ""], [1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [1, "fas", 3, "ngClass"], [1, "fas", "fa-robot"], [1, "header-info"], [1, "meta-info"], [1, "agent-name"], [1, "run-id"], [1, "parent-run"], ["title", "Open conversation in Chat app", 1, "conversation-pill"], [1, "header-right"], [1, "status-badge"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], [1, "configuration-bar"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-diagram-project"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-info-circle"], [1, "content-area"], [1, "tab-content", 2, "height", "100%"], [1, "tab-content"], ["href", "javascript:void(0)", 1, "entity-link", 3, "click"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], ["title", "Open conversation in Chat app", 1, "conversation-pill", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-external-link-alt", "pill-action"], [1, "value", "loading"], [1, "fas", "fa-spinner", "fa-spin"], [1, "config-item"], [1, "fas", "fa-cog"], [1, "config-content"], [1, "config-label"], [1, "config-value"], ["direction", "horizontal", 2, "height", "100%"], [3, "size"], [3, "itemSelected", "navigateToEntity", "aiAgentRunId", "dataHelper"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"], [3, "aiAgentRunId", "dataHelper", "agentName", "runStatus", "agentIconClass", "agentLogoUrl"], [3, "agentRunId"], [3, "Expanded"], ["mjAccordionTitle", ""], [1, "details-grid"], [1, "detail-item"], ["href", "javascript:void(0)", 1, "entity-link"], [1, "success"], [1, "error-message"], [1, "detail-item", "full-width"], [1, "fas", "fa-cogs"], [1, "fas", "fa-tasks"], [1, "message"], [1, "fas", "fa-dollar-sign"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModel", "language", "readonly"], [2, "padding", "20px", "text-align", "center", "color", "var(--mj-text-muted)"], [1, "fas", "fa-code"], [1, "fas", "fa-upload"], [1, "fas", "fa-database"], [1, "fas", "fa-download"], [2, "padding", "20px", "background", "var(--mj-bg-surface-card)"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "fas", "fa-code-compare"]], template: function MJAIAgentRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1429
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 58, vars: 34, consts: [["analyticsComponent", ""], [1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "agent-logo", 3, "src", "alt"], [1, "fas", 3, "ngClass"], [1, "fas", "fa-robot"], [1, "header-info"], [1, "meta-info"], [1, "agent-name"], [1, "run-id"], [1, "parent-run"], ["title", "Open conversation in Chat app", 1, "conversation-pill"], [1, "header-right"], ["title", "This run executed in Plan Mode \u2014 the agent presented a plan for human approval before executing actions or sub-agents", 1, "plan-mode-badge"], [1, "status-badge"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], [1, "configuration-bar"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-diagram-project"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-info-circle"], [1, "content-area"], [1, "tab-content", 2, "height", "100%"], [1, "tab-content"], ["href", "javascript:void(0)", 1, "entity-link", 3, "click"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], ["title", "Open conversation in Chat app", 1, "conversation-pill", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-external-link-alt", "pill-action"], [1, "fas", "fa-clipboard-check"], [1, "value", "loading"], [1, "fas", "fa-spinner", "fa-spin"], [1, "config-item"], [1, "fas", "fa-cog"], [1, "config-content"], [1, "config-label"], [1, "config-value"], ["direction", "horizontal", 2, "height", "100%"], [3, "size"], [3, "itemSelected", "navigateToEntity", "aiAgentRunId", "dataHelper"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"], [3, "aiAgentRunId", "dataHelper", "agentName", "runStatus", "agentIconClass", "agentLogoUrl"], [3, "agentRunId"], [3, "Expanded"], ["mjAccordionTitle", ""], [1, "details-grid"], [1, "detail-item"], ["href", "javascript:void(0)", 1, "entity-link"], [1, "success"], [1, "error-message"], [1, "detail-item", "full-width"], [1, "fas", "fa-cogs"], [1, "fas", "fa-tasks"], [1, "message"], [1, "fas", "fa-dollar-sign"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModel", "language", "readonly"], [2, "padding", "20px", "text-align", "center", "color", "var(--mj-text-muted)"], [1, "fas", "fa-code"], [1, "fas", "fa-upload"], [1, "fas", "fa-database"], [1, "fas", "fa-download"], [2, "padding", "20px", "background", "var(--mj-bg-surface-card)"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"], [1, "fas", "fa-code-compare"]], template: function MJAIAgentRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1424
1430
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "div", 5)(5, "div", 6);
1425
1431
  i0.ɵɵconditionalCreate(6, MJAIAgentRunFormComponentExtended_Conditional_6_Template, 1, 2, "img", 7);
1426
1432
  i0.ɵɵconditionalCreate(7, MJAIAgentRunFormComponentExtended_Conditional_7_Template, 1, 1, "i", 8);
@@ -1437,55 +1443,57 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
1437
1443
  i0.ɵɵconditionalCreate(16, MJAIAgentRunFormComponentExtended_Conditional_16_Template, 4, 0, "span", 14);
1438
1444
  i0.ɵɵconditionalCreate(17, MJAIAgentRunFormComponentExtended_Conditional_17_Template, 5, 0, "span", 15);
1439
1445
  i0.ɵɵelementEnd()()();
1440
- i0.ɵɵelementStart(18, "div", 16)(19, "div", 17);
1441
- i0.ɵɵelement(20, "i", 8);
1442
- i0.ɵɵtext(21);
1446
+ i0.ɵɵelementStart(18, "div", 16);
1447
+ i0.ɵɵconditionalCreate(19, MJAIAgentRunFormComponentExtended_Conditional_19_Template, 3, 0, "div", 17);
1448
+ i0.ɵɵelementStart(20, "div", 18);
1449
+ i0.ɵɵelement(21, "i", 8);
1450
+ i0.ɵɵtext(22);
1443
1451
  i0.ɵɵelementEnd();
1444
- i0.ɵɵelementStart(22, "div", 18)(23, "button", 19);
1445
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_23_listener() { return ctx.refreshData(); });
1446
- i0.ɵɵelement(24, "i", 20);
1452
+ i0.ɵɵelementStart(23, "div", 19)(24, "button", 20);
1453
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_24_listener() { return ctx.refreshData(); });
1454
+ i0.ɵɵelement(25, "i", 21);
1447
1455
  i0.ɵɵelementEnd()()()();
1448
- i0.ɵɵelementStart(25, "div", 21)(26, "div", 22)(27, "span", 23);
1449
- i0.ɵɵtext(28, "Started");
1456
+ i0.ɵɵelementStart(26, "div", 22)(27, "div", 23)(28, "span", 24);
1457
+ i0.ɵɵtext(29, "Started");
1450
1458
  i0.ɵɵelementEnd();
1451
- i0.ɵɵelementStart(29, "span", 24);
1452
- i0.ɵɵtext(30);
1453
- i0.ɵɵpipe(31, "date");
1459
+ i0.ɵɵelementStart(30, "span", 25);
1460
+ i0.ɵɵtext(31);
1461
+ i0.ɵɵpipe(32, "date");
1454
1462
  i0.ɵɵelementEnd()();
1455
- i0.ɵɵconditionalCreate(32, MJAIAgentRunFormComponentExtended_Conditional_32_Template, 6, 4, "div", 22);
1456
- i0.ɵɵconditionalCreate(33, MJAIAgentRunFormComponentExtended_Conditional_33_Template, 5, 1, "div", 22);
1457
- i0.ɵɵconditionalCreate(34, MJAIAgentRunFormComponentExtended_Conditional_34_Template, 5, 5, "div", 22);
1458
- i0.ɵɵconditionalCreate(35, MJAIAgentRunFormComponentExtended_Conditional_35_Template, 5, 2, "div", 22);
1459
- i0.ɵɵconditionalCreate(36, MJAIAgentRunFormComponentExtended_Conditional_36_Template, 5, 2, "div", 22);
1460
- i0.ɵɵconditionalCreate(37, MJAIAgentRunFormComponentExtended_Conditional_37_Template, 5, 1, "div", 22);
1463
+ i0.ɵɵconditionalCreate(33, MJAIAgentRunFormComponentExtended_Conditional_33_Template, 6, 4, "div", 23);
1464
+ i0.ɵɵconditionalCreate(34, MJAIAgentRunFormComponentExtended_Conditional_34_Template, 5, 1, "div", 23);
1465
+ i0.ɵɵconditionalCreate(35, MJAIAgentRunFormComponentExtended_Conditional_35_Template, 5, 5, "div", 23);
1466
+ i0.ɵɵconditionalCreate(36, MJAIAgentRunFormComponentExtended_Conditional_36_Template, 5, 2, "div", 23);
1467
+ i0.ɵɵconditionalCreate(37, MJAIAgentRunFormComponentExtended_Conditional_37_Template, 5, 2, "div", 23);
1468
+ i0.ɵɵconditionalCreate(38, MJAIAgentRunFormComponentExtended_Conditional_38_Template, 5, 1, "div", 23);
1461
1469
  i0.ɵɵelementEnd();
1462
- i0.ɵɵconditionalCreate(38, MJAIAgentRunFormComponentExtended_Conditional_38_Template, 9, 1, "div", 25);
1470
+ i0.ɵɵconditionalCreate(39, MJAIAgentRunFormComponentExtended_Conditional_39_Template, 9, 1, "div", 26);
1463
1471
  i0.ɵɵelementEnd();
1464
- i0.ɵɵelementStart(39, "div", 26)(40, "button", 27);
1465
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_40_listener() { return ctx.changeTab("timeline"); });
1466
- i0.ɵɵelement(41, "i", 28);
1467
- i0.ɵɵtext(42, " Timeline ");
1472
+ i0.ɵɵelementStart(40, "div", 27)(41, "button", 28);
1473
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_41_listener() { return ctx.changeTab("timeline"); });
1474
+ i0.ɵɵelement(42, "i", 29);
1475
+ i0.ɵɵtext(43, " Timeline ");
1468
1476
  i0.ɵɵelementEnd();
1469
- i0.ɵɵelementStart(43, "button", 27);
1470
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_43_listener() { return ctx.changeTab("visualization"); });
1471
- i0.ɵɵelement(44, "i", 29);
1472
- i0.ɵɵtext(45, " Visualization ");
1477
+ i0.ɵɵelementStart(44, "button", 28);
1478
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_44_listener() { return ctx.changeTab("visualization"); });
1479
+ i0.ɵɵelement(45, "i", 30);
1480
+ i0.ɵɵtext(46, " Visualization ");
1473
1481
  i0.ɵɵelementEnd();
1474
- i0.ɵɵelementStart(46, "button", 27);
1475
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_46_listener() { return ctx.changeTab("analytics"); });
1476
- i0.ɵɵelement(47, "i", 30);
1477
- i0.ɵɵtext(48, " Analytics ");
1482
+ i0.ɵɵelementStart(47, "button", 28);
1483
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_47_listener() { return ctx.changeTab("analytics"); });
1484
+ i0.ɵɵelement(48, "i", 31);
1485
+ i0.ɵɵtext(49, " Analytics ");
1478
1486
  i0.ɵɵelementEnd();
1479
- i0.ɵɵelementStart(49, "button", 27);
1480
- i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_49_listener() { return ctx.changeTab("details"); });
1481
- i0.ɵɵelement(50, "i", 31);
1482
- i0.ɵɵtext(51, " Details ");
1487
+ i0.ɵɵelementStart(50, "button", 28);
1488
+ i0.ɵɵlistener("click", function MJAIAgentRunFormComponentExtended_Template_button_click_50_listener() { return ctx.changeTab("details"); });
1489
+ i0.ɵɵelement(51, "i", 32);
1490
+ i0.ɵɵtext(52, " Details ");
1483
1491
  i0.ɵɵelementEnd()();
1484
- i0.ɵɵelementStart(52, "div", 32);
1485
- i0.ɵɵconditionalCreate(53, MJAIAgentRunFormComponentExtended_Conditional_53_Template, 5, 4, "div", 33);
1486
- i0.ɵɵconditionalCreate(54, MJAIAgentRunFormComponentExtended_Conditional_54_Template, 2, 1, "div", 33);
1487
- i0.ɵɵconditionalCreate(55, MJAIAgentRunFormComponentExtended_Conditional_55_Template, 2, 1, "div", 33);
1488
- i0.ɵɵconditionalCreate(56, MJAIAgentRunFormComponentExtended_Conditional_56_Template, 108, 48, "div", 34);
1492
+ i0.ɵɵelementStart(53, "div", 33);
1493
+ i0.ɵɵconditionalCreate(54, MJAIAgentRunFormComponentExtended_Conditional_54_Template, 5, 4, "div", 34);
1494
+ i0.ɵɵconditionalCreate(55, MJAIAgentRunFormComponentExtended_Conditional_55_Template, 2, 1, "div", 34);
1495
+ i0.ɵɵconditionalCreate(56, MJAIAgentRunFormComponentExtended_Conditional_56_Template, 2, 1, "div", 34);
1496
+ i0.ɵɵconditionalCreate(57, MJAIAgentRunFormComponentExtended_Conditional_57_Template, 108, 48, "div", 35);
1489
1497
  i0.ɵɵelementEnd()()();
1490
1498
  } if (rf & 2) {
1491
1499
  i0.ɵɵadvance(6);
@@ -1503,27 +1511,29 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
1503
1511
  i0.ɵɵadvance();
1504
1512
  i0.ɵɵconditional(ctx.record.ConversationID ? 17 : -1);
1505
1513
  i0.ɵɵadvance(2);
1514
+ i0.ɵɵconditional(ctx.record.PlanMode ? 19 : -1);
1515
+ i0.ɵɵadvance();
1506
1516
  i0.ɵɵattribute("data-status", ctx.record.Status);
1507
1517
  i0.ɵɵadvance();
1508
1518
  i0.ɵɵproperty("ngClass", ctx.getStatusIcon(ctx.record.Status || ""));
1509
1519
  i0.ɵɵadvance();
1510
1520
  i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
1511
1521
  i0.ɵɵadvance(9);
1512
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(31, 30, ctx.record.StartedAt, "medium"));
1522
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(32, 31, ctx.record.StartedAt, "medium"));
1513
1523
  i0.ɵɵadvance(2);
1514
- i0.ɵɵconditional(ctx.record.CompletedAt ? 32 : -1);
1515
- i0.ɵɵadvance();
1516
1524
  i0.ɵɵconditional(ctx.record.CompletedAt ? 33 : -1);
1517
1525
  i0.ɵɵadvance();
1518
- i0.ɵɵconditional(ctx.record.Success !== null && ctx.record.CompletedAt !== null ? 34 : -1);
1526
+ i0.ɵɵconditional(ctx.record.CompletedAt ? 34 : -1);
1527
+ i0.ɵɵadvance();
1528
+ i0.ɵɵconditional(ctx.record.Success !== null && ctx.record.CompletedAt !== null ? 35 : -1);
1519
1529
  i0.ɵɵadvance();
1520
- i0.ɵɵconditional(ctx.costMetrics && ctx.costMetrics.totalTokensInput + ctx.costMetrics.totalTokensOutput > 0 ? 35 : -1);
1530
+ i0.ɵɵconditional(ctx.costMetrics && ctx.costMetrics.totalTokensInput + ctx.costMetrics.totalTokensOutput > 0 ? 36 : -1);
1521
1531
  i0.ɵɵadvance();
1522
- i0.ɵɵconditional(ctx.costMetrics && ctx.costMetrics.totalCost > 0 ? 36 : -1);
1532
+ i0.ɵɵconditional(ctx.costMetrics && ctx.costMetrics.totalCost > 0 ? 37 : -1);
1523
1533
  i0.ɵɵadvance();
1524
- i0.ɵɵconditional(ctx.record.EffortLevel ? 37 : -1);
1534
+ i0.ɵɵconditional(ctx.record.EffortLevel ? 38 : -1);
1525
1535
  i0.ɵɵadvance();
1526
- i0.ɵɵconditional(ctx.record.ConfigurationID ? 38 : -1);
1536
+ i0.ɵɵconditional(ctx.record.ConfigurationID ? 39 : -1);
1527
1537
  i0.ɵɵadvance(2);
1528
1538
  i0.ɵɵclassProp("active", ctx.activeTab === "timeline");
1529
1539
  i0.ɵɵadvance(3);
@@ -1533,14 +1543,14 @@ let MJAIAgentRunFormComponentExtended = class MJAIAgentRunFormComponentExtended
1533
1543
  i0.ɵɵadvance(3);
1534
1544
  i0.ɵɵclassProp("active", ctx.activeTab === "details");
1535
1545
  i0.ɵɵadvance(4);
1536
- i0.ɵɵconditional(ctx.activeTab === "timeline" ? 53 : -1);
1546
+ i0.ɵɵconditional(ctx.activeTab === "timeline" ? 54 : -1);
1537
1547
  i0.ɵɵadvance();
1538
- i0.ɵɵconditional(ctx.activeTab === "visualization" ? 54 : -1);
1548
+ i0.ɵɵconditional(ctx.activeTab === "visualization" ? 55 : -1);
1539
1549
  i0.ɵɵadvance();
1540
- i0.ɵɵconditional(ctx.activeTab === "analytics" ? 55 : -1);
1550
+ i0.ɵɵconditional(ctx.activeTab === "analytics" ? 56 : -1);
1541
1551
  i0.ɵɵadvance();
1542
- i0.ɵɵconditional(ctx.activeTab === "details" ? 56 : -1);
1543
- } }, dependencies: [i1.NgClass, i2.NgControlStatus, i2.NgModel, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i4.CodeEditorComponent, i5.DeepDiffComponent, i6.SplitComponent, i6.SplitAreaComponent, i7.AIAgentRunTimelineComponent, i8.AIAgentRunAnalyticsComponent, i9.AIAgentRunStepDetailComponent, i10.AIAgentRunFlowComponent, i1.DecimalPipe, i1.DatePipe], styles: [".ai-agent-run-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form[_ngcontent-%COMP%] > .record-form[_ngcontent-%COMP%], \n.ai-agent-run-form[_ngcontent-%COMP%] > .record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\n flex-shrink: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: var(--mj-brand-primary);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: var(--mj-text-muted);\n}\n\n.parent-run[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n text-decoration: underline;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n\n\n.conversation-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill[_ngcontent-%COMP%]:hover {\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) 40%, transparent);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.conversation-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill[_ngcontent-%COMP%] .pill-action[_ngcontent-%COMP%] {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill[_ngcontent-%COMP%]:hover .pill-action[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.status-badge[data-status=\"Completed\"][_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-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.status-badge[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\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.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n\n\n.configuration-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n margin-top: 16px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.config-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.config-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n\n.stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.stat[_ngcontent-%COMP%] .value.success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.stat[_ngcontent-%COMP%] .value.error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n flex-shrink: 0;\n}\n\n.tab[_ngcontent-%COMP%] {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.tab-content[_ngcontent-%COMP%] {\n height: 100%;\n min-height: 0;\n overflow: auto;\n}\n\n\n\n.tab-content[_ngcontent-%COMP%] mj-accordion-panel[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface-sunken);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\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.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container[_ngcontent-%COMP%] > .timeline[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] {\n transform: translateX(8px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: 3px solid var(--mj-border-default);\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.timeline-marker[data-color=\"error\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n.timeline-marker[data-color=\"info\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-info);\n color: var(--mj-status-info);\n}\n\n.timeline-marker[data-color=\"warning\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n color: var(--mj-status-warning);\n}\n\n.timeline-marker[data-color=\"secondary\"][_ngcontent-%COMP%] {\n border-color: var(--mj-text-muted);\n color: var(--mj-text-muted);\n}\n\n.timeline-marker.small[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: var(--mj-shadow-sm);\n transition: all 0.2s ease;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-header[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-family: monospace;\n}\n\n.timeline-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Completed\"][_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.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.btn-expand[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 4px;\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 font-size: 12px;\n}\n\n.btn-expand[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n\n\n.timeline-children[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.child-item[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.child-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n}\n\n\n\n.sub-run-timeline[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 2%, var(--mj-bg-surface));\n border-left: 2px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-marker[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n transition: all 0.2s ease;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-brand-primary);\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\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) 35%, transparent);\n text-decoration: none;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.error-message[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n \n .json-detail-pane[_ngcontent-%COMP%] {\n width: 100%;\n }\n \n .timeline[_ngcontent-%COMP%] {\n padding-left: 30px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content[_ngcontent-%COMP%] {\n margin-left: 10px;\n }\n}\n\n\n\n.entity-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n border-bottom-color: var(--mj-brand-primary-hover);\n}\n\n.entity-link[_ngcontent-%COMP%]:active {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.detail-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs[_ngcontent-%COMP%] {\n \n\n margin-top: 0;\n}\n\n\n\n.step-payload-diff[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] mj-deep-diff[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%]:not(.with-tabs) .json-viewer[_ngcontent-%COMP%] {\n margin-top: 16px;\n}"] }); }
1552
+ i0.ɵɵconditional(ctx.activeTab === "details" ? 57 : -1);
1553
+ } }, dependencies: [i1.NgClass, i2.NgControlStatus, i2.NgModel, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i4.CodeEditorComponent, i5.DeepDiffComponent, i6.SplitComponent, i6.SplitAreaComponent, i7.AIAgentRunTimelineComponent, i8.AIAgentRunAnalyticsComponent, i9.AIAgentRunStepDetailComponent, i10.AIAgentRunFlowComponent, i1.DecimalPipe, i1.DatePipe], styles: [".ai-agent-run-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form[_ngcontent-%COMP%] > .record-form[_ngcontent-%COMP%], \n.ai-agent-run-form[_ngcontent-%COMP%] > .record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\n flex-shrink: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: var(--mj-brand-primary);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: var(--mj-text-muted);\n}\n\n.parent-run[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n text-decoration: underline;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n\n\n.conversation-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill[_ngcontent-%COMP%]:hover {\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) 40%, transparent);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.conversation-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill[_ngcontent-%COMP%] .pill-action[_ngcontent-%COMP%] {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill[_ngcontent-%COMP%]:hover .pill-action[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.status-badge[data-status=\"Completed\"][_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-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.status-badge[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n\n\n.plan-mode-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\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.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n\n\n.configuration-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n margin-top: 16px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.config-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.config-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n\n.stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.stat[_ngcontent-%COMP%] .value.success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.stat[_ngcontent-%COMP%] .value.error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n flex-shrink: 0;\n}\n\n.tab[_ngcontent-%COMP%] {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.tab-content[_ngcontent-%COMP%] {\n height: 100%;\n min-height: 0;\n overflow: auto;\n}\n\n\n\n.tab-content[_ngcontent-%COMP%] mj-accordion-panel[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface-sunken);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\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.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container[_ngcontent-%COMP%] > .timeline[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] {\n transform: translateX(8px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: 3px solid var(--mj-border-default);\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.timeline-marker[data-color=\"error\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n.timeline-marker[data-color=\"info\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-info);\n color: var(--mj-status-info);\n}\n\n.timeline-marker[data-color=\"warning\"][_ngcontent-%COMP%] {\n border-color: var(--mj-status-warning);\n color: var(--mj-status-warning);\n}\n\n.timeline-marker[data-color=\"secondary\"][_ngcontent-%COMP%] {\n border-color: var(--mj-text-muted);\n color: var(--mj-text-muted);\n}\n\n.timeline-marker.small[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: var(--mj-shadow-sm);\n transition: all 0.2s ease;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-header[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-family: monospace;\n}\n\n.timeline-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Completed\"][_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.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.btn-expand[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 4px;\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 font-size: 12px;\n}\n\n.btn-expand[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n\n\n.timeline-children[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.child-item[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.child-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n}\n\n\n\n.sub-run-timeline[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 2%, var(--mj-bg-surface));\n border-left: 2px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-marker[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n transition: all 0.2s ease;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-brand-primary);\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\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) 35%, transparent);\n text-decoration: none;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.error-message[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n \n .json-detail-pane[_ngcontent-%COMP%] {\n width: 100%;\n }\n \n .timeline[_ngcontent-%COMP%] {\n padding-left: 30px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content[_ngcontent-%COMP%] {\n margin-left: 10px;\n }\n}\n\n\n\n.entity-link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n border-bottom-color: var(--mj-brand-primary-hover);\n}\n\n.entity-link[_ngcontent-%COMP%]:active {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.detail-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs[_ngcontent-%COMP%] {\n \n\n margin-top: 0;\n}\n\n\n\n.step-payload-diff[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] mj-deep-diff[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%]:not(.with-tabs) .json-viewer[_ngcontent-%COMP%] {\n margin-top: 16px;\n}"] }); }
1544
1554
  };
1545
1555
  MJAIAgentRunFormComponentExtended = __decorate([
1546
1556
  RegisterClass(BaseFormComponent, 'MJ: AI Agent Runs')
@@ -1548,7 +1558,7 @@ MJAIAgentRunFormComponentExtended = __decorate([
1548
1558
  export { MJAIAgentRunFormComponentExtended };
1549
1559
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJAIAgentRunFormComponentExtended, [{
1550
1560
  type: Component,
1551
- args: [{ standalone: false, selector: 'mj-ai-agent-run-form', template: "<div class=\"record-form-container ai-agent-run-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n @if (agent && agent.LogoURL) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name || 'Agent'\" class=\"agent-logo\" />\n }\n @if (agent && !agent.LogoURL && agent.IconClass) {\n <i class=\"fas\" [ngClass]=\"agent.IconClass\"></i>\n }\n @if (!agent || (!agent.LogoURL && !agent.IconClass)) {\n <i class=\"fas fa-robot\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n @if (agent) {\n <span class=\"agent-name\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent.Name }}\n </a>\n </span>\n }\n <span class=\"run-id\">{{ record.ID }}</span>\n @if (record.ParentRunID) {\n <span class=\"parent-run\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\n }\n <!-- Conversation Link Pill -->\n @if (record.ConversationID) {\n <span class=\"conversation-pill\" (click)=\"navigateToConversation()\" title=\"Open conversation in Chat app\">\n <i class=\"fas fa-comments\"></i>\n <span>Conversation</span>\n <i class=\"fas fa-external-link-alt pill-action\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.Status\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon(record.Status || '')\"></i>\n {{ record.Status }}\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"refreshData()\" title=\"Refresh\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'medium' }}</span>\n </div>\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n }\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n }\n @if (record.Success !== null && record.CompletedAt !== null) {\n <div class=\"stat\">\n <span class=\"label\">Result</span>\n <span class=\"value\" [class.success]=\"record.Success\" [class.error]=\"!record.Success\">\n {{ record.Success ? 'Success' : 'Failed' }}\n </span>\n </div>\n }\n @if (costMetrics && (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) > 0) {\n <div class=\"stat\">\n <span class=\"label\">Tokens</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">{{ (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) | number:'1.0-0' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (costMetrics && costMetrics.totalCost > 0) {\n <div class=\"stat\">\n <span class=\"label\">Cost</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">${{ costMetrics.totalCost | number:'1.2-4' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (record.EffortLevel) {\n <div class=\"stat\">\n <span class=\"label\">Effort Level</span>\n <span class=\"value\">{{ record.EffortLevel }}</span>\n </div>\n }\n </div>\n\n <!-- Configuration Bar (shown below header stats when ConfigurationID exists) -->\n @if (record.ConfigurationID) {\n <div class=\"configuration-bar\">\n <div class=\"config-item\">\n <i class=\"fas fa-cog\"></i>\n <div class=\"config-content\">\n <div class=\"config-label\">Configuration</div>\n <div class=\"config-value\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"changeTab('timeline')\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'visualization'\" (click)=\"changeTab('visualization')\">\n <i class=\"fas fa-diagram-project\"></i> Visualization\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'analytics'\" (click)=\"changeTab('analytics')\">\n <i class=\"fas fa-chart-line\"></i> Analytics\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"content-area\">\n <!-- Timeline Tab -->\n @if (activeTab === 'timeline') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n <as-split direction=\"horizontal\" style=\"height: 100%;\">\n <!-- Timeline Pane -->\n <as-split-area [size]=\"selectedTimelineItem ? 55 : 100\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\">\n </mj-ai-agent-run-timeline>\n </as-split-area>\n <!-- JSON Detail Pane -->\n @if (selectedTimelineItem) {\n <as-split-area [size]=\"45\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedTimelineItem\"\n (closePanel)=\"closeJsonPanel()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </as-split-area>\n }\n </as-split>\n </div>\n }\n\n <!-- Visualization Tab (animated flow views + static flowchart) -->\n @if (activeTab === 'visualization') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (visualizationLoaded) {\n <mj-ai-agent-run-flow\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n [agentName]=\"agent?.Name || null\"\n [runStatus]=\"record.Status || ''\"\n [agentIconClass]=\"agent?.IconClass || null\"\n [agentLogoUrl]=\"agent?.LogoURL || null\">\n </mj-ai-agent-run-flow>\n }\n </div>\n }\n\n <!-- Analytics Tab -->\n @if (activeTab === 'analytics') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (analyticsLoaded) {\n <mj-ai-agent-run-analytics\n #analyticsComponent\n [agentRunId]=\"record.ID\"\n >\n </mj-ai-agent-run-analytics>\n }\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"tab-content\">\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> General Information\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Agent</label>\n <span>\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent?.Name || 'N/A' }}\n </a>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>\n @if (record.ParentRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.ParentRunID)\">\n {{ record.ParentRunID }}\n </a>\n }\n @if (!record.ParentRunID) {\n <span>None (Root)</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Last Run ID</label>\n <span>\n @if (record.LastRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.LastRunID)\">\n {{ record.LastRunID }}\n </a>\n }\n @if (!record.LastRunID) {\n <span>None</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>\n @if (record.ConversationID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Conversations', record.ConversationID)\">\n {{ record.ConversationID }}\n </a>\n }\n @if (!record.ConversationID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>\n @if (record.UserID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Users', record.UserID)\">\n {{ record.User || 'N/A' }}\n </a>\n }\n @if (!record.UserID) {\n <span>N/A</span>\n }\n </span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-cogs\"></i> Execution Settings\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Override Model</label>\n <span>\n @if (record.OverrideModelID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Models', record.OverrideModelID)\">\n {{ record.OverrideModel || 'N/A' }}\n </a>\n }\n @if (!record.OverrideModelID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Override Vendor</label>\n <span>\n @if (record.OverrideVendorID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Vendors', record.OverrideVendorID)\">\n {{ record.OverrideVendor || 'N/A' }}\n </a>\n }\n @if (!record.OverrideVendorID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Verbose Logging</label>\n <span>{{ record.Verbose ? 'Yes' : 'No' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-tasks\"></i> Execution Status\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Status</label>\n <span class=\"status-badge\" [attr.data-status]=\"record.Status\">\n {{ record.Status }}\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Success</label>\n @if (record.Success === null) {\n <span>In Progress</span>\n }\n @else if (record.Success) {\n <span class=\"success\">Yes</span>\n }\n @else {\n <span class=\"error-message\">No</span>\n }\n </div>\n @if (record.Message) {\n <div class=\"detail-item full-width\">\n <label>Message</label>\n <div class=\"message\">{{ record.Message }}</div>\n </div>\n }\n @if (record.ErrorMessage) {\n <div class=\"detail-item full-width\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-dollar-sign\"></i> Usage &amp; Cost\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Total Tokens Used</label>\n <span>{{ record.TotalTokensUsed ? (record.TotalTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Prompt Tokens</label>\n <span>{{ record.TotalPromptTokensUsed ? (record.TotalPromptTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Completion Tokens</label>\n <span>{{ record.TotalCompletionTokensUsed ? (record.TotalCompletionTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Cost</label>\n <span>{{ record.TotalCost != null ? ('$' + (record.TotalCost | number:'1.2-4')) : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Prompt Iterations</label>\n <span>{{ record.TotalPromptIterations != null ? (record.TotalPromptIterations | number:'1.0-0') : 'N/A' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n @if (record.Result) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code\"></i> Result\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading result data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.StartingPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-upload\"></i> Starting Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedStartingPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.Data) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedData\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading execution data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.FinalPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-download\"></i> Final Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedFinalPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading final payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (showPayloadDiff) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code-compare\"></i> Payload Diff\n </ng-template>\n <div style=\"padding: 20px; background: var(--mj-bg-surface-card);\">\n @if (isParsingComplete) {\n <mj-deep-diff\n [oldValue]=\"startingPayloadObject\"\n [newValue]=\"finalPayloadObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"10\"\n [maxStringLength]=\"200\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload diff...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n </div>\n }\n</div>\n</div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form > .record-form,\n.ai-agent-run-form > .record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Header Styles */\n.header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\n flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: var(--mj-brand-primary);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: var(--mj-text-muted);\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: var(--mj-status-error);\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n/* Conversation Link Pill */\n.conversation-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill:hover {\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) 40%, transparent);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.conversation-pill i:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill .pill-action {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill:hover .pill-action {\n opacity: 1;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.status-badge[data-status=\"Completed\"] {\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-badge[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.small {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\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.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n/* Configuration Bar */\n.configuration-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n margin-top: 16px;\n}\n\n.config-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.config-content {\n display: flex;\n flex-direction: column;\n}\n\n.config-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-value .entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value .entity-link:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.stat .value.success {\n color: var(--mj-status-success);\n}\n\n.stat .value.error {\n color: var(--mj-status-error);\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n flex-shrink: 0;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.tab-content {\n height: 100%;\n min-height: 0;\n overflow: auto;\n}\n\n/* Details tab accordion panels */\n.tab-content mj-accordion-panel {\n display: block;\n margin-bottom: 8px;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface-sunken);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.json-pane-header h3 {\n margin: 0;\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.json-pane-header h3 i {\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.json-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta .meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n margin-bottom: 12px;\n}\n\n.action-link .btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link .btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n/* Timeline Styles */\n.timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container > .timeline {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.timeline-item {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected {\n transform: translateX(8px);\n}\n\n.timeline-item.selected .timeline-content {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-marker {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: 3px solid var(--mj-border-default);\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: var(--mj-status-info);\n color: var(--mj-status-info);\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: var(--mj-status-warning);\n color: var(--mj-status-warning);\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: var(--mj-text-muted);\n color: var(--mj-text-muted);\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: var(--mj-shadow-sm);\n transition: all 0.2s ease;\n}\n\n.timeline-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header h4 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.timeline-time {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.timeline-meta .status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta .status[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 4px;\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 font-size: 12px;\n}\n\n.btn-expand:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n/* Timeline Children */\n.timeline-children {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: color-mix(in srgb, var(--mj-brand-primary) 2%, var(--mj-bg-surface));\n border-left: 2px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item .timeline-marker {\n border-width: 2px;\n}\n\n.sub-run-item .timeline-content {\n transition: all 0.2s ease;\n}\n\n/* JSON Detail Pane (in splitter) */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-brand-primary);\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\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) 35%, transparent);\n text-decoration: none;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n/* Details Tab */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width {\n grid-column: 1 / -1;\n}\n\n.detail-item label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer,\n.state-viewer {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer mj-code-editor,\n.state-viewer mj-code-editor {\n flex: 1;\n min-height: 0;\n}\n\n/* Empty States */\n.empty-state,\n.loading-state,\n.error-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i,\n.loading-state i,\n.error-state i {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .json-detail-pane {\n width: 100%;\n }\n \n .timeline {\n padding-left: 30px;\n }\n \n .timeline-marker {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content {\n margin-left: 10px;\n }\n}\n\n/* Entity Link Styles */\n.entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link:hover {\n color: var(--mj-brand-primary-hover);\n border-bottom-color: var(--mj-brand-primary-hover);\n}\n\n.entity-link:active {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Detail Pane Tabs */\n.detail-pane-tabs {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.detail-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.detail-tab i {\n font-size: 14px;\n}\n\n/* Detail Pane Content */\n.detail-pane-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs {\n /* When tabs are shown, content starts right after tabs */\n margin-top: 0;\n}\n\n/* Step Payload Diff */\n.step-payload-diff {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff mj-deep-diff {\n display: block;\n height: 100%;\n}\n\n/* JSON Viewer adjustments when no tabs */\n.detail-pane-content:not(.with-tabs) .json-viewer {\n margin-top: 16px;\n}"] }]
1561
+ args: [{ standalone: false, selector: 'mj-ai-agent-run-form', template: "<div class=\"record-form-container ai-agent-run-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n @if (agent && agent.LogoURL) {\n <img [src]=\"agent.LogoURL\" [alt]=\"agent.Name || 'Agent'\" class=\"agent-logo\" />\n }\n @if (agent && !agent.LogoURL && agent.IconClass) {\n <i class=\"fas\" [ngClass]=\"agent.IconClass\"></i>\n }\n @if (!agent || (!agent.LogoURL && !agent.IconClass)) {\n <i class=\"fas fa-robot\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n @if (agent) {\n <span class=\"agent-name\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent.Name }}\n </a>\n </span>\n }\n <span class=\"run-id\">{{ record.ID }}</span>\n @if (record.ParentRunID) {\n <span class=\"parent-run\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\n }\n <!-- Conversation Link Pill -->\n @if (record.ConversationID) {\n <span class=\"conversation-pill\" (click)=\"navigateToConversation()\" title=\"Open conversation in Chat app\">\n <i class=\"fas fa-comments\"></i>\n <span>Conversation</span>\n <i class=\"fas fa-external-link-alt pill-action\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n @if (record.PlanMode) {\n <div class=\"plan-mode-badge\" title=\"This run executed in Plan Mode \u2014 the agent presented a plan for human approval before executing actions or sub-agents\">\n <i class=\"fas fa-clipboard-check\"></i>\n Plan Mode\n </div>\n }\n <div class=\"status-badge\" [attr.data-status]=\"record.Status\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon(record.Status || '')\"></i>\n {{ record.Status }}\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"refreshData()\" title=\"Refresh\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'medium' }}</span>\n </div>\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n }\n @if (record.CompletedAt) {\n <div class=\"stat\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n }\n @if (record.Success !== null && record.CompletedAt !== null) {\n <div class=\"stat\">\n <span class=\"label\">Result</span>\n <span class=\"value\" [class.success]=\"record.Success\" [class.error]=\"!record.Success\">\n {{ record.Success ? 'Success' : 'Failed' }}\n </span>\n </div>\n }\n @if (costMetrics && (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) > 0) {\n <div class=\"stat\">\n <span class=\"label\">Tokens</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">{{ (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) | number:'1.0-0' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (costMetrics && costMetrics.totalCost > 0) {\n <div class=\"stat\">\n <span class=\"label\">Cost</span>\n @if (!costMetrics.isLoading) {\n <span class=\"value\">${{ costMetrics.totalCost | number:'1.2-4' }}</span>\n }\n @if (costMetrics.isLoading) {\n <span class=\"value loading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n }\n </div>\n }\n @if (record.EffortLevel) {\n <div class=\"stat\">\n <span class=\"label\">Effort Level</span>\n <span class=\"value\">{{ record.EffortLevel }}</span>\n </div>\n }\n </div>\n\n <!-- Configuration Bar (shown below header stats when ConfigurationID exists) -->\n @if (record.ConfigurationID) {\n <div class=\"configuration-bar\">\n <div class=\"config-item\">\n <i class=\"fas fa-cog\"></i>\n <div class=\"config-content\">\n <div class=\"config-label\">Configuration</div>\n <div class=\"config-value\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"changeTab('timeline')\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'visualization'\" (click)=\"changeTab('visualization')\">\n <i class=\"fas fa-diagram-project\"></i> Visualization\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'analytics'\" (click)=\"changeTab('analytics')\">\n <i class=\"fas fa-chart-line\"></i> Analytics\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"content-area\">\n <!-- Timeline Tab -->\n @if (activeTab === 'timeline') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n <as-split direction=\"horizontal\" style=\"height: 100%;\">\n <!-- Timeline Pane -->\n <as-split-area [size]=\"selectedTimelineItem ? 55 : 100\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\">\n </mj-ai-agent-run-timeline>\n </as-split-area>\n <!-- JSON Detail Pane -->\n @if (selectedTimelineItem) {\n <as-split-area [size]=\"45\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedTimelineItem\"\n (closePanel)=\"closeJsonPanel()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </as-split-area>\n }\n </as-split>\n </div>\n }\n\n <!-- Visualization Tab (animated flow views + static flowchart) -->\n @if (activeTab === 'visualization') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (visualizationLoaded) {\n <mj-ai-agent-run-flow\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n [agentName]=\"agent?.Name || null\"\n [runStatus]=\"record.Status || ''\"\n [agentIconClass]=\"agent?.IconClass || null\"\n [agentLogoUrl]=\"agent?.LogoURL || null\">\n </mj-ai-agent-run-flow>\n }\n </div>\n }\n\n <!-- Analytics Tab -->\n @if (activeTab === 'analytics') {\n <div class=\"tab-content\" style=\"height: 100%;\">\n @if (analyticsLoaded) {\n <mj-ai-agent-run-analytics\n #analyticsComponent\n [agentRunId]=\"record.ID\"\n >\n </mj-ai-agent-run-analytics>\n }\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"tab-content\">\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> General Information\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Agent</label>\n <span>\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agents', record.AgentID)\">\n {{ agent?.Name || 'N/A' }}\n </a>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>\n @if (record.ParentRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.ParentRunID)\">\n {{ record.ParentRunID }}\n </a>\n }\n @if (!record.ParentRunID) {\n <span>None (Root)</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Last Run ID</label>\n <span>\n @if (record.LastRunID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.LastRunID)\">\n {{ record.LastRunID }}\n </a>\n }\n @if (!record.LastRunID) {\n <span>None</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>\n @if (record.ConversationID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Conversations', record.ConversationID)\">\n {{ record.ConversationID }}\n </a>\n }\n @if (!record.ConversationID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>\n @if (record.UserID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: Users', record.UserID)\">\n {{ record.User || 'N/A' }}\n </a>\n }\n @if (!record.UserID) {\n <span>N/A</span>\n }\n </span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-cogs\"></i> Execution Settings\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Override Model</label>\n <span>\n @if (record.OverrideModelID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Models', record.OverrideModelID)\">\n {{ record.OverrideModel || 'N/A' }}\n </a>\n }\n @if (!record.OverrideModelID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Override Vendor</label>\n <span>\n @if (record.OverrideVendorID) {\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Vendors', record.OverrideVendorID)\">\n {{ record.OverrideVendor || 'N/A' }}\n </a>\n }\n @if (!record.OverrideVendorID) {\n <span>N/A</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Verbose Logging</label>\n <span>{{ record.Verbose ? 'Yes' : 'No' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-tasks\"></i> Execution Status\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Status</label>\n <span class=\"status-badge\" [attr.data-status]=\"record.Status\">\n {{ record.Status }}\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Success</label>\n @if (record.Success === null) {\n <span>In Progress</span>\n }\n @else if (record.Success) {\n <span class=\"success\">Yes</span>\n }\n @else {\n <span class=\"error-message\">No</span>\n }\n </div>\n @if (record.Message) {\n <div class=\"detail-item full-width\">\n <label>Message</label>\n <div class=\"message\">{{ record.Message }}</div>\n </div>\n }\n @if (record.ErrorMessage) {\n <div class=\"detail-item full-width\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n }\n </div>\n </mj-accordion-panel>\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-dollar-sign\"></i> Usage &amp; Cost\n </ng-template>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Total Tokens Used</label>\n <span>{{ record.TotalTokensUsed ? (record.TotalTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Prompt Tokens</label>\n <span>{{ record.TotalPromptTokensUsed ? (record.TotalPromptTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Completion Tokens</label>\n <span>{{ record.TotalCompletionTokensUsed ? (record.TotalCompletionTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Cost</label>\n <span>{{ record.TotalCost != null ? ('$' + (record.TotalCost | number:'1.2-4')) : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Prompt Iterations</label>\n <span>{{ record.TotalPromptIterations != null ? (record.TotalPromptIterations | number:'1.0-0') : 'N/A' }}</span>\n </div>\n </div>\n </mj-accordion-panel>\n @if (record.Result) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code\"></i> Result\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading result data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.StartingPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-upload\"></i> Starting Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedStartingPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.Data) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedData\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading execution data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (record.FinalPayload) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-download\"></i> Final Payload\n </ng-template>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedFinalPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading final payload data...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n @if (showPayloadDiff) {\n <mj-accordion-panel [Expanded]=\"false\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-code-compare\"></i> Payload Diff\n </ng-template>\n <div style=\"padding: 20px; background: var(--mj-bg-surface-card);\">\n @if (isParsingComplete) {\n <mj-deep-diff\n [oldValue]=\"startingPayloadObject\"\n [newValue]=\"finalPayloadObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"10\"\n [maxStringLength]=\"200\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: var(--mj-text-muted);\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload diff...\n </div>\n }\n </div>\n </mj-accordion-panel>\n }\n </div>\n }\n</div>\n</div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form > .record-form,\n.ai-agent-run-form > .record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Header Styles */\n.header {\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\n flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: var(--mj-brand-primary);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: var(--mj-text-muted);\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: var(--mj-status-error);\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n/* Conversation Link Pill */\n.conversation-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill:hover {\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) 40%, transparent);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.conversation-pill i:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill .pill-action {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill:hover .pill-action {\n opacity: 1;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.status-badge[data-status=\"Completed\"] {\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-badge[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.status-badge.small {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n/* Plan Mode chip \u2014 shown next to the status badge when AIAgentRun.PlanMode = 1 */\n.plan-mode-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\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.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n/* Configuration Bar */\n.configuration-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n margin-top: 16px;\n}\n\n.config-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.config-content {\n display: flex;\n flex-direction: column;\n}\n\n.config-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-value .entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value .entity-link:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n}\n\n.stat .value.success {\n color: var(--mj-status-success);\n}\n\n.stat .value.error {\n color: var(--mj-status-error);\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n flex-shrink: 0;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--mj-bg-surface);\n}\n\n.tab-content {\n height: 100%;\n min-height: 0;\n overflow: auto;\n}\n\n/* Details tab accordion panels */\n.tab-content mj-accordion-panel {\n display: block;\n margin-bottom: 8px;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface-sunken);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.json-pane-header h3 {\n margin: 0;\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.json-pane-header h3 i {\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.json-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta .meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n margin-bottom: 12px;\n}\n\n.action-link .btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link .btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary-hover);\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n/* Timeline Styles */\n.timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container > .timeline {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.timeline-item {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected {\n transform: translateX(8px);\n}\n\n.timeline-item.selected .timeline-content {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border-color: var(--mj-brand-primary);\n}\n\n.timeline-marker {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: 3px solid var(--mj-border-default);\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: var(--mj-status-info);\n color: var(--mj-status-info);\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: var(--mj-status-warning);\n color: var(--mj-status-warning);\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: var(--mj-text-muted);\n color: var(--mj-text-muted);\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: var(--mj-shadow-sm);\n transition: all 0.2s ease;\n}\n\n.timeline-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header h4 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.timeline-time {\n font-size: 12px;\n color: var(--mj-text-muted);\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.timeline-meta .status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta .status[data-status=\"Completed\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: color-mix(in srgb, var(--mj-status-info) 15%, var(--mj-bg-surface));\n color: var(--mj-status-info);\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 4px;\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 font-size: 12px;\n}\n\n.btn-expand:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\n}\n\n/* Timeline Children */\n.timeline-children {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: var(--mj-border-default);\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: color-mix(in srgb, var(--mj-brand-primary) 2%, var(--mj-bg-surface));\n border-left: 2px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item .timeline-marker {\n border-width: 2px;\n}\n\n.sub-run-item .timeline-content {\n transition: all 0.2s ease;\n}\n\n/* JSON Detail Pane (in splitter) */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: var(--mj-text-primary);\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-brand-primary);\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\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) 35%, transparent);\n text-decoration: none;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n/* Details Tab */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width {\n grid-column: 1 / -1;\n}\n\n.detail-item label {\n font-size: 12px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer,\n.state-viewer {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer mj-code-editor,\n.state-viewer mj-code-editor {\n flex: 1;\n min-height: 0;\n}\n\n/* Empty States */\n.empty-state,\n.loading-state,\n.error-state {\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i,\n.loading-state i,\n.error-state i {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .json-detail-pane {\n width: 100%;\n }\n \n .timeline {\n padding-left: 30px;\n }\n \n .timeline-marker {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content {\n margin-left: 10px;\n }\n}\n\n/* Entity Link Styles */\n.entity-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link:hover {\n color: var(--mj-brand-primary-hover);\n border-bottom-color: var(--mj-brand-primary-hover);\n}\n\n.entity-link:active {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Detail Pane Tabs */\n.detail-pane-tabs {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: var(--mj-text-secondary);\n background: color-mix(in srgb, var(--mj-text-primary) 2%, var(--mj-bg-surface));\n}\n\n.detail-tab.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n.detail-tab i {\n font-size: 14px;\n}\n\n/* Detail Pane Content */\n.detail-pane-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs {\n /* When tabs are shown, content starts right after tabs */\n margin-top: 0;\n}\n\n/* Step Payload Diff */\n.step-payload-diff {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff mj-deep-diff {\n display: block;\n height: 100%;\n}\n\n/* JSON Viewer adjustments when no tabs */\n.detail-pane-content:not(.with-tabs) .json-viewer {\n margin-top: 16px;\n}"] }]
1552
1562
  }], null, { timelineComponent: [{
1553
1563
  type: ViewChild,
1554
1564
  args: [AIAgentRunTimelineComponent]