@memberjunction/ng-core-entity-forms 5.17.0 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,7 +23,7 @@ import * as i7 from "@angular/common";
23
23
  const _forTrack0 = ($index, $item) => $item.attemptNumber;
24
24
  const _forTrack1 = ($index, $item) => $item.ID;
25
25
  function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "span", 10);
26
+ i0.ɵɵelementStart(0, "span", 11);
27
27
  i0.ɵɵtext(1);
28
28
  i0.ɵɵelementEnd();
29
29
  } if (rf & 2) {
@@ -31,71 +31,118 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_11_Templat
31
31
  i0.ɵɵadvance();
32
32
  i0.ɵɵtextInterpolate1("#", ctx_r1.record.ID.substring(0, 8));
33
33
  } }
34
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "span", 30);
36
- i0.ɵɵelement(1, "i");
37
- i0.ɵɵtext(2);
34
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_20_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelementStart(0, "div", 17)(1, "div", 14);
36
+ i0.ɵɵtext(2, "Execution");
38
37
  i0.ɵɵelementEnd();
38
+ i0.ɵɵelementStart(3, "div", 15);
39
+ i0.ɵɵelement(4, "i");
40
+ i0.ɵɵtext(5);
41
+ i0.ɵɵelementEnd()();
39
42
  } if (rf & 2) {
40
43
  const ctx_r1 = i0.ɵɵnextContext(2);
41
- i0.ɵɵstyleProp("color", ctx_r1.getRunTypeColor(ctx_r1.record.RunType));
42
- i0.ɵɵadvance();
44
+ i0.ɵɵadvance(4);
43
45
  i0.ɵɵclassMap("fa-solid " + ctx_r1.getRunTypeIcon(ctx_r1.record.RunType));
46
+ i0.ɵɵstyleProp("color", ctx_r1.getRunTypeColor(ctx_r1.record.RunType));
44
47
  i0.ɵɵadvance();
45
48
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.RunType, " ");
46
49
  } }
47
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
50
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template(rf, ctx) { if (rf & 1) {
48
51
  const _r3 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "span", 31);
50
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_17_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.prompt.ID)); });
51
- i0.ɵɵelement(1, "i", 32);
52
- i0.ɵɵtext(2);
52
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 14);
53
+ i0.ɵɵtext(2, "Prompt");
53
54
  i0.ɵɵelementEnd();
55
+ i0.ɵɵelementStart(3, "div", 34);
56
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.record.ChildPromptID)); });
57
+ i0.ɵɵelement(4, "i", 35);
58
+ i0.ɵɵtext(5);
59
+ i0.ɵɵelementEnd();
60
+ i0.ɵɵelementStart(6, "div", 36);
61
+ i0.ɵɵelement(7, "span", 37);
62
+ i0.ɵɵelementStart(8, "span", 38);
63
+ i0.ɵɵtext(9, "wrapped by");
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelement(10, "span", 37);
66
+ i0.ɵɵelementEnd();
67
+ i0.ɵɵelementStart(11, "div", 39);
68
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template_div_click_11_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.prompt.ID)); });
69
+ i0.ɵɵelement(12, "i", 40);
70
+ i0.ɵɵtext(13);
71
+ i0.ɵɵelement(14, "i", 41);
72
+ i0.ɵɵelementEnd()();
54
73
  } if (rf & 2) {
55
- const ctx_r1 = i0.ɵɵnextContext(2);
56
- i0.ɵɵadvance(2);
74
+ const ctx_r1 = i0.ɵɵnextContext(3);
75
+ i0.ɵɵadvance(5);
76
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ChildPrompt, " ");
77
+ i0.ɵɵadvance(8);
57
78
  i0.ɵɵtextInterpolate1(" ", ctx_r1.prompt.Name, " ");
58
79
  } }
59
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
80
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
60
81
  const _r4 = i0.ɵɵgetCurrentView();
61
- i0.ɵɵelementStart(0, "span", 33);
62
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_18_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Models", ctx_r1.model.ID)); });
63
- i0.ɵɵelement(1, "i", 34);
64
- i0.ɵɵtext(2);
82
+ i0.ɵɵelementStart(0, "div", 33)(1, "div", 14);
83
+ i0.ɵɵtext(2, "Prompt");
65
84
  i0.ɵɵelementEnd();
85
+ i0.ɵɵelementStart(3, "div", 42);
86
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_1_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.prompt.ID)); });
87
+ i0.ɵɵelement(4, "i", 43);
88
+ i0.ɵɵtext(5);
89
+ i0.ɵɵelementEnd()();
90
+ } if (rf & 2) {
91
+ const ctx_r1 = i0.ɵɵnextContext(3);
92
+ i0.ɵɵadvance(5);
93
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.prompt.Name, " ");
94
+ } }
95
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵconditionalCreate(0, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_0_Template, 15, 2, "div", 32)(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Conditional_1_Template, 6, 1, "div", 33);
66
97
  } if (rf & 2) {
67
98
  const ctx_r1 = i0.ɵɵnextContext(2);
68
- i0.ɵɵadvance(2);
69
- i0.ɵɵtextInterpolate1(" ", ctx_r1.model.Name, " ");
99
+ i0.ɵɵconditional(ctx_r1.record.ChildPromptID ? 0 : 1);
70
100
  } }
71
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_19_Template(rf, ctx) { if (rf & 1) {
101
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Conditional_7_Template(rf, ctx) { if (rf & 1) {
102
+ i0.ɵɵelementStart(0, "span", 47);
103
+ i0.ɵɵtext(1);
104
+ i0.ɵɵelementEnd();
105
+ } if (rf & 2) {
106
+ const ctx_r1 = i0.ɵɵnextContext(3);
107
+ i0.ɵɵadvance();
108
+ i0.ɵɵtextInterpolate(ctx_r1.record.Vendor);
109
+ } }
110
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Template(rf, ctx) { if (rf & 1) {
72
111
  const _r5 = i0.ɵɵgetCurrentView();
73
- i0.ɵɵelementStart(0, "span", 35);
74
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_19_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Vendors", ctx_r1.record.VendorID)); });
75
- i0.ɵɵelement(1, "i", 36);
76
- i0.ɵɵtext(2);
112
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 14);
113
+ i0.ɵɵtext(2, "Model");
77
114
  i0.ɵɵelementEnd();
115
+ i0.ɵɵelementStart(3, "div", 44);
116
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Models", ctx_r1.model.ID)); });
117
+ i0.ɵɵelementStart(4, "span", 45);
118
+ i0.ɵɵelement(5, "i", 46);
119
+ i0.ɵɵtext(6);
120
+ i0.ɵɵelementEnd();
121
+ i0.ɵɵconditionalCreate(7, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Conditional_7_Template, 2, 1, "span", 47);
122
+ i0.ɵɵelementEnd()();
78
123
  } if (rf & 2) {
79
124
  const ctx_r1 = i0.ɵɵnextContext(2);
80
- i0.ɵɵadvance(2);
81
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Vendor, " ");
125
+ i0.ɵɵadvance(6);
126
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.model.Name);
127
+ i0.ɵɵadvance();
128
+ i0.ɵɵconditional(ctx_r1.record.Vendor ? 7 : -1);
82
129
  } }
83
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_20_Template(rf, ctx) { if (rf & 1) {
130
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
84
131
  const _r6 = i0.ɵɵgetCurrentView();
85
- i0.ɵɵelementStart(0, "span", 17);
86
- i0.ɵɵelement(1, "i", 37);
87
- i0.ɵɵelementStart(2, "a", 38);
88
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_20_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToOriginalRun()); });
132
+ i0.ɵɵelementStart(0, "span", 19);
133
+ i0.ɵɵelement(1, "i", 48);
134
+ i0.ɵɵelementStart(2, "a", 49);
135
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_23_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToOriginalRun()); });
89
136
  i0.ɵɵtext(3, "Original Run");
90
137
  i0.ɵɵelementEnd()();
91
138
  } }
92
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_9_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵelementStart(0, "div", 39);
94
- i0.ɵɵelement(1, "i", 48);
95
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
139
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_9_Template(rf, ctx) { if (rf & 1) {
140
+ i0.ɵɵelementStart(0, "div", 50);
141
+ i0.ɵɵelement(1, "i", 58);
142
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
96
143
  i0.ɵɵtext(4, "Temperature");
97
144
  i0.ɵɵelementEnd();
98
- i0.ɵɵelementStart(5, "div", 43);
145
+ i0.ɵɵelementStart(5, "div", 53);
99
146
  i0.ɵɵtext(6);
100
147
  i0.ɵɵelementEnd()()();
101
148
  } if (rf & 2) {
@@ -103,13 +150,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditi
103
150
  i0.ɵɵadvance(6);
104
151
  i0.ɵɵtextInterpolate(ctx_r1.record.Temperature);
105
152
  } }
106
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_10_Template(rf, ctx) { if (rf & 1) {
107
- i0.ɵɵelementStart(0, "div", 39);
108
- i0.ɵɵelement(1, "i", 49);
109
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
153
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_10_Template(rf, ctx) { if (rf & 1) {
154
+ i0.ɵɵelementStart(0, "div", 50);
155
+ i0.ɵɵelement(1, "i", 59);
156
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
110
157
  i0.ɵɵtext(4, "Top P");
111
158
  i0.ɵɵelementEnd();
112
- i0.ɵɵelementStart(5, "div", 43);
159
+ i0.ɵɵelementStart(5, "div", 53);
113
160
  i0.ɵɵtext(6);
114
161
  i0.ɵɵelementEnd()()();
115
162
  } if (rf & 2) {
@@ -117,13 +164,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditi
117
164
  i0.ɵɵadvance(6);
118
165
  i0.ɵɵtextInterpolate(ctx_r1.record.TopP);
119
166
  } }
120
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_11_Template(rf, ctx) { if (rf & 1) {
121
- i0.ɵɵelementStart(0, "div", 39);
122
- i0.ɵɵelement(1, "i", 50);
123
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
167
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_11_Template(rf, ctx) { if (rf & 1) {
168
+ i0.ɵɵelementStart(0, "div", 50);
169
+ i0.ɵɵelement(1, "i", 60);
170
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
124
171
  i0.ɵɵtext(4, "Top K");
125
172
  i0.ɵɵelementEnd();
126
- i0.ɵɵelementStart(5, "div", 43);
173
+ i0.ɵɵelementStart(5, "div", 53);
127
174
  i0.ɵɵtext(6);
128
175
  i0.ɵɵelementEnd()()();
129
176
  } if (rf & 2) {
@@ -131,13 +178,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditi
131
178
  i0.ɵɵadvance(6);
132
179
  i0.ɵɵtextInterpolate(ctx_r1.record.TopK);
133
180
  } }
134
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵelementStart(0, "div", 39);
136
- i0.ɵɵelement(1, "i", 51);
137
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
181
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_12_Template(rf, ctx) { if (rf & 1) {
182
+ i0.ɵɵelementStart(0, "div", 50);
183
+ i0.ɵɵelement(1, "i", 61);
184
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
138
185
  i0.ɵɵtext(4, "Effort Level");
139
186
  i0.ɵɵelementEnd();
140
- i0.ɵɵelementStart(5, "div", 43);
187
+ i0.ɵɵelementStart(5, "div", 53);
141
188
  i0.ɵɵtext(6);
142
189
  i0.ɵɵelementEnd()()();
143
190
  } if (rf & 2) {
@@ -145,13 +192,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditi
145
192
  i0.ɵɵadvance(6);
146
193
  i0.ɵɵtextInterpolate(ctx_r1.record.EffortLevel);
147
194
  } }
148
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_13_Template(rf, ctx) { if (rf & 1) {
149
- i0.ɵɵelementStart(0, "div", 39);
150
- i0.ɵɵelement(1, "i", 52);
151
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
195
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_13_Template(rf, ctx) { if (rf & 1) {
196
+ i0.ɵɵelementStart(0, "div", 50);
197
+ i0.ɵɵelement(1, "i", 62);
198
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
152
199
  i0.ɵɵtext(4, "Response Format");
153
200
  i0.ɵɵelementEnd();
154
- i0.ɵɵelementStart(5, "div", 43);
201
+ i0.ɵɵelementStart(5, "div", 53);
155
202
  i0.ɵɵtext(6);
156
203
  i0.ɵɵelementEnd()()();
157
204
  } if (rf & 2) {
@@ -159,13 +206,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditi
159
206
  i0.ɵɵadvance(6);
160
207
  i0.ɵɵtextInterpolate(ctx_r1.record.ResponseFormat);
161
208
  } }
162
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_36_Template(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵelementStart(0, "div", 39);
164
- i0.ɵɵelement(1, "i", 53);
165
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
209
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_36_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵelementStart(0, "div", 50);
211
+ i0.ɵɵelement(1, "i", 63);
212
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
166
213
  i0.ɵɵtext(4, "Started");
167
214
  i0.ɵɵelementEnd();
168
- i0.ɵɵelementStart(5, "div", 43);
215
+ i0.ɵɵelementStart(5, "div", 53);
169
216
  i0.ɵɵtext(6);
170
217
  i0.ɵɵpipe(7, "date");
171
218
  i0.ɵɵelementEnd()()();
@@ -174,48 +221,48 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditi
174
221
  i0.ɵɵadvance(6);
175
222
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, ctx_r1.record.RunAt, "short"));
176
223
  } }
177
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Template(rf, ctx) { if (rf & 1) {
224
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Template(rf, ctx) { if (rf & 1) {
178
225
  const _r7 = i0.ɵɵgetCurrentView();
179
- i0.ɵɵelementStart(0, "div", 23)(1, "div", 39);
226
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 50);
180
227
  i0.ɵɵelement(2, "i", 40);
181
- i0.ɵɵelementStart(3, "div", 41)(4, "div", 42);
228
+ i0.ɵɵelementStart(3, "div", 51)(4, "div", 52);
182
229
  i0.ɵɵtext(5, "Configuration");
183
230
  i0.ɵɵelementEnd();
184
- i0.ɵɵelementStart(6, "div", 43)(7, "a", 44);
185
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Configurations", ctx_r1.record.ConfigurationID)); });
231
+ i0.ɵɵelementStart(6, "div", 53)(7, "a", 54);
232
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Configurations", ctx_r1.record.ConfigurationID)); });
186
233
  i0.ɵɵtext(8);
187
234
  i0.ɵɵelementEnd()()()();
188
- i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_9_Template, 7, 1, "div", 39);
189
- i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_10_Template, 7, 1, "div", 39);
190
- i0.ɵɵconditionalCreate(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_11_Template, 7, 1, "div", 39);
191
- i0.ɵɵconditionalCreate(12, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_12_Template, 7, 1, "div", 39);
192
- i0.ɵɵconditionalCreate(13, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_13_Template, 7, 1, "div", 39);
193
- i0.ɵɵelementEnd();
194
- i0.ɵɵelementStart(14, "div", 23)(15, "div", 39);
195
- i0.ɵɵelement(16, "i", 45);
196
- i0.ɵɵelementStart(17, "div", 41)(18, "div", 42);
235
+ i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_9_Template, 7, 1, "div", 50);
236
+ i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_10_Template, 7, 1, "div", 50);
237
+ i0.ɵɵconditionalCreate(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_11_Template, 7, 1, "div", 50);
238
+ i0.ɵɵconditionalCreate(12, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_12_Template, 7, 1, "div", 50);
239
+ i0.ɵɵconditionalCreate(13, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_13_Template, 7, 1, "div", 50);
240
+ i0.ɵɵelementEnd();
241
+ i0.ɵɵelementStart(14, "div", 25)(15, "div", 50);
242
+ i0.ɵɵelement(16, "i", 55);
243
+ i0.ɵɵelementStart(17, "div", 51)(18, "div", 52);
197
244
  i0.ɵɵtext(19, "Duration");
198
245
  i0.ɵɵelementEnd();
199
- i0.ɵɵelementStart(20, "div", 43);
246
+ i0.ɵɵelementStart(20, "div", 53);
200
247
  i0.ɵɵtext(21);
201
248
  i0.ɵɵelementEnd()()();
202
- i0.ɵɵelementStart(22, "div", 39);
203
- i0.ɵɵelement(23, "i", 46);
204
- i0.ɵɵelementStart(24, "div", 41)(25, "div", 42);
249
+ i0.ɵɵelementStart(22, "div", 50);
250
+ i0.ɵɵelement(23, "i", 56);
251
+ i0.ɵɵelementStart(24, "div", 51)(25, "div", 52);
205
252
  i0.ɵɵtext(26, "Total Tokens");
206
253
  i0.ɵɵelementEnd();
207
- i0.ɵɵelementStart(27, "div", 43);
254
+ i0.ɵɵelementStart(27, "div", 53);
208
255
  i0.ɵɵtext(28);
209
256
  i0.ɵɵelementEnd()()();
210
- i0.ɵɵelementStart(29, "div", 39);
211
- i0.ɵɵelement(30, "i", 47);
212
- i0.ɵɵelementStart(31, "div", 41)(32, "div", 42);
257
+ i0.ɵɵelementStart(29, "div", 50);
258
+ i0.ɵɵelement(30, "i", 57);
259
+ i0.ɵɵelementStart(31, "div", 51)(32, "div", 52);
213
260
  i0.ɵɵtext(33, "Cost");
214
261
  i0.ɵɵelementEnd();
215
- i0.ɵɵelementStart(34, "div", 43);
262
+ i0.ɵɵelementStart(34, "div", 53);
216
263
  i0.ɵɵtext(35);
217
264
  i0.ɵɵelementEnd()()();
218
- i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Conditional_36_Template, 8, 4, "div", 39);
265
+ i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Conditional_36_Template, 8, 4, "div", 50);
219
266
  i0.ɵɵelementEnd();
220
267
  } if (rf & 2) {
221
268
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -240,13 +287,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Templat
240
287
  i0.ɵɵadvance();
241
288
  i0.ɵɵconditional(ctx_r1.record.RunAt ? 36 : -1);
242
289
  } }
243
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_28_Conditional_22_Template(rf, ctx) { if (rf & 1) {
244
- i0.ɵɵelementStart(0, "div", 39);
245
- i0.ɵɵelement(1, "i", 53);
246
- i0.ɵɵelementStart(2, "div", 41)(3, "div", 42);
290
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Conditional_22_Template(rf, ctx) { if (rf & 1) {
291
+ i0.ɵɵelementStart(0, "div", 50);
292
+ i0.ɵɵelement(1, "i", 63);
293
+ i0.ɵɵelementStart(2, "div", 51)(3, "div", 52);
247
294
  i0.ɵɵtext(4, "Started");
248
295
  i0.ɵɵelementEnd();
249
- i0.ɵɵelementStart(5, "div", 43);
296
+ i0.ɵɵelementStart(5, "div", 53);
250
297
  i0.ɵɵtext(6);
251
298
  i0.ɵɵpipe(7, "date");
252
299
  i0.ɵɵelementEnd()()();
@@ -255,32 +302,32 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_28_Conditi
255
302
  i0.ɵɵadvance(6);
256
303
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(7, 1, ctx_r1.record.RunAt, "short"));
257
304
  } }
258
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_28_Template(rf, ctx) { if (rf & 1) {
259
- i0.ɵɵelementStart(0, "div", 23)(1, "div", 39);
260
- i0.ɵɵelement(2, "i", 45);
261
- i0.ɵɵelementStart(3, "div", 41)(4, "div", 42);
305
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Template(rf, ctx) { if (rf & 1) {
306
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 50);
307
+ i0.ɵɵelement(2, "i", 55);
308
+ i0.ɵɵelementStart(3, "div", 51)(4, "div", 52);
262
309
  i0.ɵɵtext(5, "Duration");
263
310
  i0.ɵɵelementEnd();
264
- i0.ɵɵelementStart(6, "div", 43);
311
+ i0.ɵɵelementStart(6, "div", 53);
265
312
  i0.ɵɵtext(7);
266
313
  i0.ɵɵelementEnd()()();
267
- i0.ɵɵelementStart(8, "div", 39);
268
- i0.ɵɵelement(9, "i", 46);
269
- i0.ɵɵelementStart(10, "div", 41)(11, "div", 42);
314
+ i0.ɵɵelementStart(8, "div", 50);
315
+ i0.ɵɵelement(9, "i", 56);
316
+ i0.ɵɵelementStart(10, "div", 51)(11, "div", 52);
270
317
  i0.ɵɵtext(12, "Total Tokens");
271
318
  i0.ɵɵelementEnd();
272
- i0.ɵɵelementStart(13, "div", 43);
319
+ i0.ɵɵelementStart(13, "div", 53);
273
320
  i0.ɵɵtext(14);
274
321
  i0.ɵɵelementEnd()()();
275
- i0.ɵɵelementStart(15, "div", 39);
276
- i0.ɵɵelement(16, "i", 47);
277
- i0.ɵɵelementStart(17, "div", 41)(18, "div", 42);
322
+ i0.ɵɵelementStart(15, "div", 50);
323
+ i0.ɵɵelement(16, "i", 57);
324
+ i0.ɵɵelementStart(17, "div", 51)(18, "div", 52);
278
325
  i0.ɵɵtext(19, "Cost");
279
326
  i0.ɵɵelementEnd();
280
- i0.ɵɵelementStart(20, "div", 43);
327
+ i0.ɵɵelementStart(20, "div", 53);
281
328
  i0.ɵɵtext(21);
282
329
  i0.ɵɵelementEnd()()();
283
- i0.ɵɵconditionalCreate(22, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_28_Conditional_22_Template, 8, 4, "div", 39);
330
+ i0.ɵɵconditionalCreate(22, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Conditional_22_Template, 8, 4, "div", 50);
284
331
  i0.ɵɵelementEnd();
285
332
  } if (rf & 2) {
286
333
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -293,24 +340,24 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_28_Templat
293
340
  i0.ɵɵadvance();
294
341
  i0.ɵɵconditional(ctx_r1.record.RunAt ? 22 : -1);
295
342
  } }
296
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_32_Conditional_3_Template(rf, ctx) { if (rf & 1) {
297
- i0.ɵɵelementStart(0, "span", 55);
343
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Conditional_3_Template(rf, ctx) { if (rf & 1) {
344
+ i0.ɵɵelementStart(0, "span", 66);
298
345
  i0.ɵɵtext(1, "JSON");
299
346
  i0.ɵɵelementEnd();
300
347
  } }
301
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_32_Template(rf, ctx) { if (rf & 1) {
302
- i0.ɵɵelementStart(0, "span", 54);
303
- i0.ɵɵelement(1, "i", 32);
348
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Template(rf, ctx) { if (rf & 1) {
349
+ i0.ɵɵelementStart(0, "span", 64);
350
+ i0.ɵɵelement(1, "i", 65);
304
351
  i0.ɵɵtext(2, " Input ");
305
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_32_Conditional_3_Template, 2, 0, "span", 55);
352
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Conditional_3_Template, 2, 0, "span", 66);
306
353
  i0.ɵɵelementEnd();
307
354
  } if (rf & 2) {
308
355
  const ctx_r1 = i0.ɵɵnextContext(2);
309
356
  i0.ɵɵadvance(3);
310
357
  i0.ɵɵconditional(ctx_r1.record.Messages && ctx_r1.record.Messages.trim() !== "" ? 3 : -1);
311
358
  } }
312
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
313
- i0.ɵɵelementStart(0, "span", 71);
359
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
360
+ i0.ɵɵelementStart(0, "span", 84);
314
361
  i0.ɵɵtext(1);
315
362
  i0.ɵɵelementEnd();
316
363
  } if (rf & 2) {
@@ -318,103 +365,111 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditi
318
365
  i0.ɵɵadvance();
319
366
  i0.ɵɵtextInterpolate1("(", ctx_r1.chatMessages.length, ")");
320
367
  } }
321
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
322
- i0.ɵɵelementStart(0, "span", 69);
323
- i0.ɵɵelement(1, "i", 70);
368
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
369
+ i0.ɵɵelementStart(0, "span", 82);
370
+ i0.ɵɵelement(1, "i", 83);
324
371
  i0.ɵɵtext(2, " Messages ");
325
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_2_Conditional_3_Template, 2, 1, "span", 71);
372
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_2_Conditional_3_Template, 2, 1, "span", 84);
326
373
  i0.ɵɵelementEnd();
327
374
  } if (rf & 2) {
328
375
  const ctx_r1 = i0.ɵɵnextContext(4);
329
376
  i0.ɵɵadvance(3);
330
377
  i0.ɵɵconditional(ctx_r1.chatMessages.length > 0 ? 3 : -1);
331
378
  } }
332
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
333
- i0.ɵɵelementStart(0, "div", 62);
334
- i0.ɵɵelement(1, "i", 72);
379
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
380
+ i0.ɵɵelementStart(0, "div", 73);
381
+ i0.ɵɵelement(1, "i", 85);
335
382
  i0.ɵɵelementStart(2, "p");
336
383
  i0.ɵɵtext(3, "Loading messages...");
337
384
  i0.ɵɵelementEnd()();
338
385
  } }
339
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
340
- i0.ɵɵelement(0, "mj-chat-message-viewer", 63);
386
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
387
+ i0.ɵɵelement(0, "mj-chat-message-viewer", 74);
341
388
  } if (rf & 2) {
342
389
  const ctx_r1 = i0.ɵɵnextContext(4);
343
390
  i0.ɵɵproperty("messages", ctx_r1.chatMessages);
344
391
  } }
345
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
346
- i0.ɵɵelementStart(0, "div", 58);
347
- i0.ɵɵelement(1, "i", 73);
392
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
393
+ i0.ɵɵelementStart(0, "div", 69);
394
+ i0.ɵɵelement(1, "i", 86);
348
395
  i0.ɵɵelementStart(2, "p");
349
396
  i0.ɵɵtext(3, "No chat messages found");
350
397
  i0.ɵɵelementEnd()();
351
398
  } }
352
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_8_Conditional_3_Template(rf, ctx) { if (rf & 1) {
353
- i0.ɵɵelementStart(0, "span", 55);
399
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_8_Conditional_3_Template(rf, ctx) { if (rf & 1) {
400
+ i0.ɵɵelementStart(0, "span", 66);
354
401
  i0.ɵɵtext(1, "Object");
355
402
  i0.ɵɵelementEnd();
356
403
  } }
357
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_8_Template(rf, ctx) { if (rf & 1) {
358
- i0.ɵɵelementStart(0, "span", 69);
359
- i0.ɵɵelement(1, "i", 74);
404
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_8_Template(rf, ctx) { if (rf & 1) {
405
+ i0.ɵɵelementStart(0, "span", 82);
406
+ i0.ɵɵelement(1, "i", 87);
360
407
  i0.ɵɵtext(2, " Data ");
361
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_8_Conditional_3_Template, 2, 0, "span", 55);
408
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_8_Conditional_3_Template, 2, 0, "span", 66);
362
409
  i0.ɵɵelementEnd();
363
410
  } if (rf & 2) {
364
411
  const ctx_r1 = i0.ɵɵnextContext(4);
365
412
  i0.ɵɵadvance(3);
366
413
  i0.ɵɵconditional(ctx_r1.inputData ? 3 : -1);
367
414
  } }
368
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
415
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
369
416
  const _r9 = i0.ɵɵgetCurrentView();
370
- i0.ɵɵelementStart(0, "div", 64)(1, "div", 65)(2, "button", 66);
371
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_10_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedData, "Data")); });
372
- i0.ɵɵelement(3, "i", 67);
417
+ i0.ɵɵelementStart(0, "div", 75)(1, "div", 76)(2, "button", 77);
418
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_10_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedData, "Data")); });
419
+ i0.ɵɵelement(3, "i", 78);
373
420
  i0.ɵɵtext(4, " Copy ");
421
+ i0.ɵɵelementEnd();
422
+ i0.ɵɵelementStart(5, "button", 79);
423
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_10_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedData, "json", "Data")); });
424
+ i0.ɵɵelement(6, "i", 80);
374
425
  i0.ɵɵelementEnd()();
375
- i0.ɵɵelementStart(5, "mj-code-editor", 75);
376
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_10_Template_mj_code_editor_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedData, $event) || (ctx_r1.formattedData = $event); return i0.ɵɵresetView($event); });
426
+ i0.ɵɵelementStart(7, "mj-code-editor", 88);
427
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_10_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedData, $event) || (ctx_r1.formattedData = $event); return i0.ɵɵresetView($event); });
377
428
  i0.ɵɵelementEnd()();
378
429
  } if (rf & 2) {
379
430
  const ctx_r1 = i0.ɵɵnextContext(4);
380
- i0.ɵɵadvance(5);
431
+ i0.ɵɵadvance(7);
381
432
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedData);
382
433
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
383
434
  } }
384
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
385
- i0.ɵɵelementStart(0, "div", 58);
386
- i0.ɵɵelement(1, "i", 74);
435
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
436
+ i0.ɵɵelementStart(0, "div", 69);
437
+ i0.ɵɵelement(1, "i", 87);
387
438
  i0.ɵɵelementStart(2, "p");
388
439
  i0.ɵɵtext(3, "No data object found");
389
440
  i0.ɵɵelementEnd()();
390
441
  } }
391
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_13_Template(rf, ctx) { if (rf & 1) {
392
- i0.ɵɵelementStart(0, "span", 69);
393
- i0.ɵɵelement(1, "i", 52);
442
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_13_Template(rf, ctx) { if (rf & 1) {
443
+ i0.ɵɵelementStart(0, "span", 82);
444
+ i0.ɵɵelement(1, "i", 62);
394
445
  i0.ɵɵtext(2, " Raw ");
395
446
  i0.ɵɵelementEnd();
396
447
  } }
397
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Template(rf, ctx) { if (rf & 1) {
448
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template(rf, ctx) { if (rf & 1) {
398
449
  const _r8 = i0.ɵɵgetCurrentView();
399
- i0.ɵɵelementStart(0, "div", 57)(1, "kendo-expansionpanel", 59);
400
- i0.ɵɵtemplate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_2_Template, 4, 1, "ng-template", 60);
401
- i0.ɵɵelementStart(3, "div", 61);
402
- i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_4_Template, 4, 0, "div", 62)(5, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_5_Template, 1, 1, "mj-chat-message-viewer", 63)(6, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_6_Template, 4, 0, "div", 58);
403
- i0.ɵɵelementEnd()();
404
- i0.ɵɵelementStart(7, "kendo-expansionpanel", 59);
405
- i0.ɵɵtemplate(8, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_8_Template, 4, 1, "ng-template", 60);
406
- i0.ɵɵelementStart(9, "div", 61);
407
- i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_10_Template, 6, 4, "div", 64)(11, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Conditional_11_Template, 4, 0, "div", 58);
408
- i0.ɵɵelementEnd()();
409
- i0.ɵɵelementStart(12, "kendo-expansionpanel", 59);
410
- i0.ɵɵtemplate(13, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_ng_template_13_Template, 3, 0, "ng-template", 60);
411
- i0.ɵɵelementStart(14, "div", 61)(15, "div", 64)(16, "div", 65)(17, "button", 66);
412
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedMessages, "Messages")); });
413
- i0.ɵɵelement(18, "i", 67);
450
+ i0.ɵɵelementStart(0, "div", 68)(1, "kendo-expansionpanel", 70);
451
+ i0.ɵɵtemplate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_2_Template, 4, 1, "ng-template", 71);
452
+ i0.ɵɵelementStart(3, "div", 72);
453
+ i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_4_Template, 4, 0, "div", 73)(5, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_5_Template, 1, 1, "mj-chat-message-viewer", 74)(6, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_6_Template, 4, 0, "div", 69);
454
+ i0.ɵɵelementEnd()();
455
+ i0.ɵɵelementStart(7, "kendo-expansionpanel", 70);
456
+ i0.ɵɵtemplate(8, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_8_Template, 4, 1, "ng-template", 71);
457
+ i0.ɵɵelementStart(9, "div", 72);
458
+ i0.ɵɵconditionalCreate(10, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_10_Template, 8, 4, "div", 75)(11, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Conditional_11_Template, 4, 0, "div", 69);
459
+ i0.ɵɵelementEnd()();
460
+ i0.ɵɵelementStart(12, "kendo-expansionpanel", 70);
461
+ i0.ɵɵtemplate(13, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_ng_template_13_Template, 3, 0, "ng-template", 71);
462
+ i0.ɵɵelementStart(14, "div", 72)(15, "div", 75)(16, "div", 76)(17, "button", 77);
463
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedMessages, "Messages")); });
464
+ i0.ɵɵelement(18, "i", 78);
414
465
  i0.ɵɵtext(19, " Copy ");
466
+ i0.ɵɵelementEnd();
467
+ i0.ɵɵelementStart(20, "button", 79);
468
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedMessages, "json", "Raw Messages")); });
469
+ i0.ɵɵelement(21, "i", 80);
415
470
  i0.ɵɵelementEnd()();
416
- i0.ɵɵelementStart(20, "mj-code-editor", 68);
417
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Template_mj_code_editor_ngModelChange_20_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedMessages, $event) || (ctx_r1.formattedMessages = $event); return i0.ɵɵresetView($event); });
471
+ i0.ɵɵelementStart(22, "mj-code-editor", 81);
472
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template_mj_code_editor_ngModelChange_22_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedMessages, $event) || (ctx_r1.formattedMessages = $event); return i0.ɵɵresetView($event); });
418
473
  i0.ɵɵelementEnd()()()()();
419
474
  } if (rf & 2) {
420
475
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -428,42 +483,42 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditi
428
483
  i0.ɵɵconditional(ctx_r1.inputData && ctx_r1.formattedData ? 10 : 11);
429
484
  i0.ɵɵadvance(2);
430
485
  i0.ɵɵproperty("expanded", ctx_r1.rawExpanded)("animation", false);
431
- i0.ɵɵadvance(8);
486
+ i0.ɵɵadvance(10);
432
487
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedMessages);
433
488
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
434
489
  } }
435
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_2_Template(rf, ctx) { if (rf & 1) {
436
- i0.ɵɵelementStart(0, "div", 58);
437
- i0.ɵɵelement(1, "i", 73);
490
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template(rf, ctx) { if (rf & 1) {
491
+ i0.ɵɵelementStart(0, "div", 69);
492
+ i0.ɵɵelement(1, "i", 86);
438
493
  i0.ɵɵelementStart(2, "p");
439
494
  i0.ɵɵtext(3, "No input messages recorded");
440
495
  i0.ɵɵelementEnd()();
441
496
  } }
442
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Template(rf, ctx) { if (rf & 1) {
443
- i0.ɵɵelementStart(0, "div", 56);
444
- i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_1_Template, 21, 12, "div", 57)(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Conditional_2_Template, 4, 0, "div", 58);
497
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Template(rf, ctx) { if (rf & 1) {
498
+ i0.ɵɵelementStart(0, "div", 67);
499
+ i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template, 23, 12, "div", 68)(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template, 4, 0, "div", 69);
445
500
  i0.ɵɵelementEnd();
446
501
  } if (rf & 2) {
447
502
  const ctx_r1 = i0.ɵɵnextContext(2);
448
503
  i0.ɵɵadvance();
449
504
  i0.ɵɵconditional(ctx_r1.record.Messages && ctx_r1.record.Messages.trim() !== "" ? 1 : 2);
450
505
  } }
451
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Conditional_3_Template(rf, ctx) { if (rf & 1) {
452
- i0.ɵɵelementStart(0, "span", 55);
506
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Conditional_3_Template(rf, ctx) { if (rf & 1) {
507
+ i0.ɵɵelementStart(0, "span", 66);
453
508
  i0.ɵɵtext(1, "JSON");
454
509
  i0.ɵɵelementEnd();
455
510
  } }
456
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Conditional_4_Template(rf, ctx) { if (rf & 1) {
457
- i0.ɵɵelementStart(0, "span", 77);
511
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Conditional_4_Template(rf, ctx) { if (rf & 1) {
512
+ i0.ɵɵelementStart(0, "span", 90);
458
513
  i0.ɵɵtext(1, "Error");
459
514
  i0.ɵɵelementEnd();
460
515
  } }
461
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Template(rf, ctx) { if (rf & 1) {
462
- i0.ɵɵelementStart(0, "span", 54);
463
- i0.ɵɵelement(1, "i", 76);
516
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Template(rf, ctx) { if (rf & 1) {
517
+ i0.ɵɵelementStart(0, "span", 64);
518
+ i0.ɵɵelement(1, "i", 89);
464
519
  i0.ɵɵtext(2, " Result ");
465
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Conditional_3_Template, 2, 0, "span", 55);
466
- i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Conditional_4_Template, 2, 0, "span", 77);
520
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Conditional_3_Template, 2, 0, "span", 66);
521
+ i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Conditional_4_Template, 2, 0, "span", 90);
467
522
  i0.ɵɵelementEnd();
468
523
  } if (rf & 2) {
469
524
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -472,10 +527,10 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Templat
472
527
  i0.ɵɵadvance();
473
528
  i0.ɵɵconditional(ctx_r1.record.ErrorMessage ? 4 : -1);
474
529
  } }
475
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template(rf, ctx) { if (rf & 1) {
476
- i0.ɵɵelementStart(0, "div", 78);
477
- i0.ɵɵelement(1, "i", 79);
478
- i0.ɵɵelementStart(2, "div", 80)(3, "h4");
530
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_1_Template(rf, ctx) { if (rf & 1) {
531
+ i0.ɵɵelementStart(0, "div", 91);
532
+ i0.ɵɵelement(1, "i", 92);
533
+ i0.ɵɵelementStart(2, "div", 93)(3, "h4");
479
534
  i0.ɵɵtext(4, "Error Message");
480
535
  i0.ɵɵelementEnd();
481
536
  i0.ɵɵelementStart(5, "p");
@@ -486,24 +541,28 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditi
486
541
  i0.ɵɵadvance(6);
487
542
  i0.ɵɵtextInterpolate(ctx_r1.record.ErrorMessage);
488
543
  } }
489
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template(rf, ctx) { if (rf & 1) {
544
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_2_Template(rf, ctx) { if (rf & 1) {
490
545
  const _r10 = i0.ɵɵgetCurrentView();
491
- i0.ɵɵelementStart(0, "div", 64)(1, "div", 65)(2, "button", 66);
492
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedResult, "Result")); });
493
- i0.ɵɵelement(3, "i", 67);
546
+ i0.ɵɵelementStart(0, "div", 75)(1, "div", 76)(2, "button", 77);
547
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_2_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedResult, "Result")); });
548
+ i0.ɵɵelement(3, "i", 78);
494
549
  i0.ɵɵtext(4, " Copy ");
550
+ i0.ɵɵelementEnd();
551
+ i0.ɵɵelementStart(5, "button", 79);
552
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedResult, "json", "Result")); });
553
+ i0.ɵɵelement(6, "i", 80);
495
554
  i0.ɵɵelementEnd()();
496
- i0.ɵɵelementStart(5, "mj-code-editor", 81);
497
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template_mj_code_editor_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedResult, $event) || (ctx_r1.formattedResult = $event); return i0.ɵɵresetView($event); });
555
+ i0.ɵɵelementStart(7, "mj-code-editor", 94);
556
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_2_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedResult, $event) || (ctx_r1.formattedResult = $event); return i0.ɵɵresetView($event); });
498
557
  i0.ɵɵelementEnd()();
499
558
  } if (rf & 2) {
500
559
  const ctx_r1 = i0.ɵɵnextContext(3);
501
- i0.ɵɵadvance(5);
560
+ i0.ɵɵadvance(7);
502
561
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedResult);
503
562
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
504
563
  } }
505
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
506
- i0.ɵɵelementStart(0, "p", 84)(1, "strong");
564
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
565
+ i0.ɵɵelementStart(0, "p", 97)(1, "strong");
507
566
  i0.ɵɵtext(2, "Status:");
508
567
  i0.ɵɵelementEnd();
509
568
  i0.ɵɵtext(3);
@@ -513,27 +572,32 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditi
513
572
  i0.ɵɵadvance(3);
514
573
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status, " ");
515
574
  } }
516
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
517
- i0.ɵɵelementStart(0, "div", 85)(1, "h4");
518
- i0.ɵɵtext(2, "Error Details");
575
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
576
+ const _r11 = i0.ɵɵgetCurrentView();
577
+ i0.ɵɵelementStart(0, "div", 98)(1, "div", 76)(2, "h4", 100);
578
+ i0.ɵɵtext(3, "Error Details");
519
579
  i0.ɵɵelementEnd();
520
- i0.ɵɵelement(3, "mj-code-editor", 87);
580
+ i0.ɵɵelementStart(4, "button", 79);
581
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedErrorDetails, "json", "Error Details")); });
582
+ i0.ɵɵelement(5, "i", 80);
583
+ i0.ɵɵelementEnd()();
584
+ i0.ɵɵelement(6, "mj-code-editor", 101);
521
585
  i0.ɵɵelementEnd();
522
586
  } if (rf & 2) {
523
587
  const ctx_r1 = i0.ɵɵnextContext(5);
524
- i0.ɵɵadvance(3);
588
+ i0.ɵɵadvance(6);
525
589
  i0.ɵɵproperty("ngModel", ctx_r1.formattedErrorDetails)("disabled", true)("language", "json")("lineWrapping", true);
526
590
  } }
527
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
528
- i0.ɵɵelementStart(0, "p", 86);
591
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
592
+ i0.ɵɵelementStart(0, "p", 99);
529
593
  i0.ɵɵtext(1, " The prompt execution failed but no additional error information is available. ");
530
594
  i0.ɵɵelementEnd();
531
595
  } }
532
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
533
- i0.ɵɵelementStart(0, "div", 83);
534
- i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Conditional_1_Template, 4, 1, "p", 84);
535
- i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Conditional_2_Template, 4, 4, "div", 85);
536
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Conditional_3_Template, 2, 0, "p", 86);
596
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
597
+ i0.ɵɵelementStart(0, "div", 96);
598
+ i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_1_Template, 4, 1, "p", 97);
599
+ i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_2_Template, 7, 4, "div", 98);
600
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Conditional_3_Template, 2, 0, "p", 99);
537
601
  i0.ɵɵelementEnd();
538
602
  } if (rf & 2) {
539
603
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -544,23 +608,23 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditi
544
608
  i0.ɵɵadvance();
545
609
  i0.ɵɵconditional(!ctx_r1.formattedErrorDetails ? 3 : -1);
546
610
  } }
547
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Template(rf, ctx) { if (rf & 1) {
548
- i0.ɵɵelementStart(0, "div", 58);
549
- i0.ɵɵelement(1, "i", 82);
611
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Template(rf, ctx) { if (rf & 1) {
612
+ i0.ɵɵelementStart(0, "div", 69);
613
+ i0.ɵɵelement(1, "i", 95);
550
614
  i0.ɵɵelementStart(2, "p");
551
615
  i0.ɵɵtext(3, "No result data recorded");
552
616
  i0.ɵɵelementEnd();
553
- i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Conditional_4_Template, 4, 3, "div", 83);
617
+ i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Conditional_4_Template, 4, 3, "div", 96);
554
618
  i0.ɵɵelementEnd();
555
619
  } if (rf & 2) {
556
620
  const ctx_r1 = i0.ɵɵnextContext(3);
557
621
  i0.ɵɵadvance(4);
558
622
  i0.ɵɵconditional(ctx_r1.record.Status === "Failed" || ctx_r1.record.Success === false ? 4 : -1);
559
623
  } }
560
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Template(rf, ctx) { if (rf & 1) {
561
- i0.ɵɵelementStart(0, "div", 56);
562
- i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_1_Template, 7, 1, "div", 78);
563
- i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_2_Template, 6, 4, "div", 64)(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Conditional_3_Template, 5, 1, "div", 58);
624
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Template(rf, ctx) { if (rf & 1) {
625
+ i0.ɵɵelementStart(0, "div", 67);
626
+ i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_1_Template, 7, 1, "div", 91);
627
+ i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_2_Template, 8, 4, "div", 75)(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_3_Template, 5, 1, "div", 69);
564
628
  i0.ɵɵelementEnd();
565
629
  } if (rf & 2) {
566
630
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -569,14 +633,14 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Templat
569
633
  i0.ɵɵadvance();
570
634
  i0.ɵɵconditional(ctx_r1.record.Result && ctx_r1.record.Result.trim() !== "" ? 2 : !ctx_r1.record.ErrorMessage ? 3 : -1);
571
635
  } }
572
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Template(rf, ctx) { if (rf & 1) {
573
- i0.ɵɵelementStart(0, "span", 54);
574
- i0.ɵɵelement(1, "i", 88);
636
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_41_Template(rf, ctx) { if (rf & 1) {
637
+ i0.ɵɵelementStart(0, "span", 64);
638
+ i0.ɵɵelement(1, "i", 102);
575
639
  i0.ɵɵtext(2, " Token Usage & Metrics ");
576
640
  i0.ɵɵelementEnd();
577
641
  } }
578
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_9_Template(rf, ctx) { if (rf & 1) {
579
- i0.ɵɵelementStart(0, "div", 94)(1, "span");
642
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_9_Template(rf, ctx) { if (rf & 1) {
643
+ i0.ɵɵelementStart(0, "div", 108)(1, "span");
580
644
  i0.ɵɵtext(2);
581
645
  i0.ɵɵelementEnd()();
582
646
  } if (rf & 2) {
@@ -584,8 +648,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
584
648
  i0.ɵɵadvance(2);
585
649
  i0.ɵɵtextInterpolate1("Rollup: ", ctx_r1.formatTokens(ctx_r1.record.TokensPromptRollup));
586
650
  } }
587
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_17_Template(rf, ctx) { if (rf & 1) {
588
- i0.ɵɵelementStart(0, "div", 94)(1, "span");
651
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_17_Template(rf, ctx) { if (rf & 1) {
652
+ i0.ɵɵelementStart(0, "div", 108)(1, "span");
589
653
  i0.ɵɵtext(2);
590
654
  i0.ɵɵelementEnd()();
591
655
  } if (rf & 2) {
@@ -593,8 +657,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
593
657
  i0.ɵɵadvance(2);
594
658
  i0.ɵɵtextInterpolate1("Rollup: ", ctx_r1.formatTokens(ctx_r1.record.TokensCompletionRollup));
595
659
  } }
596
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_25_Template(rf, ctx) { if (rf & 1) {
597
- i0.ɵɵelementStart(0, "div", 94)(1, "span");
660
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_25_Template(rf, ctx) { if (rf & 1) {
661
+ i0.ɵɵelementStart(0, "div", 108)(1, "span");
598
662
  i0.ɵɵtext(2);
599
663
  i0.ɵɵelementEnd()();
600
664
  } if (rf & 2) {
@@ -602,8 +666,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
602
666
  i0.ɵɵadvance(2);
603
667
  i0.ɵɵtextInterpolate1("Rollup: ", ctx_r1.formatTokens(ctx_r1.record.TokensUsedRollup));
604
668
  } }
605
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_33_Template(rf, ctx) { if (rf & 1) {
606
- i0.ɵɵelementStart(0, "div", 94)(1, "span");
669
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_33_Template(rf, ctx) { if (rf & 1) {
670
+ i0.ɵɵelementStart(0, "div", 108)(1, "span");
607
671
  i0.ɵɵtext(2);
608
672
  i0.ɵɵelementEnd()();
609
673
  } if (rf & 2) {
@@ -611,8 +675,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
611
675
  i0.ɵɵadvance(2);
612
676
  i0.ɵɵtextInterpolate1("Total: ", ctx_r1.formatCost(ctx_r1.record.TotalCost));
613
677
  } }
614
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_34_Template(rf, ctx) { if (rf & 1) {
615
- i0.ɵɵelementStart(0, "div", 96);
678
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_34_Template(rf, ctx) { if (rf & 1) {
679
+ i0.ɵɵelementStart(0, "div", 110);
616
680
  i0.ɵɵtext(1);
617
681
  i0.ɵɵelementEnd();
618
682
  } if (rf & 2) {
@@ -620,13 +684,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
620
684
  i0.ɵɵadvance();
621
685
  i0.ɵɵtextInterpolate(ctx_r1.record.CostCurrency);
622
686
  } }
623
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_35_Template(rf, ctx) { if (rf & 1) {
624
- i0.ɵɵelementStart(0, "div", 90)(1, "div", 91);
625
- i0.ɵɵelement(2, "i", 99);
687
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_35_Template(rf, ctx) { if (rf & 1) {
688
+ i0.ɵɵelementStart(0, "div", 104)(1, "div", 105);
689
+ i0.ɵɵelement(2, "i", 113);
626
690
  i0.ɵɵelementStart(3, "h4");
627
691
  i0.ɵɵtext(4, "Queue Time");
628
692
  i0.ɵɵelementEnd()();
629
- i0.ɵɵelementStart(5, "div", 93);
693
+ i0.ɵɵelementStart(5, "div", 107);
630
694
  i0.ɵɵtext(6);
631
695
  i0.ɵɵelementEnd()();
632
696
  } if (rf & 2) {
@@ -634,13 +698,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
634
698
  i0.ɵɵadvance(6);
635
699
  i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.record.QueueTime));
636
700
  } }
637
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_36_Template(rf, ctx) { if (rf & 1) {
638
- i0.ɵɵelementStart(0, "div", 90)(1, "div", 91);
639
- i0.ɵɵelement(2, "i", 100);
701
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_36_Template(rf, ctx) { if (rf & 1) {
702
+ i0.ɵɵelementStart(0, "div", 104)(1, "div", 105);
703
+ i0.ɵɵelement(2, "i", 114);
640
704
  i0.ɵɵelementStart(3, "h4");
641
705
  i0.ɵɵtext(4, "Prompt Time");
642
706
  i0.ɵɵelementEnd()();
643
- i0.ɵɵelementStart(5, "div", 93);
707
+ i0.ɵɵelementStart(5, "div", 107);
644
708
  i0.ɵɵtext(6);
645
709
  i0.ɵɵelementEnd()();
646
710
  } if (rf & 2) {
@@ -648,13 +712,13 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
648
712
  i0.ɵɵadvance(6);
649
713
  i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.record.PromptTime));
650
714
  } }
651
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_37_Template(rf, ctx) { if (rf & 1) {
652
- i0.ɵɵelementStart(0, "div", 90)(1, "div", 91);
653
- i0.ɵɵelement(2, "i", 101);
715
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_37_Template(rf, ctx) { if (rf & 1) {
716
+ i0.ɵɵelementStart(0, "div", 104)(1, "div", 105);
717
+ i0.ɵɵelement(2, "i", 115);
654
718
  i0.ɵɵelementStart(3, "h4");
655
719
  i0.ɵɵtext(4, "Completion Time");
656
720
  i0.ɵɵelementEnd()();
657
- i0.ɵɵelementStart(5, "div", 93);
721
+ i0.ɵɵelementStart(5, "div", 107);
658
722
  i0.ɵɵtext(6);
659
723
  i0.ɵɵelementEnd()();
660
724
  } if (rf & 2) {
@@ -662,11 +726,11 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
662
726
  i0.ɵɵadvance(6);
663
727
  i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.record.CompletionTime));
664
728
  } }
665
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_39_Template(rf, ctx) { if (rf & 1) {
666
- i0.ɵɵelementStart(0, "div", 98)(1, "span", 42);
729
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_39_Template(rf, ctx) { if (rf & 1) {
730
+ i0.ɵɵelementStart(0, "div", 112)(1, "span", 52);
667
731
  i0.ɵɵtext(2, "Execution Order:");
668
732
  i0.ɵɵelementEnd();
669
- i0.ɵɵelementStart(3, "span", 43);
733
+ i0.ɵɵelementStart(3, "span", 53);
670
734
  i0.ɵɵtext(4);
671
735
  i0.ɵɵelementEnd()();
672
736
  } if (rf & 2) {
@@ -674,70 +738,70 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditi
674
738
  i0.ɵɵadvance(4);
675
739
  i0.ɵɵtextInterpolate(ctx_r1.record.ExecutionOrder);
676
740
  } }
677
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_40_Template(rf, ctx) { if (rf & 1) {
678
- const _r11 = i0.ɵɵgetCurrentView();
679
- i0.ɵɵelementStart(0, "div", 98)(1, "span", 42);
741
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_40_Template(rf, ctx) { if (rf & 1) {
742
+ const _r12 = i0.ɵɵgetCurrentView();
743
+ i0.ɵɵelementStart(0, "div", 112)(1, "span", 52);
680
744
  i0.ɵɵtext(2, "Agent:");
681
745
  i0.ɵɵelementEnd();
682
- i0.ɵɵelementStart(3, "span", 102);
683
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_40_Template_span_click_3_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", ctx_r1.record.AgentID)); });
746
+ i0.ɵɵelementStart(3, "span", 116);
747
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_40_Template_span_click_3_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", ctx_r1.record.AgentID)); });
684
748
  i0.ɵɵtext(4);
685
- i0.ɵɵelement(5, "i", 103);
749
+ i0.ɵɵelement(5, "i", 117);
686
750
  i0.ɵɵelementEnd()();
687
751
  } if (rf & 2) {
688
752
  const ctx_r1 = i0.ɵɵnextContext(3);
689
753
  i0.ɵɵadvance(4);
690
754
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Agent, " ");
691
755
  } }
692
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Template(rf, ctx) { if (rf & 1) {
693
- i0.ɵɵelementStart(0, "div", 56)(1, "div", 89)(2, "div", 90)(3, "div", 91);
694
- i0.ɵɵelement(4, "i", 92);
756
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Template(rf, ctx) { if (rf & 1) {
757
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 103)(2, "div", 104)(3, "div", 105);
758
+ i0.ɵɵelement(4, "i", 106);
695
759
  i0.ɵɵelementStart(5, "h4");
696
760
  i0.ɵɵtext(6, "Prompt Tokens");
697
761
  i0.ɵɵelementEnd()();
698
- i0.ɵɵelementStart(7, "div", 93);
762
+ i0.ɵɵelementStart(7, "div", 107);
699
763
  i0.ɵɵtext(8);
700
764
  i0.ɵɵelementEnd();
701
- i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_9_Template, 3, 1, "div", 94);
765
+ i0.ɵɵconditionalCreate(9, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_9_Template, 3, 1, "div", 108);
702
766
  i0.ɵɵelementEnd();
703
- i0.ɵɵelementStart(10, "div", 90)(11, "div", 91);
704
- i0.ɵɵelement(12, "i", 95);
767
+ i0.ɵɵelementStart(10, "div", 104)(11, "div", 105);
768
+ i0.ɵɵelement(12, "i", 109);
705
769
  i0.ɵɵelementStart(13, "h4");
706
770
  i0.ɵɵtext(14, "Completion Tokens");
707
771
  i0.ɵɵelementEnd()();
708
- i0.ɵɵelementStart(15, "div", 93);
772
+ i0.ɵɵelementStart(15, "div", 107);
709
773
  i0.ɵɵtext(16);
710
774
  i0.ɵɵelementEnd();
711
- i0.ɵɵconditionalCreate(17, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_17_Template, 3, 1, "div", 94);
775
+ i0.ɵɵconditionalCreate(17, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_17_Template, 3, 1, "div", 108);
712
776
  i0.ɵɵelementEnd();
713
- i0.ɵɵelementStart(18, "div", 90)(19, "div", 91);
714
- i0.ɵɵelement(20, "i", 46);
777
+ i0.ɵɵelementStart(18, "div", 104)(19, "div", 105);
778
+ i0.ɵɵelement(20, "i", 56);
715
779
  i0.ɵɵelementStart(21, "h4");
716
780
  i0.ɵɵtext(22, "Total Tokens");
717
781
  i0.ɵɵelementEnd()();
718
- i0.ɵɵelementStart(23, "div", 93);
782
+ i0.ɵɵelementStart(23, "div", 107);
719
783
  i0.ɵɵtext(24);
720
784
  i0.ɵɵelementEnd();
721
- i0.ɵɵconditionalCreate(25, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_25_Template, 3, 1, "div", 94);
785
+ i0.ɵɵconditionalCreate(25, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_25_Template, 3, 1, "div", 108);
722
786
  i0.ɵɵelementEnd();
723
- i0.ɵɵelementStart(26, "div", 90)(27, "div", 91);
724
- i0.ɵɵelement(28, "i", 47);
787
+ i0.ɵɵelementStart(26, "div", 104)(27, "div", 105);
788
+ i0.ɵɵelement(28, "i", 57);
725
789
  i0.ɵɵelementStart(29, "h4");
726
790
  i0.ɵɵtext(30, "Cost");
727
791
  i0.ɵɵelementEnd()();
728
- i0.ɵɵelementStart(31, "div", 93);
792
+ i0.ɵɵelementStart(31, "div", 107);
729
793
  i0.ɵɵtext(32);
730
794
  i0.ɵɵelementEnd();
731
- i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_33_Template, 3, 1, "div", 94);
732
- i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_34_Template, 2, 1, "div", 96);
795
+ i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_33_Template, 3, 1, "div", 108);
796
+ i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_34_Template, 2, 1, "div", 110);
733
797
  i0.ɵɵelementEnd();
734
- i0.ɵɵconditionalCreate(35, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_35_Template, 7, 1, "div", 90);
735
- i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_36_Template, 7, 1, "div", 90);
736
- i0.ɵɵconditionalCreate(37, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_37_Template, 7, 1, "div", 90);
798
+ i0.ɵɵconditionalCreate(35, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_35_Template, 7, 1, "div", 104);
799
+ i0.ɵɵconditionalCreate(36, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_36_Template, 7, 1, "div", 104);
800
+ i0.ɵɵconditionalCreate(37, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_37_Template, 7, 1, "div", 104);
737
801
  i0.ɵɵelementEnd();
738
- i0.ɵɵelementStart(38, "div", 97);
739
- i0.ɵɵconditionalCreate(39, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_39_Template, 5, 1, "div", 98);
740
- i0.ɵɵconditionalCreate(40, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Conditional_40_Template, 6, 1, "div", 98);
802
+ i0.ɵɵelementStart(38, "div", 111);
803
+ i0.ɵɵconditionalCreate(39, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_39_Template, 5, 1, "div", 112);
804
+ i0.ɵɵconditionalCreate(40, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Conditional_40_Template, 6, 1, "div", 112);
741
805
  i0.ɵɵelementEnd()();
742
806
  } if (rf & 2) {
743
807
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -770,8 +834,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Templat
770
834
  i0.ɵɵadvance();
771
835
  i0.ɵɵconditional(ctx_r1.record.AgentID ? 40 : -1);
772
836
  } }
773
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
774
- i0.ɵɵelementStart(0, "span", 71);
837
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
838
+ i0.ɵɵelementStart(0, "span", 84);
775
839
  i0.ɵɵtext(1);
776
840
  i0.ɵɵelementEnd();
777
841
  } if (rf & 2) {
@@ -779,22 +843,22 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
779
843
  i0.ɵɵadvance();
780
844
  i0.ɵɵtextInterpolate1("(", ctx_r1.record.ValidationAttemptCount, " attempts)");
781
845
  } }
782
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
783
- i0.ɵɵelementStart(0, "span", 105);
846
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
847
+ i0.ɵɵelementStart(0, "span", 119);
784
848
  i0.ɵɵtext(1, "Passed");
785
849
  i0.ɵɵelementEnd();
786
850
  } }
787
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
788
- i0.ɵɵelementStart(0, "span", 77);
851
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
852
+ i0.ɵɵelementStart(0, "span", 90);
789
853
  i0.ɵɵtext(1, "Failed");
790
854
  i0.ɵɵelementEnd();
791
855
  } }
792
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Template(rf, ctx) { if (rf & 1) {
793
- i0.ɵɵelementStart(0, "span", 54);
794
- i0.ɵɵelement(1, "i", 104);
856
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Template(rf, ctx) { if (rf & 1) {
857
+ i0.ɵɵelementStart(0, "span", 64);
858
+ i0.ɵɵelement(1, "i", 118);
795
859
  i0.ɵɵtext(2, " Validation & Retries ");
796
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_3_Template, 2, 1, "span", 71);
797
- i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_4_Template, 2, 0, "span", 105)(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Conditional_5_Template, 2, 0, "span", 77);
860
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_3_Template, 2, 1, "span", 84);
861
+ i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_4_Template, 2, 0, "span", 119)(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Conditional_5_Template, 2, 0, "span", 90);
798
862
  i0.ɵɵelementEnd();
799
863
  } if (rf & 2) {
800
864
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -803,8 +867,8 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
803
867
  i0.ɵɵadvance();
804
868
  i0.ɵɵconditional(ctx_r1.record.FinalValidationPassed ? 4 : ctx_r1.record.FinalValidationPassed === false ? 5 : -1);
805
869
  } }
806
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_29_Conditional_6_Template(rf, ctx) { if (rf & 1) {
807
- i0.ɵɵelementStart(0, "span", 116);
870
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_29_Conditional_6_Template(rf, ctx) { if (rf & 1) {
871
+ i0.ɵɵelementStart(0, "span", 130);
808
872
  i0.ɵɵtext(1);
809
873
  i0.ɵɵelementEnd();
810
874
  } if (rf & 2) {
@@ -812,15 +876,15 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
812
876
  i0.ɵɵadvance();
813
877
  i0.ɵɵtextInterpolate1("", ctx_r1.record.ValidationErrorCount, " validation errors");
814
878
  } }
815
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_29_Template(rf, ctx) { if (rf & 1) {
816
- i0.ɵɵelementStart(0, "div", 111)(1, "h5");
817
- i0.ɵɵelement(2, "i", 79);
879
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_29_Template(rf, ctx) { if (rf & 1) {
880
+ i0.ɵɵelementStart(0, "div", 125)(1, "h5");
881
+ i0.ɵɵelement(2, "i", 92);
818
882
  i0.ɵɵtext(3, " Final Validation Error");
819
883
  i0.ɵɵelementEnd();
820
884
  i0.ɵɵelementStart(4, "p");
821
885
  i0.ɵɵtext(5);
822
886
  i0.ɵɵelementEnd();
823
- i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_29_Conditional_6_Template, 2, 1, "span", 116);
887
+ i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_29_Conditional_6_Template, 2, 1, "span", 130);
824
888
  i0.ɵɵelementEnd();
825
889
  } if (rf & 2) {
826
890
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -829,9 +893,9 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
829
893
  i0.ɵɵadvance();
830
894
  i0.ɵɵconditional(ctx_r1.record && ctx_r1.record.ValidationErrorCount && ctx_r1.record.ValidationErrorCount > 0 ? 6 : -1);
831
895
  } }
832
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
833
- i0.ɵɵelementStart(0, "div", 112)(1, "h5");
834
- i0.ɵɵelement(2, "i", 117);
896
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
897
+ i0.ɵɵelementStart(0, "div", 126)(1, "h5");
898
+ i0.ɵɵelement(2, "i", 131);
835
899
  i0.ɵɵtext(3, " Most Common Error");
836
900
  i0.ɵɵelementEnd();
837
901
  i0.ɵɵelementStart(4, "p");
@@ -842,24 +906,24 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
842
906
  i0.ɵɵadvance(5);
843
907
  i0.ɵɵtextInterpolate(ctx_r1.record.CommonValidationError);
844
908
  } }
845
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_31_Template(rf, ctx) { if (rf & 1) {
846
- i0.ɵɵelementStart(0, "div", 113)(1, "h4");
909
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_31_Template(rf, ctx) { if (rf & 1) {
910
+ i0.ɵɵelementStart(0, "div", 127)(1, "h4");
847
911
  i0.ɵɵtext(2, "Retry Timeline");
848
912
  i0.ɵɵelementEnd();
849
- i0.ɵɵelementStart(3, "div", 118)(4, "div", 119);
850
- i0.ɵɵelement(5, "i", 45);
913
+ i0.ɵɵelementStart(3, "div", 132)(4, "div", 133);
914
+ i0.ɵɵelement(5, "i", 55);
851
915
  i0.ɵɵelementStart(6, "span");
852
916
  i0.ɵɵtext(7);
853
917
  i0.ɵɵpipe(8, "date");
854
918
  i0.ɵɵelementEnd()();
855
- i0.ɵɵelementStart(9, "div", 119);
856
- i0.ɵɵelement(10, "i", 101);
919
+ i0.ɵɵelementStart(9, "div", 133);
920
+ i0.ɵɵelement(10, "i", 115);
857
921
  i0.ɵɵelementStart(11, "span");
858
922
  i0.ɵɵtext(12);
859
923
  i0.ɵɵpipe(13, "date");
860
924
  i0.ɵɵelementEnd()();
861
- i0.ɵɵelementStart(14, "div", 119);
862
- i0.ɵɵelement(15, "i", 120);
925
+ i0.ɵɵelementStart(14, "div", 133);
926
+ i0.ɵɵelement(15, "i", 134);
863
927
  i0.ɵɵelementStart(16, "span");
864
928
  i0.ɵɵtext(17);
865
929
  i0.ɵɵelementEnd()()()();
@@ -872,140 +936,148 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
872
936
  i0.ɵɵadvance(5);
873
937
  i0.ɵɵtextInterpolate1("Total Retry Duration: ", ctx_r1.formatDuration(ctx_r1.record.TotalRetryDurationMS));
874
938
  } }
875
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
876
- i0.ɵɵelementStart(0, "span", 116);
939
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
940
+ i0.ɵɵelementStart(0, "span", 130);
877
941
  i0.ɵɵtext(1);
878
942
  i0.ɵɵelementEnd();
879
943
  } if (rf & 2) {
880
- const attempt_r13 = i0.ɵɵnextContext(2).$implicit;
944
+ const attempt_r14 = i0.ɵɵnextContext(2).$implicit;
881
945
  i0.ɵɵadvance();
882
- i0.ɵɵtextInterpolate1("(", attempt_r13.validationErrorCount, " errors)");
946
+ i0.ɵɵtextInterpolate1("(", attempt_r14.validationErrorCount, " errors)");
883
947
  } }
884
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Conditional_7_Template(rf, ctx) { if (rf & 1) {
885
- i0.ɵɵelementStart(0, "span", 128);
948
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Conditional_7_Template(rf, ctx) { if (rf & 1) {
949
+ i0.ɵɵelementStart(0, "span", 142);
886
950
  i0.ɵɵtext(1);
887
951
  i0.ɵɵelementEnd();
888
- i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Conditional_7_Conditional_2_Template, 2, 1, "span", 116);
952
+ i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Conditional_7_Conditional_2_Template, 2, 1, "span", 130);
889
953
  } if (rf & 2) {
890
- const attempt_r13 = i0.ɵɵnextContext().$implicit;
954
+ const attempt_r14 = i0.ɵɵnextContext().$implicit;
891
955
  i0.ɵɵadvance();
892
- i0.ɵɵtextInterpolate(attempt_r13.errorMessage || "Unknown error");
956
+ i0.ɵɵtextInterpolate(attempt_r14.errorMessage || "Unknown error");
893
957
  i0.ɵɵadvance();
894
- i0.ɵɵconditional(attempt_r13.validationErrorCount > 0 ? 2 : -1);
958
+ i0.ɵɵconditional(attempt_r14.validationErrorCount > 0 ? 2 : -1);
895
959
  } }
896
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Conditional_8_Template(rf, ctx) { if (rf & 1) {
897
- i0.ɵɵelementStart(0, "span", 127);
960
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Conditional_8_Template(rf, ctx) { if (rf & 1) {
961
+ i0.ɵɵelementStart(0, "span", 141);
898
962
  i0.ɵɵtext(1);
899
963
  i0.ɵɵelementEnd();
900
964
  } if (rf & 2) {
901
- const attempt_r13 = i0.ɵɵnextContext().$implicit;
965
+ const attempt_r14 = i0.ɵɵnextContext().$implicit;
902
966
  i0.ɵɵadvance();
903
- i0.ɵɵtextInterpolate1("Output: ", attempt_r13.outputLength, " chars");
967
+ i0.ɵɵtextInterpolate1("Output: ", attempt_r14.outputLength, " chars");
904
968
  } }
905
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Template(rf, ctx) { if (rf & 1) {
906
- i0.ɵɵelementStart(0, "div", 123)(1, "div", 124);
969
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Template(rf, ctx) { if (rf & 1) {
970
+ i0.ɵɵelementStart(0, "div", 137)(1, "div", 138);
907
971
  i0.ɵɵelement(2, "i");
908
972
  i0.ɵɵtext(3);
909
973
  i0.ɵɵelementEnd();
910
- i0.ɵɵelementStart(4, "div", 125)(5, "span", 126);
974
+ i0.ɵɵelementStart(4, "div", 139)(5, "span", 140);
911
975
  i0.ɵɵtext(6);
912
976
  i0.ɵɵelementEnd();
913
- i0.ɵɵconditionalCreate(7, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Conditional_7_Template, 3, 2);
914
- i0.ɵɵconditionalCreate(8, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Conditional_8_Template, 2, 1, "span", 127);
977
+ i0.ɵɵconditionalCreate(7, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Conditional_7_Template, 3, 2);
978
+ i0.ɵɵconditionalCreate(8, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Conditional_8_Template, 2, 1, "span", 141);
915
979
  i0.ɵɵelementEnd()();
916
980
  } if (rf & 2) {
917
- const attempt_r13 = ctx.$implicit;
918
- i0.ɵɵclassProp("success", attempt_r13.success)("failed", !attempt_r13.success);
981
+ const attempt_r14 = ctx.$implicit;
982
+ i0.ɵɵclassProp("success", attempt_r14.success)("failed", !attempt_r14.success);
919
983
  i0.ɵɵadvance(2);
920
- i0.ɵɵclassMap(attempt_r13.success ? "fa-solid fa-check" : "fa-solid fa-times");
984
+ i0.ɵɵclassMap(attempt_r14.success ? "fa-solid fa-check" : "fa-solid fa-times");
921
985
  i0.ɵɵadvance();
922
- i0.ɵɵtextInterpolate1(" Attempt #", attempt_r13.attemptNumber, " ");
986
+ i0.ɵɵtextInterpolate1(" Attempt #", attempt_r14.attemptNumber, " ");
923
987
  i0.ɵɵadvance(3);
924
- i0.ɵɵtextInterpolate(attempt_r13.timestamp);
988
+ i0.ɵɵtextInterpolate(attempt_r14.timestamp);
925
989
  i0.ɵɵadvance();
926
- i0.ɵɵconditional(!attempt_r13.success ? 7 : -1);
990
+ i0.ɵɵconditional(!attempt_r14.success ? 7 : -1);
927
991
  i0.ɵɵadvance();
928
- i0.ɵɵconditional(attempt_r13.outputLength ? 8 : -1);
992
+ i0.ɵɵconditional(attempt_r14.outputLength ? 8 : -1);
929
993
  } }
930
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_Template(rf, ctx) { if (rf & 1) {
931
- i0.ɵɵelementStart(0, "div", 114)(1, "h4");
994
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_Template(rf, ctx) { if (rf & 1) {
995
+ i0.ɵɵelementStart(0, "div", 128)(1, "h4");
932
996
  i0.ɵɵtext(2, "Validation Attempts");
933
997
  i0.ɵɵelementEnd();
934
- i0.ɵɵelementStart(3, "div", 121);
935
- i0.ɵɵrepeaterCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_For_5_Template, 9, 10, "div", 122, _forTrack0);
998
+ i0.ɵɵelementStart(3, "div", 135);
999
+ i0.ɵɵrepeaterCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_For_5_Template, 9, 10, "div", 136, _forTrack0);
936
1000
  i0.ɵɵelementEnd()();
937
1001
  } if (rf & 2) {
938
1002
  const ctx_r1 = i0.ɵɵnextContext(4);
939
1003
  i0.ɵɵadvance(4);
940
1004
  i0.ɵɵrepeater(ctx_r1.validationAttempts);
941
1005
  } }
942
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_33_Template(rf, ctx) { if (rf & 1) {
943
- const _r14 = i0.ɵɵgetCurrentView();
944
- i0.ɵɵelementStart(0, "div", 115)(1, "h4");
945
- i0.ɵɵtext(2, "Validation Summary Details");
1006
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1007
+ const _r15 = i0.ɵɵgetCurrentView();
1008
+ i0.ɵɵelementStart(0, "div", 129)(1, "div", 76)(2, "h4", 100);
1009
+ i0.ɵɵtext(3, "Validation Summary Details");
946
1010
  i0.ɵɵelementEnd();
947
- i0.ɵɵelementStart(3, "div", 129)(4, "mj-code-editor", 130);
948
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_33_Template_mj_code_editor_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedValidationSummary, $event) || (ctx_r1.formattedValidationSummary = $event); return i0.ɵɵresetView($event); });
1011
+ i0.ɵɵelementStart(4, "button", 79);
1012
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_33_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedValidationSummary, "json", "Validation Summary")); });
1013
+ i0.ɵɵelement(5, "i", 80);
1014
+ i0.ɵɵelementEnd()();
1015
+ i0.ɵɵelementStart(6, "div", 143)(7, "mj-code-editor", 144);
1016
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_33_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedValidationSummary, $event) || (ctx_r1.formattedValidationSummary = $event); return i0.ɵɵresetView($event); });
949
1017
  i0.ɵɵelementEnd()()();
950
1018
  } if (rf & 2) {
951
1019
  const ctx_r1 = i0.ɵɵnextContext(4);
952
- i0.ɵɵadvance(4);
1020
+ i0.ɵɵadvance(7);
953
1021
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedValidationSummary);
954
1022
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
955
1023
  } }
956
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_34_Template(rf, ctx) { if (rf & 1) {
957
- const _r15 = i0.ɵɵgetCurrentView();
958
- i0.ɵɵelementStart(0, "div", 115)(1, "h4");
959
- i0.ɵɵtext(2, "Validation Attempts (Raw JSON)");
1024
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_34_Template(rf, ctx) { if (rf & 1) {
1025
+ const _r16 = i0.ɵɵgetCurrentView();
1026
+ i0.ɵɵelementStart(0, "div", 129)(1, "div", 76)(2, "h4", 100);
1027
+ i0.ɵɵtext(3, "Validation Attempts (Raw JSON)");
960
1028
  i0.ɵɵelementEnd();
961
- i0.ɵɵelementStart(3, "div", 129)(4, "mj-code-editor", 131);
962
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_34_Template_mj_code_editor_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedValidationAttempts, $event) || (ctx_r1.formattedValidationAttempts = $event); return i0.ɵɵresetView($event); });
1029
+ i0.ɵɵelementStart(4, "button", 79);
1030
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_34_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedValidationAttempts, "json", "Validation Attempts")); });
1031
+ i0.ɵɵelement(5, "i", 80);
1032
+ i0.ɵɵelementEnd()();
1033
+ i0.ɵɵelementStart(6, "div", 143)(7, "mj-code-editor", 145);
1034
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_34_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedValidationAttempts, $event) || (ctx_r1.formattedValidationAttempts = $event); return i0.ɵɵresetView($event); });
963
1035
  i0.ɵɵelementEnd()()();
964
1036
  } if (rf & 2) {
965
1037
  const ctx_r1 = i0.ɵɵnextContext(4);
966
- i0.ɵɵadvance(4);
1038
+ i0.ɵɵadvance(7);
967
1039
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedValidationAttempts);
968
1040
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
969
1041
  } }
970
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Template(rf, ctx) { if (rf & 1) {
971
- i0.ɵɵelementStart(0, "div", 56)(1, "div", 106)(2, "div", 107)(3, "h4");
1042
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1043
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 120)(2, "div", 121)(3, "h4");
972
1044
  i0.ɵɵtext(4, "Validation Summary");
973
1045
  i0.ɵɵelementEnd();
974
- i0.ɵɵelementStart(5, "div", 108);
1046
+ i0.ɵɵelementStart(5, "div", 122);
975
1047
  i0.ɵɵelement(6, "i");
976
1048
  i0.ɵɵtext(7);
977
1049
  i0.ɵɵelementEnd()();
978
- i0.ɵɵelementStart(8, "div", 109)(9, "div", 110)(10, "div", 42);
1050
+ i0.ɵɵelementStart(8, "div", 123)(9, "div", 124)(10, "div", 52);
979
1051
  i0.ɵɵtext(11, "Total Attempts");
980
1052
  i0.ɵɵelementEnd();
981
- i0.ɵɵelementStart(12, "div", 43);
1053
+ i0.ɵɵelementStart(12, "div", 53);
982
1054
  i0.ɵɵtext(13);
983
1055
  i0.ɵɵelementEnd()();
984
- i0.ɵɵelementStart(14, "div", 110)(15, "div", 42);
1056
+ i0.ɵɵelementStart(14, "div", 124)(15, "div", 52);
985
1057
  i0.ɵɵtext(16, "Successful");
986
1058
  i0.ɵɵelementEnd();
987
- i0.ɵɵelementStart(17, "div", 43);
1059
+ i0.ɵɵelementStart(17, "div", 53);
988
1060
  i0.ɵɵtext(18);
989
1061
  i0.ɵɵelementEnd()();
990
- i0.ɵɵelementStart(19, "div", 110)(20, "div", 42);
1062
+ i0.ɵɵelementStart(19, "div", 124)(20, "div", 52);
991
1063
  i0.ɵɵtext(21, "Behavior");
992
1064
  i0.ɵɵelementEnd();
993
- i0.ɵɵelementStart(22, "div", 43);
1065
+ i0.ɵɵelementStart(22, "div", 53);
994
1066
  i0.ɵɵtext(23);
995
1067
  i0.ɵɵelementEnd()();
996
- i0.ɵɵelementStart(24, "div", 110)(25, "div", 42);
1068
+ i0.ɵɵelementStart(24, "div", 124)(25, "div", 52);
997
1069
  i0.ɵɵtext(26, "Retry Strategy");
998
1070
  i0.ɵɵelementEnd();
999
- i0.ɵɵelementStart(27, "div", 43);
1071
+ i0.ɵɵelementStart(27, "div", 53);
1000
1072
  i0.ɵɵtext(28);
1001
1073
  i0.ɵɵelementEnd()()();
1002
- i0.ɵɵconditionalCreate(29, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_29_Template, 7, 2, "div", 111);
1003
- i0.ɵɵconditionalCreate(30, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_30_Template, 6, 1, "div", 112);
1074
+ i0.ɵɵconditionalCreate(29, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_29_Template, 7, 2, "div", 125);
1075
+ i0.ɵɵconditionalCreate(30, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_30_Template, 6, 1, "div", 126);
1004
1076
  i0.ɵɵelementEnd();
1005
- i0.ɵɵconditionalCreate(31, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_31_Template, 18, 9, "div", 113);
1006
- i0.ɵɵconditionalCreate(32, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_32_Template, 6, 0, "div", 114);
1007
- i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_33_Template, 5, 4, "div", 115);
1008
- i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Conditional_34_Template, 5, 4, "div", 115);
1077
+ i0.ɵɵconditionalCreate(31, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_31_Template, 18, 9, "div", 127);
1078
+ i0.ɵɵconditionalCreate(32, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_32_Template, 6, 0, "div", 128);
1079
+ i0.ɵɵconditionalCreate(33, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_33_Template, 8, 4, "div", 129);
1080
+ i0.ɵɵconditionalCreate(34, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Conditional_34_Template, 8, 4, "div", 129);
1009
1081
  i0.ɵɵelementEnd();
1010
1082
  } if (rf & 2) {
1011
1083
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1036,18 +1108,18 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_temp
1036
1108
  i0.ɵɵadvance();
1037
1109
  i0.ɵɵconditional(ctx_r1.record.ValidationAttempts ? 34 : -1);
1038
1110
  } }
1039
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_Template(rf, ctx) { if (rf & 1) {
1040
- const _r12 = i0.ɵɵgetCurrentView();
1041
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 26);
1042
- i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_Template_kendo_panelbar_item_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onValidationPanelToggle($event)); });
1043
- i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_1_Template, 6, 2, "ng-template", 27)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_ng_template_2_Template, 35, 17, "ng-template", 28);
1111
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template(rf, ctx) { if (rf & 1) {
1112
+ const _r13 = i0.ɵɵgetCurrentView();
1113
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 28);
1114
+ i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template_kendo_panelbar_item_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onValidationPanelToggle($event)); });
1115
+ i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_1_Template, 6, 2, "ng-template", 29)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_ng_template_2_Template, 35, 17, "ng-template", 30);
1044
1116
  i0.ɵɵelementEnd();
1045
1117
  } if (rf & 2) {
1046
1118
  const ctx_r1 = i0.ɵɵnextContext(2);
1047
1119
  i0.ɵɵproperty("expanded", ctx_r1.validationExpanded);
1048
1120
  } }
1049
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1050
- i0.ɵɵelementStart(0, "span", 71);
1121
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1122
+ i0.ɵɵelementStart(0, "span", 84);
1051
1123
  i0.ɵɵtext(1);
1052
1124
  i0.ɵɵelementEnd();
1053
1125
  } if (rf & 2) {
@@ -1055,47 +1127,47 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_temp
1055
1127
  i0.ɵɵadvance();
1056
1128
  i0.ɵɵtextInterpolate1("(", ctx_r1.childRuns.length, " children)");
1057
1129
  } }
1058
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1059
- i0.ɵɵelementStart(0, "span", 54);
1060
- i0.ɵɵelement(1, "i", 132);
1130
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1131
+ i0.ɵɵelementStart(0, "span", 64);
1132
+ i0.ɵɵelement(1, "i", 146);
1061
1133
  i0.ɵɵtext(2, " Run Hierarchy ");
1062
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Conditional_3_Template, 2, 1, "span", 71);
1134
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_1_Conditional_3_Template, 2, 1, "span", 84);
1063
1135
  i0.ɵɵelementEnd();
1064
1136
  } if (rf & 2) {
1065
1137
  const ctx_r1 = i0.ɵɵnextContext(3);
1066
1138
  i0.ɵɵadvance(3);
1067
1139
  i0.ɵɵconditional(ctx_r1.childRuns.length > 0 ? 3 : -1);
1068
1140
  } }
1069
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1070
- const _r16 = i0.ɵɵgetCurrentView();
1071
- i0.ɵɵelementStart(0, "div", 133)(1, "h4");
1072
- i0.ɵɵelement(2, "i", 37);
1141
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1142
+ const _r17 = i0.ɵɵgetCurrentView();
1143
+ i0.ɵɵelementStart(0, "div", 147)(1, "h4");
1144
+ i0.ɵɵelement(2, "i", 48);
1073
1145
  i0.ɵɵtext(3, " Parent Run");
1074
1146
  i0.ɵɵelementEnd();
1075
- i0.ɵɵelementStart(4, "div", 135);
1076
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_1_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompt Runs", ctx_r1.parentRun.ID)); });
1077
- i0.ɵɵelementStart(5, "div", 136);
1147
+ i0.ɵɵelementStart(4, "div", 149);
1148
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_1_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompt Runs", ctx_r1.parentRun.ID)); });
1149
+ i0.ɵɵelementStart(5, "div", 150);
1078
1150
  i0.ɵɵelement(6, "i");
1079
1151
  i0.ɵɵelementEnd();
1080
- i0.ɵɵelementStart(7, "div", 137)(8, "div", 138);
1152
+ i0.ɵɵelementStart(7, "div", 151)(8, "div", 152);
1081
1153
  i0.ɵɵtext(9);
1082
- i0.ɵɵelementStart(10, "span", 139);
1154
+ i0.ɵɵelementStart(10, "span", 153);
1083
1155
  i0.ɵɵtext(11);
1084
1156
  i0.ɵɵelementEnd()();
1085
- i0.ɵɵelementStart(12, "div", 140)(13, "span");
1086
- i0.ɵɵelement(14, "i", 45);
1157
+ i0.ɵɵelementStart(12, "div", 154)(13, "span");
1158
+ i0.ɵɵelement(14, "i", 55);
1087
1159
  i0.ɵɵtext(15);
1088
1160
  i0.ɵɵelementEnd();
1089
1161
  i0.ɵɵelementStart(16, "span");
1090
- i0.ɵɵelement(17, "i", 46);
1162
+ i0.ɵɵelement(17, "i", 56);
1091
1163
  i0.ɵɵtext(18);
1092
1164
  i0.ɵɵelementEnd();
1093
1165
  i0.ɵɵelementStart(19, "span");
1094
- i0.ɵɵelement(20, "i", 53);
1166
+ i0.ɵɵelement(20, "i", 63);
1095
1167
  i0.ɵɵtext(21);
1096
1168
  i0.ɵɵpipe(22, "date");
1097
1169
  i0.ɵɵelementEnd()()();
1098
- i0.ɵɵelement(23, "i", 103);
1170
+ i0.ɵɵelement(23, "i", 117);
1099
1171
  i0.ɵɵelementEnd()();
1100
1172
  } if (rf & 2) {
1101
1173
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1114,83 +1186,83 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_temp
1114
1186
  i0.ɵɵadvance(3);
1115
1187
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(22, 9, ctx_r1.parentRun.RunAt, "short"));
1116
1188
  } }
1117
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1118
- i0.ɵɵelementStart(0, "span", 145);
1189
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1190
+ i0.ɵɵelementStart(0, "span", 159);
1119
1191
  i0.ɵɵtext(1);
1120
1192
  i0.ɵɵelementEnd();
1121
1193
  } if (rf & 2) {
1122
- const childRun_r18 = i0.ɵɵnextContext().$implicit;
1194
+ const childRun_r19 = i0.ɵɵnextContext().$implicit;
1123
1195
  i0.ɵɵadvance();
1124
- i0.ɵɵtextInterpolate1("#", childRun_r18.ExecutionOrder);
1196
+ i0.ɵɵtextInterpolate1("#", childRun_r19.ExecutionOrder);
1125
1197
  } }
1126
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_For_6_Template(rf, ctx) { if (rf & 1) {
1127
- const _r17 = i0.ɵɵgetCurrentView();
1128
- i0.ɵɵelementStart(0, "div", 144);
1129
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_For_6_Template_div_click_0_listener() { const childRun_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompt Runs", childRun_r18.ID)); });
1130
- i0.ɵɵelementStart(1, "div", 136);
1198
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_For_6_Template(rf, ctx) { if (rf & 1) {
1199
+ const _r18 = i0.ɵɵgetCurrentView();
1200
+ i0.ɵɵelementStart(0, "div", 158);
1201
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_For_6_Template_div_click_0_listener() { const childRun_r19 = i0.ɵɵrestoreView(_r18).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompt Runs", childRun_r19.ID)); });
1202
+ i0.ɵɵelementStart(1, "div", 150);
1131
1203
  i0.ɵɵelement(2, "i");
1132
1204
  i0.ɵɵelementEnd();
1133
- i0.ɵɵelementStart(3, "div", 137)(4, "div", 138);
1205
+ i0.ɵɵelementStart(3, "div", 151)(4, "div", 152);
1134
1206
  i0.ɵɵtext(5);
1135
- i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_For_6_Conditional_6_Template, 2, 1, "span", 145);
1136
- i0.ɵɵelementStart(7, "span", 139);
1207
+ i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_For_6_Conditional_6_Template, 2, 1, "span", 159);
1208
+ i0.ɵɵelementStart(7, "span", 153);
1137
1209
  i0.ɵɵtext(8);
1138
1210
  i0.ɵɵelementEnd()();
1139
- i0.ɵɵelementStart(9, "div", 140)(10, "span", 146);
1211
+ i0.ɵɵelementStart(9, "div", 154)(10, "span", 16);
1140
1212
  i0.ɵɵelement(11, "i");
1141
1213
  i0.ɵɵtext(12);
1142
1214
  i0.ɵɵelementEnd();
1143
1215
  i0.ɵɵelementStart(13, "span");
1144
- i0.ɵɵelement(14, "i", 45);
1216
+ i0.ɵɵelement(14, "i", 55);
1145
1217
  i0.ɵɵtext(15);
1146
1218
  i0.ɵɵelementEnd();
1147
1219
  i0.ɵɵelementStart(16, "span");
1148
- i0.ɵɵelement(17, "i", 46);
1220
+ i0.ɵɵelement(17, "i", 56);
1149
1221
  i0.ɵɵtext(18);
1150
1222
  i0.ɵɵelementEnd()()();
1151
- i0.ɵɵelement(19, "i", 103);
1223
+ i0.ɵɵelement(19, "i", 117);
1152
1224
  i0.ɵɵelementEnd();
1153
1225
  } if (rf & 2) {
1154
- const childRun_r18 = ctx.$implicit;
1226
+ const childRun_r19 = ctx.$implicit;
1155
1227
  const ctx_r1 = i0.ɵɵnextContext(5);
1156
1228
  i0.ɵɵadvance();
1157
1229
  i0.ɵɵstyleProp("background-color", ctx_r1.getStatusColor() + "20");
1158
1230
  i0.ɵɵadvance();
1159
- i0.ɵɵclassMap("fa-solid " + ctx_r1.getRunTypeIcon(childRun_r18.RunType));
1231
+ i0.ɵɵclassMap("fa-solid " + ctx_r1.getRunTypeIcon(childRun_r19.RunType));
1160
1232
  i0.ɵɵadvance(3);
1161
- i0.ɵɵtextInterpolate1(" Child Run #", childRun_r18.ID.substring(0, 8), " ");
1233
+ i0.ɵɵtextInterpolate1(" Child Run #", childRun_r19.ID.substring(0, 8), " ");
1162
1234
  i0.ɵɵadvance();
1163
- i0.ɵɵconditional(childRun_r18.ExecutionOrder !== null ? 6 : -1);
1235
+ i0.ɵɵconditional(childRun_r19.ExecutionOrder !== null ? 6 : -1);
1164
1236
  i0.ɵɵadvance(2);
1165
- i0.ɵɵtextInterpolate(childRun_r18.RunType);
1237
+ i0.ɵɵtextInterpolate(childRun_r19.RunType);
1166
1238
  i0.ɵɵadvance(2);
1167
1239
  i0.ɵɵstyleProp("color", ctx_r1.getStatusColor());
1168
1240
  i0.ɵɵadvance();
1169
1241
  i0.ɵɵclassMap("fa-solid " + ctx_r1.getStatusIcon());
1170
1242
  i0.ɵɵadvance();
1171
- i0.ɵɵtextInterpolate1(" ", childRun_r18.Success ? "Success" : childRun_r18.ErrorMessage ? "Failed" : "Running", " ");
1243
+ i0.ɵɵtextInterpolate1(" ", childRun_r19.Success ? "Success" : childRun_r19.ErrorMessage ? "Failed" : "Running", " ");
1172
1244
  i0.ɵɵadvance(3);
1173
- i0.ɵɵtextInterpolate1(" ", ctx_r1.formatDuration(childRun_r18.ExecutionTimeMS));
1245
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.formatDuration(childRun_r19.ExecutionTimeMS));
1174
1246
  i0.ɵɵadvance(3);
1175
- i0.ɵɵtextInterpolate1(" ", ctx_r1.formatTokens(childRun_r18.TokensUsed));
1247
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.formatTokens(childRun_r19.TokensUsed));
1176
1248
  } }
1177
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1178
- i0.ɵɵelementStart(0, "div", 134)(1, "h4");
1179
- i0.ɵɵelement(2, "i", 141);
1249
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1250
+ i0.ɵɵelementStart(0, "div", 148)(1, "h4");
1251
+ i0.ɵɵelement(2, "i", 155);
1180
1252
  i0.ɵɵtext(3, " Child Runs");
1181
1253
  i0.ɵɵelementEnd();
1182
- i0.ɵɵelementStart(4, "div", 142);
1183
- i0.ɵɵrepeaterCreate(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_For_6_Template, 20, 14, "div", 143, _forTrack1);
1254
+ i0.ɵɵelementStart(4, "div", 156);
1255
+ i0.ɵɵrepeaterCreate(5, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_For_6_Template, 20, 14, "div", 157, _forTrack1);
1184
1256
  i0.ɵɵelementEnd()();
1185
1257
  } if (rf & 2) {
1186
1258
  const ctx_r1 = i0.ɵɵnextContext(4);
1187
1259
  i0.ɵɵadvance(5);
1188
1260
  i0.ɵɵrepeater(ctx_r1.childRuns);
1189
1261
  } }
1190
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1191
- i0.ɵɵelementStart(0, "div", 56);
1192
- i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_1_Template, 24, 12, "div", 133);
1193
- i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Conditional_2_Template, 7, 0, "div", 134);
1262
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1263
+ i0.ɵɵelementStart(0, "div", 67);
1264
+ i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_1_Template, 24, 12, "div", 147);
1265
+ i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Conditional_2_Template, 7, 0, "div", 148);
1194
1266
  i0.ɵɵelementEnd();
1195
1267
  } if (rf & 2) {
1196
1268
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -1199,41 +1271,41 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_temp
1199
1271
  i0.ɵɵadvance();
1200
1272
  i0.ɵɵconditional(ctx_r1.childRuns.length > 0 ? 2 : -1);
1201
1273
  } }
1202
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_Template(rf, ctx) { if (rf & 1) {
1203
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 29);
1204
- i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_1_Template, 4, 1, "ng-template", 27)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_ng_template_2_Template, 3, 2, "ng-template", 28);
1274
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_Template(rf, ctx) { if (rf & 1) {
1275
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 31);
1276
+ i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_1_Template, 4, 1, "ng-template", 29)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_ng_template_2_Template, 3, 2, "ng-template", 30);
1205
1277
  i0.ɵɵelementEnd();
1206
1278
  } if (rf & 2) {
1207
1279
  const ctx_r1 = i0.ɵɵnextContext(2);
1208
1280
  i0.ɵɵproperty("expanded", ctx_r1.hierarchyExpanded);
1209
1281
  } }
1210
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_43_Template(rf, ctx) { if (rf & 1) {
1211
- i0.ɵɵelementStart(0, "span", 54);
1212
- i0.ɵɵelement(1, "i", 147);
1282
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_46_Template(rf, ctx) { if (rf & 1) {
1283
+ i0.ɵɵelementStart(0, "span", 64);
1284
+ i0.ɵɵelement(1, "i", 160);
1213
1285
  i0.ɵɵtext(2, " Additional Details ");
1214
1286
  i0.ɵɵelementEnd();
1215
1287
  } }
1216
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1217
- const _r19 = i0.ɵɵgetCurrentView();
1218
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1288
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1289
+ const _r20 = i0.ɵɵgetCurrentView();
1290
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1219
1291
  i0.ɵɵtext(2, "Agent");
1220
1292
  i0.ɵɵelementEnd();
1221
- i0.ɵɵelementStart(3, "div", 156);
1222
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_2_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", ctx_r1.record.AgentID)); });
1223
- i0.ɵɵelement(4, "i", 157);
1293
+ i0.ɵɵelementStart(3, "div", 169);
1294
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_2_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Agents", ctx_r1.record.AgentID)); });
1295
+ i0.ɵɵelement(4, "i", 170);
1224
1296
  i0.ɵɵtext(5);
1225
- i0.ɵɵelement(6, "i", 103);
1297
+ i0.ɵɵelement(6, "i", 117);
1226
1298
  i0.ɵɵelementEnd()();
1227
1299
  } if (rf & 2) {
1228
1300
  const ctx_r1 = i0.ɵɵnextContext(3);
1229
1301
  i0.ɵɵadvance(5);
1230
1302
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Agent || "Unknown", " ");
1231
1303
  } }
1232
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1233
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1304
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1305
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1234
1306
  i0.ɵɵtext(2, "Run Type");
1235
1307
  i0.ɵɵelementEnd();
1236
- i0.ɵɵelementStart(3, "div", 150);
1308
+ i0.ɵɵelementStart(3, "div", 163);
1237
1309
  i0.ɵɵelement(4, "i");
1238
1310
  i0.ɵɵtext(5);
1239
1311
  i0.ɵɵelementEnd()();
@@ -1244,12 +1316,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditi
1244
1316
  i0.ɵɵadvance();
1245
1317
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.RunType, " ");
1246
1318
  } }
1247
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1248
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1319
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1320
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1249
1321
  i0.ɵɵtext(2, "Response Format");
1250
1322
  i0.ɵɵelementEnd();
1251
- i0.ɵɵelementStart(3, "div", 150);
1252
- i0.ɵɵelement(4, "i", 52);
1323
+ i0.ɵɵelementStart(3, "div", 163);
1324
+ i0.ɵɵelement(4, "i", 62);
1253
1325
  i0.ɵɵtext(5);
1254
1326
  i0.ɵɵelementEnd()();
1255
1327
  } if (rf & 2) {
@@ -1257,12 +1329,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditi
1257
1329
  i0.ɵɵadvance(5);
1258
1330
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ResponseFormat, " ");
1259
1331
  } }
1260
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1261
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1332
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1333
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1262
1334
  i0.ɵɵtext(2, "Started At");
1263
1335
  i0.ɵɵelementEnd();
1264
- i0.ɵɵelementStart(3, "div", 150);
1265
- i0.ɵɵelement(4, "i", 45);
1336
+ i0.ɵɵelementStart(3, "div", 163);
1337
+ i0.ɵɵelement(4, "i", 55);
1266
1338
  i0.ɵɵtext(5);
1267
1339
  i0.ɵɵpipe(6, "date");
1268
1340
  i0.ɵɵelementEnd()();
@@ -1271,12 +1343,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditi
1271
1343
  i0.ɵɵadvance(5);
1272
1344
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(6, 1, ctx_r1.record.RunAt, "medium"), " ");
1273
1345
  } }
1274
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_60_Template(rf, ctx) { if (rf & 1) {
1275
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1346
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_60_Template(rf, ctx) { if (rf & 1) {
1347
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1276
1348
  i0.ɵɵtext(2, "Completed At");
1277
1349
  i0.ɵɵelementEnd();
1278
- i0.ɵɵelementStart(3, "div", 150);
1279
- i0.ɵɵelement(4, "i", 158);
1350
+ i0.ɵɵelementStart(3, "div", 163);
1351
+ i0.ɵɵelement(4, "i", 171);
1280
1352
  i0.ɵɵtext(5);
1281
1353
  i0.ɵɵpipe(6, "date");
1282
1354
  i0.ɵɵelementEnd()();
@@ -1285,76 +1357,76 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditi
1285
1357
  i0.ɵɵadvance(5);
1286
1358
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(6, 1, ctx_r1.record.CompletedAt, "medium"), " ");
1287
1359
  } }
1288
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Template(rf, ctx) { if (rf & 1) {
1289
- i0.ɵɵelementStart(0, "div", 56)(1, "div", 148);
1290
- i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_2_Template, 7, 1, "div", 149);
1291
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_3_Template, 6, 3, "div", 149);
1292
- i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_4_Template, 6, 1, "div", 149);
1293
- i0.ɵɵelementStart(5, "div", 149)(6, "label");
1360
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Template(rf, ctx) { if (rf & 1) {
1361
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 161);
1362
+ i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_2_Template, 7, 1, "div", 162);
1363
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_3_Template, 6, 3, "div", 162);
1364
+ i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_4_Template, 6, 1, "div", 162);
1365
+ i0.ɵɵelementStart(5, "div", 162)(6, "label");
1294
1366
  i0.ɵɵtext(7, "Temperature");
1295
1367
  i0.ɵɵelementEnd();
1296
- i0.ɵɵelementStart(8, "div", 150);
1297
- i0.ɵɵelement(9, "i", 48);
1368
+ i0.ɵɵelementStart(8, "div", 163);
1369
+ i0.ɵɵelement(9, "i", 58);
1298
1370
  i0.ɵɵtext(10);
1299
1371
  i0.ɵɵelementEnd()();
1300
- i0.ɵɵelementStart(11, "div", 149)(12, "label");
1372
+ i0.ɵɵelementStart(11, "div", 162)(12, "label");
1301
1373
  i0.ɵɵtext(13, "Top P");
1302
1374
  i0.ɵɵelementEnd();
1303
- i0.ɵɵelementStart(14, "div", 150);
1304
- i0.ɵɵelement(15, "i", 49);
1375
+ i0.ɵɵelementStart(14, "div", 163);
1376
+ i0.ɵɵelement(15, "i", 59);
1305
1377
  i0.ɵɵtext(16);
1306
1378
  i0.ɵɵelementEnd()();
1307
- i0.ɵɵelementStart(17, "div", 149)(18, "label");
1379
+ i0.ɵɵelementStart(17, "div", 162)(18, "label");
1308
1380
  i0.ɵɵtext(19, "Top K");
1309
1381
  i0.ɵɵelementEnd();
1310
- i0.ɵɵelementStart(20, "div", 150);
1311
- i0.ɵɵelement(21, "i", 50);
1382
+ i0.ɵɵelementStart(20, "div", 163);
1383
+ i0.ɵɵelement(21, "i", 60);
1312
1384
  i0.ɵɵtext(22);
1313
1385
  i0.ɵɵelementEnd()();
1314
- i0.ɵɵelementStart(23, "div", 149)(24, "label");
1386
+ i0.ɵɵelementStart(23, "div", 162)(24, "label");
1315
1387
  i0.ɵɵtext(25, "Min P");
1316
1388
  i0.ɵɵelementEnd();
1317
- i0.ɵɵelementStart(26, "div", 150);
1318
- i0.ɵɵelement(27, "i", 151);
1389
+ i0.ɵɵelementStart(26, "div", 163);
1390
+ i0.ɵɵelement(27, "i", 164);
1319
1391
  i0.ɵɵtext(28);
1320
1392
  i0.ɵɵelementEnd()();
1321
- i0.ɵɵelementStart(29, "div", 149)(30, "label");
1393
+ i0.ɵɵelementStart(29, "div", 162)(30, "label");
1322
1394
  i0.ɵɵtext(31, "Frequency Penalty");
1323
1395
  i0.ɵɵelementEnd();
1324
- i0.ɵɵelementStart(32, "div", 150);
1325
- i0.ɵɵelement(33, "i", 117);
1396
+ i0.ɵɵelementStart(32, "div", 163);
1397
+ i0.ɵɵelement(33, "i", 131);
1326
1398
  i0.ɵɵtext(34);
1327
1399
  i0.ɵɵelementEnd()();
1328
- i0.ɵɵelementStart(35, "div", 149)(36, "label");
1400
+ i0.ɵɵelementStart(35, "div", 162)(36, "label");
1329
1401
  i0.ɵɵtext(37, "Presence Penalty");
1330
1402
  i0.ɵɵelementEnd();
1331
- i0.ɵɵelementStart(38, "div", 150);
1332
- i0.ɵɵelement(39, "i", 152);
1403
+ i0.ɵɵelementStart(38, "div", 163);
1404
+ i0.ɵɵelement(39, "i", 165);
1333
1405
  i0.ɵɵtext(40);
1334
1406
  i0.ɵɵelementEnd()();
1335
- i0.ɵɵelementStart(41, "div", 149)(42, "label");
1407
+ i0.ɵɵelementStart(41, "div", 162)(42, "label");
1336
1408
  i0.ɵɵtext(43, "Seed");
1337
1409
  i0.ɵɵelementEnd();
1338
- i0.ɵɵelementStart(44, "div", 150);
1339
- i0.ɵɵelement(45, "i", 153);
1410
+ i0.ɵɵelementStart(44, "div", 163);
1411
+ i0.ɵɵelement(45, "i", 166);
1340
1412
  i0.ɵɵtext(46);
1341
1413
  i0.ɵɵelementEnd()();
1342
- i0.ɵɵelementStart(47, "div", 149)(48, "label");
1414
+ i0.ɵɵelementStart(47, "div", 162)(48, "label");
1343
1415
  i0.ɵɵtext(49, "Stop Sequences");
1344
1416
  i0.ɵɵelementEnd();
1345
- i0.ɵɵelementStart(50, "div", 150);
1346
- i0.ɵɵelement(51, "i", 154);
1417
+ i0.ɵɵelementStart(50, "div", 163);
1418
+ i0.ɵɵelement(51, "i", 167);
1347
1419
  i0.ɵɵtext(52);
1348
1420
  i0.ɵɵelementEnd()();
1349
- i0.ɵɵelementStart(53, "div", 149)(54, "label");
1421
+ i0.ɵɵelementStart(53, "div", 162)(54, "label");
1350
1422
  i0.ɵɵtext(55, "Assistant Prefill");
1351
1423
  i0.ɵɵelementEnd();
1352
- i0.ɵɵelementStart(56, "div", 150);
1353
- i0.ɵɵelement(57, "i", 155);
1424
+ i0.ɵɵelementStart(56, "div", 163);
1425
+ i0.ɵɵelement(57, "i", 168);
1354
1426
  i0.ɵɵtext(58);
1355
1427
  i0.ɵɵelementEnd()();
1356
- i0.ɵɵconditionalCreate(59, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_59_Template, 7, 4, "div", 149);
1357
- i0.ɵɵconditionalCreate(60, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Conditional_60_Template, 7, 4, "div", 149);
1428
+ i0.ɵɵconditionalCreate(59, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_59_Template, 7, 4, "div", 162);
1429
+ i0.ɵɵconditionalCreate(60, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_60_Template, 7, 4, "div", 162);
1358
1430
  i0.ɵɵelementEnd()();
1359
1431
  } if (rf & 2) {
1360
1432
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -1405,56 +1477,60 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Templat
1405
1477
  i0.ɵɵadvance();
1406
1478
  i0.ɵɵconditional(ctx_r1.record.CompletedAt ? 60 : -1);
1407
1479
  } }
1408
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1409
- i0.ɵɵelementStart(0, "span", 54);
1410
- i0.ɵɵelement(1, "i", 34);
1480
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_1_Template(rf, ctx) { if (rf & 1) {
1481
+ i0.ɵɵelementStart(0, "span", 64);
1482
+ i0.ɵɵelement(1, "i", 46);
1411
1483
  i0.ɵɵtext(2, " Model Specific Response Details ");
1412
- i0.ɵɵelementStart(3, "span", 55);
1484
+ i0.ɵɵelementStart(3, "span", 66);
1413
1485
  i0.ɵɵtext(4, "JSON");
1414
1486
  i0.ɵɵelementEnd()();
1415
1487
  } }
1416
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1417
- const _r21 = i0.ɵɵgetCurrentView();
1418
- i0.ɵɵelementStart(0, "div", 56)(1, "div", 64)(2, "div", 65)(3, "button", 66);
1419
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_ng_template_2_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedModelSpecificResponseDetails, "Model Specific Response Details")); });
1420
- i0.ɵɵelement(4, "i", 67);
1488
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1489
+ const _r22 = i0.ɵɵgetCurrentView();
1490
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 75)(2, "div", 76)(3, "button", 77);
1491
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.formattedModelSpecificResponseDetails, "Model Specific Response Details")); });
1492
+ i0.ɵɵelement(4, "i", 78);
1421
1493
  i0.ɵɵtext(5, " Copy ");
1494
+ i0.ɵɵelementEnd();
1495
+ i0.ɵɵelementStart(6, "button", 79);
1496
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedModelSpecificResponseDetails, "json", "Model Specific Response Details")); });
1497
+ i0.ɵɵelement(7, "i", 80);
1422
1498
  i0.ɵɵelementEnd()();
1423
- i0.ɵɵelementStart(6, "mj-code-editor", 159);
1424
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_ng_template_2_Template_mj_code_editor_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSpecificResponseDetails, $event) || (ctx_r1.formattedModelSpecificResponseDetails = $event); return i0.ɵɵresetView($event); });
1499
+ i0.ɵɵelementStart(8, "mj-code-editor", 172);
1500
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template_mj_code_editor_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSpecificResponseDetails, $event) || (ctx_r1.formattedModelSpecificResponseDetails = $event); return i0.ɵɵresetView($event); });
1425
1501
  i0.ɵɵelementEnd()()();
1426
1502
  } if (rf & 2) {
1427
1503
  const ctx_r1 = i0.ɵɵnextContext(3);
1428
- i0.ɵɵadvance(6);
1504
+ i0.ɵɵadvance(8);
1429
1505
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedModelSpecificResponseDetails);
1430
1506
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
1431
1507
  } }
1432
- function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_Template(rf, ctx) { if (rf & 1) {
1433
- const _r20 = i0.ɵɵgetCurrentView();
1434
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 26);
1435
- i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_Template_kendo_panelbar_item_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onModelSpecificPanelToggle($event)); });
1436
- i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_ng_template_1_Template, 5, 0, "ng-template", 27)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_ng_template_2_Template, 7, 4, "ng-template", 28);
1508
+ function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_Template(rf, ctx) { if (rf & 1) {
1509
+ const _r21 = i0.ɵɵgetCurrentView();
1510
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 28);
1511
+ i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_Template_kendo_panelbar_item_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onModelSpecificPanelToggle($event)); });
1512
+ i0.ɵɵtemplate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_1_Template, 5, 0, "ng-template", 29)(2, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_ng_template_2_Template, 9, 4, "ng-template", 30);
1437
1513
  i0.ɵɵelementEnd();
1438
1514
  } if (rf & 2) {
1439
1515
  const ctx_r1 = i0.ɵɵnextContext(2);
1440
1516
  i0.ɵɵproperty("expanded", ctx_r1.modelSpecificExpanded);
1441
1517
  } }
1442
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1443
- i0.ɵɵelementStart(0, "span", 105);
1518
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1519
+ i0.ɵɵelementStart(0, "span", 119);
1444
1520
  i0.ɵɵtext(1, "Cached");
1445
1521
  i0.ɵɵelementEnd();
1446
1522
  } }
1447
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1448
- i0.ɵɵelementStart(0, "span", 105);
1523
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1524
+ i0.ɵɵelementStart(0, "span", 119);
1449
1525
  i0.ɵɵtext(1, "Selected");
1450
1526
  i0.ɵɵelementEnd();
1451
1527
  } }
1452
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Template(rf, ctx) { if (rf & 1) {
1453
- i0.ɵɵelementStart(0, "span", 54);
1454
- i0.ɵɵelement(1, "i", 34);
1528
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Template(rf, ctx) { if (rf & 1) {
1529
+ i0.ɵɵelementStart(0, "span", 64);
1530
+ i0.ɵɵelement(1, "i", 46);
1455
1531
  i0.ɵɵtext(2, " Model Selection & Performance ");
1456
- i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_3_Template, 2, 0, "span", 105);
1457
- i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Conditional_4_Template, 2, 0, "span", 105);
1532
+ i0.ɵɵconditionalCreate(3, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Conditional_3_Template, 2, 0, "span", 119);
1533
+ i0.ɵɵconditionalCreate(4, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Conditional_4_Template, 2, 0, "span", 119);
1458
1534
  i0.ɵɵelementEnd();
1459
1535
  } if (rf & 2) {
1460
1536
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -1463,12 +1539,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Templat
1463
1539
  i0.ɵɵadvance();
1464
1540
  i0.ɵɵconditional(ctx_r1.record.WasSelectedResult ? 4 : -1);
1465
1541
  } }
1466
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_26_Template(rf, ctx) { if (rf & 1) {
1467
- i0.ɵɵelementStart(0, "div", 162)(1, "label");
1542
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_26_Template(rf, ctx) { if (rf & 1) {
1543
+ i0.ɵɵelementStart(0, "div", 175)(1, "label");
1468
1544
  i0.ɵɵtext(2, "Cache Key");
1469
1545
  i0.ɵɵelementEnd();
1470
- i0.ɵɵelementStart(3, "div", 150);
1471
- i0.ɵɵelement(4, "i", 165);
1546
+ i0.ɵɵelementStart(3, "div", 163);
1547
+ i0.ɵɵelement(4, "i", 178);
1472
1548
  i0.ɵɵelementStart(5, "code");
1473
1549
  i0.ɵɵtext(6);
1474
1550
  i0.ɵɵelementEnd()()();
@@ -1477,28 +1553,28 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditi
1477
1553
  i0.ɵɵadvance(6);
1478
1554
  i0.ɵɵtextInterpolate(ctx_r1.record.CacheKey);
1479
1555
  } }
1480
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1481
- const _r22 = i0.ɵɵgetCurrentView();
1482
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1556
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1557
+ const _r23 = i0.ɵɵgetCurrentView();
1558
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1483
1559
  i0.ɵɵtext(2, "Judge Prompt");
1484
1560
  i0.ɵɵelementEnd();
1485
- i0.ɵɵelementStart(3, "div", 166);
1486
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_27_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.record.JudgeID)); });
1487
- i0.ɵɵelement(4, "i", 167);
1561
+ i0.ɵɵelementStart(3, "div", 179);
1562
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_27_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.navigateToEntity("MJ: AI Prompts", ctx_r1.record.JudgeID)); });
1563
+ i0.ɵɵelement(4, "i", 180);
1488
1564
  i0.ɵɵtext(5);
1489
- i0.ɵɵelement(6, "i", 103);
1565
+ i0.ɵɵelement(6, "i", 117);
1490
1566
  i0.ɵɵelementEnd()();
1491
1567
  } if (rf & 2) {
1492
1568
  const ctx_r1 = i0.ɵɵnextContext(3);
1493
1569
  i0.ɵɵadvance(5);
1494
1570
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Judge || "Unknown", " ");
1495
1571
  } }
1496
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_28_Template(rf, ctx) { if (rf & 1) {
1497
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1572
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_28_Template(rf, ctx) { if (rf & 1) {
1573
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1498
1574
  i0.ɵɵtext(2, "Judge Score");
1499
1575
  i0.ɵɵelementEnd();
1500
- i0.ɵɵelementStart(3, "div", 150);
1501
- i0.ɵɵelement(4, "i", 168);
1576
+ i0.ɵɵelementStart(3, "div", 163);
1577
+ i0.ɵɵelement(4, "i", 181);
1502
1578
  i0.ɵɵtext(5);
1503
1579
  i0.ɵɵelementEnd()();
1504
1580
  } if (rf & 2) {
@@ -1506,12 +1582,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditi
1506
1582
  i0.ɵɵadvance(5);
1507
1583
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.JudgeScore, " ");
1508
1584
  } }
1509
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_41_Template(rf, ctx) { if (rf & 1) {
1510
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1585
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_41_Template(rf, ctx) { if (rf & 1) {
1586
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1511
1587
  i0.ɵɵtext(2, "First Token Time");
1512
1588
  i0.ɵɵelementEnd();
1513
- i0.ɵɵelementStart(3, "div", 150);
1514
- i0.ɵɵelement(4, "i", 169);
1589
+ i0.ɵɵelementStart(3, "div", 163);
1590
+ i0.ɵɵelement(4, "i", 182);
1515
1591
  i0.ɵɵtext(5);
1516
1592
  i0.ɵɵelementEnd()();
1517
1593
  } if (rf & 2) {
@@ -1519,12 +1595,12 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditi
1519
1595
  i0.ɵɵadvance(5);
1520
1596
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.FirstTokenTime, " ms ");
1521
1597
  } }
1522
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_42_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1523
- i0.ɵɵelementStart(0, "div", 162)(1, "label");
1598
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_42_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1599
+ i0.ɵɵelementStart(0, "div", 175)(1, "label");
1524
1600
  i0.ɵɵtext(2, "Cancellation Reason");
1525
1601
  i0.ɵɵelementEnd();
1526
- i0.ɵɵelementStart(3, "div", 150);
1527
- i0.ɵɵelement(4, "i", 172);
1602
+ i0.ɵɵelementStart(3, "div", 163);
1603
+ i0.ɵɵelement(4, "i", 185);
1528
1604
  i0.ɵɵtext(5);
1529
1605
  i0.ɵɵelementEnd()();
1530
1606
  } if (rf & 2) {
@@ -1532,99 +1608,107 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditi
1532
1608
  i0.ɵɵadvance(5);
1533
1609
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.CancellationReason, " ");
1534
1610
  } }
1535
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_42_Template(rf, ctx) { if (rf & 1) {
1536
- i0.ɵɵelementStart(0, "div", 149)(1, "label");
1611
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_42_Template(rf, ctx) { if (rf & 1) {
1612
+ i0.ɵɵelementStart(0, "div", 162)(1, "label");
1537
1613
  i0.ɵɵtext(2, "Cancelled");
1538
1614
  i0.ɵɵelementEnd();
1539
- i0.ɵɵelementStart(3, "div", 170);
1540
- i0.ɵɵelement(4, "i", 171);
1615
+ i0.ɵɵelementStart(3, "div", 183);
1616
+ i0.ɵɵelement(4, "i", 184);
1541
1617
  i0.ɵɵtext(5, " Yes ");
1542
1618
  i0.ɵɵelementEnd()();
1543
- i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_42_Conditional_6_Template, 6, 1, "div", 162);
1619
+ i0.ɵɵconditionalCreate(6, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_42_Conditional_6_Template, 6, 1, "div", 175);
1544
1620
  } if (rf & 2) {
1545
1621
  const ctx_r1 = i0.ɵɵnextContext(3);
1546
1622
  i0.ɵɵadvance(6);
1547
1623
  i0.ɵɵconditional(ctx_r1.record.CancellationReason ? 6 : -1);
1548
1624
  } }
1549
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_43_Template(rf, ctx) { if (rf & 1) {
1550
- const _r23 = i0.ɵɵgetCurrentView();
1551
- i0.ɵɵelementStart(0, "div", 163)(1, "h4");
1552
- i0.ɵɵtext(2, "Model Selection Details");
1625
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_43_Template(rf, ctx) { if (rf & 1) {
1626
+ const _r24 = i0.ɵɵgetCurrentView();
1627
+ i0.ɵɵelementStart(0, "div", 176)(1, "div", 76)(2, "h4", 100);
1628
+ i0.ɵɵtext(3, "Model Selection Details");
1553
1629
  i0.ɵɵelementEnd();
1554
- i0.ɵɵelementStart(3, "div", 129)(4, "mj-code-editor", 173);
1555
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_43_Template_mj_code_editor_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSelection, $event) || (ctx_r1.formattedModelSelection = $event); return i0.ɵɵresetView($event); });
1630
+ i0.ɵɵelementStart(4, "button", 79);
1631
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_43_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedModelSelection, "json", "Model Selection")); });
1632
+ i0.ɵɵelement(5, "i", 80);
1633
+ i0.ɵɵelementEnd()();
1634
+ i0.ɵɵelementStart(6, "div", 143)(7, "mj-code-editor", 186);
1635
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_43_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedModelSelection, $event) || (ctx_r1.formattedModelSelection = $event); return i0.ɵɵresetView($event); });
1556
1636
  i0.ɵɵelementEnd()()();
1557
1637
  } if (rf & 2) {
1558
1638
  const ctx_r1 = i0.ɵɵnextContext(3);
1559
- i0.ɵɵadvance(4);
1639
+ i0.ɵɵadvance(7);
1560
1640
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedModelSelection);
1561
1641
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
1562
1642
  } }
1563
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_44_Template(rf, ctx) { if (rf & 1) {
1564
- const _r24 = i0.ɵɵgetCurrentView();
1565
- i0.ɵɵelementStart(0, "div", 164)(1, "h4");
1566
- i0.ɵɵtext(2, "Error Details");
1643
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_44_Template(rf, ctx) { if (rf & 1) {
1644
+ const _r25 = i0.ɵɵgetCurrentView();
1645
+ i0.ɵɵelementStart(0, "div", 177)(1, "div", 76)(2, "h4", 100);
1646
+ i0.ɵɵtext(3, "Error Details");
1567
1647
  i0.ɵɵelementEnd();
1568
- i0.ɵɵelementStart(3, "div", 129)(4, "mj-code-editor", 174);
1569
- i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_44_Template_mj_code_editor_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedErrorDetails, $event) || (ctx_r1.formattedErrorDetails = $event); return i0.ɵɵresetView($event); });
1648
+ i0.ɵɵelementStart(4, "button", 79);
1649
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_44_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openFullScreen(ctx_r1.formattedErrorDetails, "json", "Error Details")); });
1650
+ i0.ɵɵelement(5, "i", 80);
1651
+ i0.ɵɵelementEnd()();
1652
+ i0.ɵɵelementStart(6, "div", 143)(7, "mj-code-editor", 187);
1653
+ i0.ɵɵtwoWayListener("ngModelChange", function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_44_Template_mj_code_editor_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedErrorDetails, $event) || (ctx_r1.formattedErrorDetails = $event); return i0.ɵɵresetView($event); });
1570
1654
  i0.ɵɵelementEnd()()();
1571
1655
  } if (rf & 2) {
1572
1656
  const ctx_r1 = i0.ɵɵnextContext(3);
1573
- i0.ɵɵadvance(4);
1657
+ i0.ɵɵadvance(7);
1574
1658
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedErrorDetails);
1575
1659
  i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
1576
1660
  } }
1577
- function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Template(rf, ctx) { if (rf & 1) {
1578
- i0.ɵɵelementStart(0, "div", 56)(1, "div", 148)(2, "div", 149)(3, "label");
1661
+ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Template(rf, ctx) { if (rf & 1) {
1662
+ i0.ɵɵelementStart(0, "div", 67)(1, "div", 161)(2, "div", 162)(3, "label");
1579
1663
  i0.ɵɵtext(4, "Status");
1580
1664
  i0.ɵɵelementEnd();
1581
- i0.ɵɵelementStart(5, "div", 150);
1582
- i0.ɵɵelement(6, "i", 147);
1665
+ i0.ɵɵelementStart(5, "div", 163);
1666
+ i0.ɵɵelement(6, "i", 160);
1583
1667
  i0.ɵɵtext(7);
1584
1668
  i0.ɵɵelementEnd()();
1585
- i0.ɵɵelementStart(8, "div", 149)(9, "label");
1669
+ i0.ɵɵelementStart(8, "div", 162)(9, "label");
1586
1670
  i0.ɵɵtext(10, "Selection Strategy");
1587
1671
  i0.ɵɵelementEnd();
1588
- i0.ɵɵelementStart(11, "div", 150);
1589
- i0.ɵɵelement(12, "i", 160);
1672
+ i0.ɵɵelementStart(11, "div", 163);
1673
+ i0.ɵɵelement(12, "i", 173);
1590
1674
  i0.ɵɵtext(13);
1591
1675
  i0.ɵɵelementEnd()();
1592
- i0.ɵɵelementStart(14, "div", 149)(15, "label");
1676
+ i0.ɵɵelementStart(14, "div", 162)(15, "label");
1593
1677
  i0.ɵɵtext(16, "Model Power Rank");
1594
1678
  i0.ɵɵelementEnd();
1595
- i0.ɵɵelementStart(17, "div", 150);
1596
- i0.ɵɵelement(18, "i", 161);
1679
+ i0.ɵɵelementStart(17, "div", 163);
1680
+ i0.ɵɵelement(18, "i", 174);
1597
1681
  i0.ɵɵtext(19);
1598
1682
  i0.ɵɵelementEnd()();
1599
- i0.ɵɵelementStart(20, "div", 149)(21, "label");
1683
+ i0.ɵɵelementStart(20, "div", 162)(21, "label");
1600
1684
  i0.ɵɵtext(22, "Cache Hit");
1601
1685
  i0.ɵɵelementEnd();
1602
- i0.ɵɵelementStart(23, "div", 150);
1686
+ i0.ɵɵelementStart(23, "div", 163);
1603
1687
  i0.ɵɵelement(24, "i");
1604
1688
  i0.ɵɵtext(25);
1605
1689
  i0.ɵɵelementEnd()();
1606
- i0.ɵɵconditionalCreate(26, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_26_Template, 7, 1, "div", 162);
1607
- i0.ɵɵconditionalCreate(27, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_27_Template, 7, 1, "div", 149);
1608
- i0.ɵɵconditionalCreate(28, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_28_Template, 6, 1, "div", 149);
1609
- i0.ɵɵelementStart(29, "div", 149)(30, "label");
1690
+ i0.ɵɵconditionalCreate(26, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_26_Template, 7, 1, "div", 175);
1691
+ i0.ɵɵconditionalCreate(27, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_27_Template, 7, 1, "div", 162);
1692
+ i0.ɵɵconditionalCreate(28, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_28_Template, 6, 1, "div", 162);
1693
+ i0.ɵɵelementStart(29, "div", 162)(30, "label");
1610
1694
  i0.ɵɵtext(31, "Was Selected Result");
1611
1695
  i0.ɵɵelementEnd();
1612
- i0.ɵɵelementStart(32, "div", 150);
1696
+ i0.ɵɵelementStart(32, "div", 163);
1613
1697
  i0.ɵɵelement(33, "i");
1614
1698
  i0.ɵɵtext(34);
1615
1699
  i0.ɵɵelementEnd()();
1616
- i0.ɵɵelementStart(35, "div", 149)(36, "label");
1700
+ i0.ɵɵelementStart(35, "div", 162)(36, "label");
1617
1701
  i0.ɵɵtext(37, "Streaming Enabled");
1618
1702
  i0.ɵɵelementEnd();
1619
- i0.ɵɵelementStart(38, "div", 150);
1703
+ i0.ɵɵelementStart(38, "div", 163);
1620
1704
  i0.ɵɵelement(39, "i");
1621
1705
  i0.ɵɵtext(40);
1622
1706
  i0.ɵɵelementEnd()();
1623
- i0.ɵɵconditionalCreate(41, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_41_Template, 6, 1, "div", 149);
1624
- i0.ɵɵconditionalCreate(42, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_42_Template, 7, 1);
1707
+ i0.ɵɵconditionalCreate(41, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_41_Template, 6, 1, "div", 162);
1708
+ i0.ɵɵconditionalCreate(42, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_42_Template, 7, 1);
1625
1709
  i0.ɵɵelementEnd();
1626
- i0.ɵɵconditionalCreate(43, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_43_Template, 5, 4, "div", 163);
1627
- i0.ɵɵconditionalCreate(44, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Conditional_44_Template, 5, 4, "div", 164);
1710
+ i0.ɵɵconditionalCreate(43, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_43_Template, 8, 4, "div", 176);
1711
+ i0.ɵɵconditionalCreate(44, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Conditional_44_Template, 8, 4, "div", 177);
1628
1712
  i0.ɵɵelementEnd();
1629
1713
  } if (rf & 2) {
1630
1714
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -1666,56 +1750,58 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Templat
1666
1750
  function MJAIPromptRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1667
1751
  const _r1 = i0.ɵɵgetCurrentView();
1668
1752
  i0.ɵɵelementStart(0, "form", 2, 0);
1669
- i0.ɵɵelement(2, "mj-form-toolbar", 3);
1670
- i0.ɵɵelementStart(3, "div", 4)(4, "div", 5)(5, "div", 6)(6, "div", 7);
1753
+ i0.ɵɵelement(2, "mj-form-toolbar", 4);
1754
+ i0.ɵɵelementStart(3, "div", 5)(4, "div", 6)(5, "div", 7)(6, "div", 8);
1671
1755
  i0.ɵɵelement(7, "i");
1672
1756
  i0.ɵɵelementEnd();
1673
- i0.ɵɵelementStart(8, "div", 8)(9, "h1", 9);
1757
+ i0.ɵɵelementStart(8, "div", 9)(9, "h1", 10);
1674
1758
  i0.ɵɵtext(10, " Prompt Run ");
1675
- i0.ɵɵconditionalCreate(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_11_Template, 2, 1, "span", 10);
1759
+ i0.ɵɵconditionalCreate(11, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_11_Template, 2, 1, "span", 11);
1676
1760
  i0.ɵɵelementEnd();
1677
- i0.ɵɵelementStart(12, "div", 11)(13, "span", 12);
1678
- i0.ɵɵelement(14, "i");
1679
- i0.ɵɵtext(15);
1761
+ i0.ɵɵelementStart(12, "div", 12)(13, "div", 13)(14, "div", 14);
1762
+ i0.ɵɵtext(15, "Status");
1680
1763
  i0.ɵɵelementEnd();
1681
- i0.ɵɵconditionalCreate(16, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_16_Template, 3, 5, "span", 13);
1682
- i0.ɵɵconditionalCreate(17, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_17_Template, 3, 1, "span", 14);
1683
- i0.ɵɵconditionalCreate(18, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_18_Template, 3, 1, "span", 15);
1684
- i0.ɵɵconditionalCreate(19, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_19_Template, 3, 1, "span", 16);
1685
- i0.ɵɵconditionalCreate(20, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_20_Template, 4, 0, "span", 17);
1764
+ i0.ɵɵelementStart(16, "div", 15);
1765
+ i0.ɵɵelement(17, "span", 16)(18, "i");
1766
+ i0.ɵɵtext(19);
1767
+ i0.ɵɵelementEnd()();
1768
+ i0.ɵɵconditionalCreate(20, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_20_Template, 6, 5, "div", 17);
1769
+ i0.ɵɵconditionalCreate(21, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_21_Template, 2, 1);
1770
+ i0.ɵɵconditionalCreate(22, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_22_Template, 8, 2, "div", 18);
1771
+ i0.ɵɵconditionalCreate(23, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_23_Template, 4, 0, "span", 19);
1686
1772
  i0.ɵɵelementEnd()()();
1687
- i0.ɵɵelementStart(21, "div", 18)(22, "button", 19);
1688
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.reRunPrompt()); });
1689
- i0.ɵɵelement(23, "i", 20);
1690
- i0.ɵɵtext(24, " Re-Run ");
1691
- i0.ɵɵelementEnd();
1692
- i0.ɵɵelementStart(25, "button", 21);
1693
- i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_button_click_25_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshData()); });
1773
+ i0.ɵɵelementStart(24, "div", 20)(25, "button", 21);
1774
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_button_click_25_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.reRunPrompt()); });
1694
1775
  i0.ɵɵelement(26, "i", 22);
1776
+ i0.ɵɵtext(27, " Re-Run ");
1777
+ i0.ɵɵelementEnd();
1778
+ i0.ɵɵelementStart(28, "button", 23);
1779
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshData()); });
1780
+ i0.ɵɵelement(29, "i", 24);
1695
1781
  i0.ɵɵelementEnd()()();
1696
- i0.ɵɵconditionalCreate(27, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_27_Template, 37, 10)(28, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_28_Template, 23, 4, "div", 23);
1782
+ i0.ɵɵconditionalCreate(30, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_30_Template, 37, 10)(31, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_31_Template, 23, 4, "div", 25);
1697
1783
  i0.ɵɵelementEnd();
1698
- i0.ɵɵelementStart(29, "div", 24)(30, "kendo-panelbar", 25)(31, "kendo-panelbar-item", 26);
1699
- i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_31_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputPanelToggle($event)); });
1700
- i0.ɵɵtemplate(32, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_32_Template, 4, 1, "ng-template", 27)(33, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_33_Template, 3, 1, "ng-template", 28);
1784
+ i0.ɵɵelementStart(32, "div", 26)(33, "kendo-panelbar", 27)(34, "kendo-panelbar-item", 28);
1785
+ i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_34_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onInputPanelToggle($event)); });
1786
+ i0.ɵɵtemplate(35, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Template, 4, 1, "ng-template", 29)(36, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Template, 3, 1, "ng-template", 30);
1701
1787
  i0.ɵɵelementEnd();
1702
- i0.ɵɵelementStart(34, "kendo-panelbar-item", 26);
1703
- i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_34_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResultPanelToggle($event)); });
1704
- i0.ɵɵtemplate(35, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_35_Template, 5, 2, "ng-template", 27)(36, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_36_Template, 4, 2, "ng-template", 28);
1788
+ i0.ɵɵelementStart(37, "kendo-panelbar-item", 28);
1789
+ i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_37_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onResultPanelToggle($event)); });
1790
+ i0.ɵɵtemplate(38, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Template, 5, 2, "ng-template", 29)(39, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Template, 4, 2, "ng-template", 30);
1705
1791
  i0.ɵɵelementEnd();
1706
- i0.ɵɵelementStart(37, "kendo-panelbar-item", 26);
1707
- i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_37_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMetricsPanelToggle($event)); });
1708
- i0.ɵɵtemplate(38, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_38_Template, 3, 0, "ng-template", 27)(39, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_39_Template, 41, 14, "ng-template", 28);
1792
+ i0.ɵɵelementStart(40, "kendo-panelbar-item", 28);
1793
+ i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_40_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onMetricsPanelToggle($event)); });
1794
+ i0.ɵɵtemplate(41, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_41_Template, 3, 0, "ng-template", 29)(42, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_42_Template, 41, 14, "ng-template", 30);
1709
1795
  i0.ɵɵelementEnd();
1710
- i0.ɵɵconditionalCreate(40, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_40_Template, 3, 1, "kendo-panelbar-item", 29);
1711
- i0.ɵɵconditionalCreate(41, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_41_Template, 3, 1, "kendo-panelbar-item", 29);
1712
- i0.ɵɵelementStart(42, "kendo-panelbar-item", 29);
1713
- i0.ɵɵtemplate(43, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_43_Template, 3, 0, "ng-template", 27)(44, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_44_Template, 61, 32, "ng-template", 28);
1796
+ i0.ɵɵconditionalCreate(43, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_43_Template, 3, 1, "kendo-panelbar-item", 31);
1797
+ i0.ɵɵconditionalCreate(44, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_44_Template, 3, 1, "kendo-panelbar-item", 31);
1798
+ i0.ɵɵelementStart(45, "kendo-panelbar-item", 31);
1799
+ i0.ɵɵtemplate(46, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_46_Template, 3, 0, "ng-template", 29)(47, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Template, 61, 32, "ng-template", 30);
1714
1800
  i0.ɵɵelementEnd();
1715
- i0.ɵɵconditionalCreate(45, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_45_Template, 3, 1, "kendo-panelbar-item", 29);
1716
- i0.ɵɵelementStart(46, "kendo-panelbar-item", 26);
1717
- i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_46_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onModelSelectionPanelToggle($event)); });
1718
- i0.ɵɵtemplate(47, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_47_Template, 5, 2, "ng-template", 27)(48, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_48_Template, 45, 21, "ng-template", 28);
1801
+ i0.ɵɵconditionalCreate(48, MJAIPromptRunFormComponentExtended_Conditional_1_Conditional_48_Template, 3, 1, "kendo-panelbar-item", 31);
1802
+ i0.ɵɵelementStart(49, "kendo-panelbar-item", 28);
1803
+ i0.ɵɵlistener("stateChange", function MJAIPromptRunFormComponentExtended_Conditional_1_Template_kendo_panelbar_item_stateChange_49_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onModelSelectionPanelToggle($event)); });
1804
+ i0.ɵɵtemplate(50, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_50_Template, 5, 2, "ng-template", 29)(51, MJAIPromptRunFormComponentExtended_Conditional_1_ng_template_51_Template, 45, 21, "ng-template", 30);
1719
1805
  i0.ɵɵelementEnd()()()();
1720
1806
  } if (rf & 2) {
1721
1807
  const ctx_r1 = i0.ɵɵnextContext();
@@ -1728,24 +1814,23 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if
1728
1814
  i0.ɵɵstyleProp("color", ctx_r1.getStatusColor());
1729
1815
  i0.ɵɵadvance(4);
1730
1816
  i0.ɵɵconditional(ctx_r1.record.ID ? 11 : -1);
1731
- i0.ɵɵadvance(2);
1817
+ i0.ɵɵadvance(6);
1732
1818
  i0.ɵɵstyleProp("background-color", ctx_r1.getStatusColor());
1733
1819
  i0.ɵɵadvance();
1734
1820
  i0.ɵɵclassMap("fa-solid " + ctx_r1.getStatusIcon());
1821
+ i0.ɵɵstyleProp("color", ctx_r1.getStatusColor());
1735
1822
  i0.ɵɵadvance();
1736
1823
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getStatusText(), " ");
1737
1824
  i0.ɵɵadvance();
1738
- i0.ɵɵconditional(ctx_r1.record.RunType ? 16 : -1);
1825
+ i0.ɵɵconditional(ctx_r1.record.RunType ? 20 : -1);
1739
1826
  i0.ɵɵadvance();
1740
- i0.ɵɵconditional(ctx_r1.prompt ? 17 : -1);
1827
+ i0.ɵɵconditional(ctx_r1.prompt ? 21 : -1);
1741
1828
  i0.ɵɵadvance();
1742
- i0.ɵɵconditional(ctx_r1.model ? 18 : -1);
1829
+ i0.ɵɵconditional(ctx_r1.model ? 22 : -1);
1743
1830
  i0.ɵɵadvance();
1744
- i0.ɵɵconditional(ctx_r1.record.Vendor ? 19 : -1);
1745
- i0.ɵɵadvance();
1746
- i0.ɵɵconditional(ctx_r1.record.RerunFromPromptRunID ? 20 : -1);
1831
+ i0.ɵɵconditional(ctx_r1.record.RerunFromPromptRunID ? 23 : -1);
1747
1832
  i0.ɵɵadvance(7);
1748
- i0.ɵɵconditional(ctx_r1.record.ConfigurationID ? 27 : 28);
1833
+ i0.ɵɵconditional(ctx_r1.record.ConfigurationID ? 30 : 31);
1749
1834
  i0.ɵɵadvance(3);
1750
1835
  i0.ɵɵproperty("keepItemContent", true);
1751
1836
  i0.ɵɵadvance();
@@ -1755,16 +1840,46 @@ function MJAIPromptRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if
1755
1840
  i0.ɵɵadvance(3);
1756
1841
  i0.ɵɵproperty("expanded", ctx_r1.metricsExpanded);
1757
1842
  i0.ɵɵadvance(3);
1758
- i0.ɵɵconditional(ctx_r1.record && (ctx_r1.record.ValidationAttemptCount && ctx_r1.record.ValidationAttemptCount > 0 || ctx_r1.record.ValidationBehavior) ? 40 : -1);
1843
+ i0.ɵɵconditional(ctx_r1.record && (ctx_r1.record.ValidationAttemptCount && ctx_r1.record.ValidationAttemptCount > 0 || ctx_r1.record.ValidationBehavior) ? 43 : -1);
1759
1844
  i0.ɵɵadvance();
1760
- i0.ɵɵconditional(ctx_r1.record.ParentID || ctx_r1.childRuns.length > 0 ? 41 : -1);
1845
+ i0.ɵɵconditional(ctx_r1.record.ParentID || ctx_r1.childRuns.length > 0 ? 44 : -1);
1761
1846
  i0.ɵɵadvance();
1762
1847
  i0.ɵɵproperty("expanded", false);
1763
1848
  i0.ɵɵadvance(3);
1764
- i0.ɵɵconditional(ctx_r1.record.ModelSpecificResponseDetails ? 45 : -1);
1849
+ i0.ɵɵconditional(ctx_r1.record.ModelSpecificResponseDetails ? 48 : -1);
1765
1850
  i0.ɵɵadvance();
1766
1851
  i0.ɵɵproperty("expanded", false);
1767
1852
  } }
1853
+ function MJAIPromptRunFormComponentExtended_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1854
+ const _r26 = i0.ɵɵgetCurrentView();
1855
+ i0.ɵɵelementStart(0, "div", 188);
1856
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeFullScreen()); });
1857
+ i0.ɵɵelementStart(1, "div", 189);
1858
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r26); return i0.ɵɵresetView($event.stopPropagation()); });
1859
+ i0.ɵɵelementStart(2, "div", 190)(3, "span", 191);
1860
+ i0.ɵɵelement(4, "i", 80);
1861
+ i0.ɵɵtext(5);
1862
+ i0.ɵɵelementEnd();
1863
+ i0.ɵɵelementStart(6, "div", 192)(7, "button", 193);
1864
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyToClipboard(ctx_r1.FullScreenContent, ctx_r1.FullScreenTitle)); });
1865
+ i0.ɵɵelement(8, "i", 78);
1866
+ i0.ɵɵtext(9, " Copy ");
1867
+ i0.ɵɵelementEnd();
1868
+ i0.ɵɵelementStart(10, "button", 194);
1869
+ i0.ɵɵlistener("click", function MJAIPromptRunFormComponentExtended_Conditional_2_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeFullScreen()); });
1870
+ i0.ɵɵelement(11, "i", 195);
1871
+ i0.ɵɵtext(12, " Close ");
1872
+ i0.ɵɵelementEnd()()();
1873
+ i0.ɵɵelementStart(13, "div", 196);
1874
+ i0.ɵɵelement(14, "mj-code-editor", 197);
1875
+ i0.ɵɵelementEnd()()();
1876
+ } if (rf & 2) {
1877
+ const ctx_r1 = i0.ɵɵnextContext();
1878
+ i0.ɵɵadvance(5);
1879
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.FullScreenTitle, " ");
1880
+ i0.ɵɵadvance(9);
1881
+ i0.ɵɵproperty("value", ctx_r1.FullScreenContent)("readonly", true)("language", ctx_r1.FullScreenLanguage);
1882
+ } }
1768
1883
  let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtended extends MJAIPromptRunFormComponent {
1769
1884
  constructor() {
1770
1885
  super(...arguments);
@@ -1806,6 +1921,10 @@ let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtende
1806
1921
  // Validation data
1807
1922
  this.validationAttempts = [];
1808
1923
  this.validationSummary = null;
1924
+ // Full-screen overlay state
1925
+ this.FullScreenContent = null;
1926
+ this.FullScreenLanguage = 'json';
1927
+ this.FullScreenTitle = '';
1809
1928
  // Field injections
1810
1929
  this.testHarnessWindowService = inject(TestHarnessWindowService);
1811
1930
  this.viewContainerRef = inject(ViewContainerRef);
@@ -2186,6 +2305,16 @@ let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtende
2186
2305
  this.cdr.detectChanges();
2187
2306
  }
2188
2307
  }
2308
+ openFullScreen(content, language, title) {
2309
+ this.FullScreenContent = content;
2310
+ this.FullScreenLanguage = language;
2311
+ this.FullScreenTitle = title;
2312
+ this.cdr.detectChanges();
2313
+ }
2314
+ closeFullScreen() {
2315
+ this.FullScreenContent = null;
2316
+ this.cdr.detectChanges();
2317
+ }
2189
2318
  loadValidationData() {
2190
2319
  const parseOptions = {
2191
2320
  extractInlineJson: true,
@@ -2229,14 +2358,17 @@ let MJAIPromptRunFormComponentExtended = class MJAIPromptRunFormComponentExtende
2229
2358
  // Don't auto-expand validation panel anymore - let user expand when needed
2230
2359
  }
2231
2360
  static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJAIPromptRunFormComponentExtended_BaseFactory; return function MJAIPromptRunFormComponentExtended_Factory(__ngFactoryType__) { return (ɵMJAIPromptRunFormComponentExtended_BaseFactory || (ɵMJAIPromptRunFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(MJAIPromptRunFormComponentExtended)))(__ngFactoryType__ || MJAIPromptRunFormComponentExtended); }; })(); }
2232
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJAIPromptRunFormComponentExtended, selectors: [["mj-ai-prompt-run-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [["form", "ngForm"], [1, "record-form-container", 2, "height", "100%", "display", "flex", "flex-direction", "column"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [3, "Form"], [1, "prompt-run-header"], [1, "header-content"], [1, "run-overview"], [1, "run-icon-wrapper"], [1, "run-info"], [1, "run-title"], [1, "run-id"], [1, "run-meta"], [1, "status-badge"], [1, "run-type-badge", 3, "color"], ["title", "View Prompt", 1, "prompt-name"], ["title", "View Model", 1, "model-name"], ["title", "View Vendor", 1, "vendor-name"], ["title", "View Original Run", 1, "original-run"], [1, "run-actions"], ["kendoButton", "", "fillMode", "outline", "size", "small", "title", "Re-run this prompt", 3, "click"], [1, "fa-solid", "fa-play-circle"], ["kendoButton", "", "fillMode", "outline", "size", "small", "title", "Refresh data", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "metrics-bar"], [1, "form-content", 2, "display", "flex", "flex-direction", "column", "flex", "1", "min-height", "0", "overflow-y", "auto"], [3, "keepItemContent"], [3, "stateChange", "expanded"], ["kendoPanelBarItemTitle", ""], ["kendoPanelBarContent", ""], [3, "expanded"], [1, "run-type-badge"], ["title", "View Prompt", 1, "prompt-name", 3, "click"], [1, "fa-solid", "fa-comment-dots"], ["title", "View Model", 1, "model-name", 3, "click"], [1, "fa-solid", "fa-microchip"], ["title", "View Vendor", 1, "vendor-name", 3, "click"], [1, "fa-solid", "fa-building"], [1, "fa-solid", "fa-level-up-alt"], [1, "original-link", 3, "click"], [1, "metric-item"], [1, "fa-solid", "fa-cog"], [1, "metric-content"], [1, "metric-label"], [1, "metric-value"], ["href", "javascript:void(0)", 1, "config-link", 3, "click"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-coins"], [1, "fa-solid", "fa-dollar-sign"], [1, "fa-solid", "fa-temperature-high"], [1, "fa-solid", "fa-percentage"], [1, "fa-solid", "fa-list-ol"], [1, "fa-solid", "fa-tachometer-alt"], [1, "fa-solid", "fa-code"], [1, "fa-solid", "fa-calendar"], [1, "panel-title"], [1, "panel-badge"], [1, "panel-content"], [1, "nested-panels"], [1, "empty-state"], [1, "sub-expansion-panel", 3, "expanded", "animation"], ["kendoExpansionPanelTitleDirective", ""], [1, "sub-panel-content"], [1, "loading-state"], [3, "messages"], [1, "json-editor-container"], [1, "json-toolbar"], ["kendoButton", "", "fillMode", "flat", "size", "small", "title", "Copy JSON", 3, "click"], [1, "fa-solid", "fa-copy"], ["name", "formattedMessages", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "sub-panel-title"], [1, "fa-solid", "fa-comments"], [1, "panel-count"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-database"], ["name", "formattedData", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-square-check"], [1, "panel-badge", "error"], [1, "error-message"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["name", "formattedResult", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-inbox"], [1, "error-info"], [1, "finish-reason"], [1, "error-details"], [1, "error-hint"], [2, "height", "200px", "width", "100%", 3, "ngModel", "disabled", "language", "lineWrapping"], [1, "fa-solid", "fa-chart-line"], [1, "metrics-grid"], [1, "metric-card"], [1, "metric-header"], [1, "fa-solid", "fa-message"], [1, "metric-value", "large"], [1, "metric-rollup"], [1, "fa-solid", "fa-reply"], [1, "metric-currency"], [1, "additional-metrics"], [1, "metric-row"], [1, "fa-solid", "fa-hourglass-start"], [1, "fa-solid", "fa-brain"], [1, "fa-solid", "fa-flag-checkered"], [1, "metric-value", "link", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "fa-solid", "fa-shield-check"], [1, "panel-badge", "success"], [1, "validation-summary"], [1, "summary-header"], [1, "validation-status"], [1, "validation-metrics"], [1, "metric-card", "small"], [1, "validation-error"], [1, "common-error"], [1, "retry-timeline"], [1, "validation-attempts"], [1, "validation-json"], [1, "error-count"], [1, "fa-solid", "fa-repeat"], [1, "timeline-info"], [1, "timeline-stat"], [1, "fa-solid", "fa-stopwatch"], [1, "attempts-list"], [1, "attempt-item", 3, "success", "failed"], [1, "attempt-item"], [1, "attempt-number"], [1, "attempt-details"], [1, "attempt-time"], [1, "output-length"], [1, "attempt-error"], [1, "json-viewer-container"], ["name", "formattedValidationSummary", 2, "height", "200px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedValidationAttempts", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-sitemap"], [1, "parent-run-section"], [1, "child-runs-section"], [1, "run-item", "parent", 3, "click"], [1, "run-item-icon"], [1, "run-item-content"], [1, "run-item-title"], [1, "run-item-type"], [1, "run-item-meta"], [1, "fa-solid", "fa-level-down-alt"], [1, "runs-list"], [1, "run-item", "child"], [1, "run-item", "child", 3, "click"], [1, "execution-order"], [1, "status-indicator"], [1, "fa-solid", "fa-info-circle"], [1, "detail-fields-grid"], [1, "detail-field"], [1, "detail-value"], [1, "fa-solid", "fa-filter"], [1, "fa-solid", "fa-plus-circle"], [1, "fa-solid", "fa-seedling"], [1, "fa-solid", "fa-stop-circle"], [1, "fa-solid", "fa-wand-magic-sparkles"], ["title", "View Agent", 1, "detail-value", "clickable", 3, "click"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-check-circle"], ["name", "formattedModelSpecificResponseDetails", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-strategy"], [1, "fa-solid", "fa-ranking-star"], [1, "detail-field", "full-width"], [1, "model-selection-json"], [1, "error-details-json"], [1, "fa-solid", "fa-key"], ["title", "View Judge Prompt", 1, "detail-value", "clickable", 3, "click"], [1, "fa-solid", "fa-gavel"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-bolt"], [1, "detail-value", "error"], [1, "fa-solid", "fa-ban"], [1, "fa-solid", "fa-exclamation-circle"], ["name", "formattedModelSelection", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedErrorDetails", 2, "height", "200px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"]], template: function MJAIPromptRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
2361
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJAIPromptRunFormComponentExtended, selectors: [["mj-ai-prompt-run-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["form", "ngForm"], [1, "record-form-container", 2, "height", "100%", "display", "flex", "flex-direction", "column"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "fullscreen-overlay"], [3, "Form"], [1, "prompt-run-header"], [1, "header-content"], [1, "run-overview"], [1, "run-icon-wrapper"], [1, "run-info"], [1, "run-title"], [1, "run-id"], [1, "run-meta"], [1, "meta-card", "status-card"], [1, "c3-card-label"], [1, "meta-card-body"], [1, "status-indicator"], [1, "meta-card", "execution-card"], [1, "model-card-c3"], ["title", "View Original Run", 1, "original-run"], [1, "run-actions"], ["kendoButton", "", "fillMode", "outline", "size", "small", "title", "Re-run this prompt", 3, "click"], [1, "fa-solid", "fa-play-circle"], ["kendoButton", "", "fillMode", "outline", "size", "small", "title", "Refresh data", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "metrics-bar"], [1, "form-content", 2, "display", "flex", "flex-direction", "column", "flex", "1", "min-height", "0", "overflow-y", "auto"], [3, "keepItemContent"], [3, "stateChange", "expanded"], ["kendoPanelBarItemTitle", ""], ["kendoPanelBarContent", ""], [3, "expanded"], [1, "prompt-card-c3"], [1, "meta-card", "prompt-single-card"], ["title", "View Agent Prompt", 1, "c3-child-section", 3, "click"], [1, "fa-solid", "fa-comment", "prompt-icon"], [1, "c3-divider"], [1, "c3-line"], [1, "c3-divider-label"], ["title", "View System Prompt", 1, "c3-parent-section", 3, "click"], [1, "fa-solid", "fa-cog"], [1, "fa-solid", "fa-arrow-up-right-from-square", "c3-link-icon"], ["title", "View Prompt", 1, "meta-card-body", "clickable", 3, "click"], [1, "fa-solid", "fa-comment-dots", 2, "color", "var(--mj-brand-primary)"], ["title", "View Model", 1, "c3-card-body", 3, "click"], [1, "c3-model-name"], [1, "fa-solid", "fa-microchip"], [1, "c3-vendor-name"], [1, "fa-solid", "fa-level-up-alt"], [1, "original-link", 3, "click"], [1, "metric-item"], [1, "metric-content"], [1, "metric-label"], [1, "metric-value"], ["href", "javascript:void(0)", 1, "config-link", 3, "click"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-coins"], [1, "fa-solid", "fa-dollar-sign"], [1, "fa-solid", "fa-temperature-high"], [1, "fa-solid", "fa-percentage"], [1, "fa-solid", "fa-list-ol"], [1, "fa-solid", "fa-tachometer-alt"], [1, "fa-solid", "fa-code"], [1, "fa-solid", "fa-calendar"], [1, "panel-title"], [1, "fa-solid", "fa-comment-dots"], [1, "panel-badge"], [1, "panel-content"], [1, "nested-panels"], [1, "empty-state"], [1, "sub-expansion-panel", 3, "expanded", "animation"], ["kendoExpansionPanelTitleDirective", ""], [1, "sub-panel-content"], [1, "loading-state"], [3, "messages"], [1, "json-editor-container"], [1, "json-toolbar"], ["kendoButton", "", "fillMode", "flat", "size", "small", "title", "Copy JSON", 3, "click"], [1, "fa-solid", "fa-copy"], ["kendoButton", "", "fillMode", "flat", "size", "small", "title", "View full screen", 3, "click"], [1, "fa-solid", "fa-expand"], ["name", "formattedMessages", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "sub-panel-title"], [1, "fa-solid", "fa-comments"], [1, "panel-count"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-database"], ["name", "formattedData", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-square-check"], [1, "panel-badge", "error"], [1, "error-message"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "error-content"], ["name", "formattedResult", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-inbox"], [1, "error-info"], [1, "finish-reason"], [1, "error-details"], [1, "error-hint"], [2, "margin", "0"], [2, "height", "200px", "width", "100%", 3, "ngModel", "disabled", "language", "lineWrapping"], [1, "fa-solid", "fa-chart-line"], [1, "metrics-grid"], [1, "metric-card"], [1, "metric-header"], [1, "fa-solid", "fa-message"], [1, "metric-value", "large"], [1, "metric-rollup"], [1, "fa-solid", "fa-reply"], [1, "metric-currency"], [1, "additional-metrics"], [1, "metric-row"], [1, "fa-solid", "fa-hourglass-start"], [1, "fa-solid", "fa-brain"], [1, "fa-solid", "fa-flag-checkered"], [1, "metric-value", "link", 3, "click"], [1, "fa-solid", "fa-external-link"], [1, "fa-solid", "fa-shield-check"], [1, "panel-badge", "success"], [1, "validation-summary"], [1, "summary-header"], [1, "validation-status"], [1, "validation-metrics"], [1, "metric-card", "small"], [1, "validation-error"], [1, "common-error"], [1, "retry-timeline"], [1, "validation-attempts"], [1, "validation-json"], [1, "error-count"], [1, "fa-solid", "fa-repeat"], [1, "timeline-info"], [1, "timeline-stat"], [1, "fa-solid", "fa-stopwatch"], [1, "attempts-list"], [1, "attempt-item", 3, "success", "failed"], [1, "attempt-item"], [1, "attempt-number"], [1, "attempt-details"], [1, "attempt-time"], [1, "output-length"], [1, "attempt-error"], [1, "json-viewer-container"], ["name", "formattedValidationSummary", 2, "height", "200px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedValidationAttempts", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-sitemap"], [1, "parent-run-section"], [1, "child-runs-section"], [1, "run-item", "parent", 3, "click"], [1, "run-item-icon"], [1, "run-item-content"], [1, "run-item-title"], [1, "run-item-type"], [1, "run-item-meta"], [1, "fa-solid", "fa-level-down-alt"], [1, "runs-list"], [1, "run-item", "child"], [1, "run-item", "child", 3, "click"], [1, "execution-order"], [1, "fa-solid", "fa-info-circle"], [1, "detail-fields-grid"], [1, "detail-field"], [1, "detail-value"], [1, "fa-solid", "fa-filter"], [1, "fa-solid", "fa-plus-circle"], [1, "fa-solid", "fa-seedling"], [1, "fa-solid", "fa-stop-circle"], [1, "fa-solid", "fa-wand-magic-sparkles"], ["title", "View Agent", 1, "detail-value", "clickable", 3, "click"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-check-circle"], ["name", "formattedModelSpecificResponseDetails", 2, "height", "400px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fa-solid", "fa-strategy"], [1, "fa-solid", "fa-ranking-star"], [1, "detail-field", "full-width"], [1, "model-selection-json"], [1, "error-details-json"], [1, "fa-solid", "fa-key"], ["title", "View Judge Prompt", 1, "detail-value", "clickable", 3, "click"], [1, "fa-solid", "fa-gavel"], [1, "fa-solid", "fa-star"], [1, "fa-solid", "fa-bolt"], [1, "detail-value", "error"], [1, "fa-solid", "fa-ban"], [1, "fa-solid", "fa-exclamation-circle"], ["name", "formattedModelSelection", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedErrorDetails", 2, "height", "200px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fullscreen-overlay", 3, "click"], [1, "fullscreen-container", 3, "click"], [1, "fullscreen-header"], [1, "fullscreen-title"], [1, "fullscreen-actions"], ["kendoButton", "", "fillMode", "flat", "size", "small", "title", "Copy content", 3, "click"], ["kendoButton", "", "fillMode", "flat", "size", "small", "title", "Close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "fullscreen-body"], [2, "height", "100%", "width", "100%", 3, "value", "readonly", "language"]], template: function MJAIPromptRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
2233
2362
  i0.ɵɵelementStart(0, "div", 1);
2234
- i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Template, 49, 28, "form", 2);
2363
+ i0.ɵɵconditionalCreate(1, MJAIPromptRunFormComponentExtended_Conditional_1_Template, 52, 29, "form", 2);
2364
+ i0.ɵɵconditionalCreate(2, MJAIPromptRunFormComponentExtended_Conditional_2_Template, 15, 4, "div", 3);
2235
2365
  i0.ɵɵelementEnd();
2236
2366
  } if (rf & 2) {
2237
2367
  i0.ɵɵadvance();
2238
2368
  i0.ɵɵconditional(ctx.record ? 1 : -1);
2239
- } }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.ExpansionPanelComponent, i2.ExpansionPanelTitleDirective, i2.PanelBarComponent, i2.PanelBarItemComponent, i2.PanelBarContentDirective, i2.PanelBarItemTitleDirective, i3.ButtonComponent, i4.MjFormToolbarComponent, i5.CodeEditorComponent, i6.ChatMessageViewerComponent, i7.DatePipe], styles: ["\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.record-form-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n\n\n.error-info[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details[_ngcontent-%COMP%] {\n margin-top: 12px;\n}\n\n.error-details[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint[_ngcontent-%COMP%] {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n\n\n.prompt-run-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.run-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-title[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n color: white;\n font-size: 0.85em;\n font-weight: 500;\n}\n\n.status-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.9em;\n}\n\n.run-type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: var(--mj-bg-surface-sunken);\n font-size: 0.85em;\n font-weight: 500;\n}\n\n.prompt-name[_ngcontent-%COMP%], .model-name[_ngcontent-%COMP%], .vendor-name[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.85em;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.prompt-name[_ngcontent-%COMP%]:hover, .model-name[_ngcontent-%COMP%]:hover, .vendor-name[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.original-run[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-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.metric-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-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-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n\n\n.sub-panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n margin-bottom: 8px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-card);\n padding: 12px 16px;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item.k-expanded[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] .k-content[_ngcontent-%COMP%] {\n padding: 0;\n background: var(--mj-bg-surface);\n}\n\n\n\n.sub-panel-content[_ngcontent-%COMP%] mj-chat-message-viewer[_ngcontent-%COMP%] {\n display: block;\n min-height: 200px;\n max-height: 750px; \n\n height: auto;\n overflow: hidden;\n}\n\n\n\n.sub-expansion-panel[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-expander {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-expander:hover {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-header {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-content {\n background-color: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n\n\n.error-message[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large[_ngcontent-%COMP%] {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n\n\n.additional-metrics[_ngcontent-%COMP%] {\n padding-top: 16px;\n}\n\n.metric-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n\n\n.parent-run-section[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.parent-run-section[_ngcontent-%COMP%]:last-child, \n.child-runs-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n\n\n.detail-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%]:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n opacity: 0.5;\n}\n\n\n\nkendo-panelbar[_ngcontent-%COMP%] {\n border: none !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default) !important;\n border-radius: 8px !important;\n overflow: hidden;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card) !important;\n border: none !important;\n padding: 12px 16px !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default) !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-content[_ngcontent-%COMP%] {\n border: none !important;\n padding: 0 !important;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.validation-summary[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.summary-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small[_ngcontent-%COMP%] {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count[_ngcontent-%COMP%] {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n\n\n.retry-timeline[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.retry-timeline[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.1em;\n}\n\n\n\n.validation-attempts[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.validation-attempts[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.attempt-details[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.attempt-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n\n\n.validation-json[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.validation-json[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n.panel-badge.success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}"], changeDetection: 0 }); }
2369
+ i0.ɵɵadvance();
2370
+ i0.ɵɵconditional(ctx.FullScreenContent ? 2 : -1);
2371
+ } }, dependencies: [i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.NgForm, i2.ExpansionPanelComponent, i2.ExpansionPanelTitleDirective, i2.PanelBarComponent, i2.PanelBarItemComponent, i2.PanelBarContentDirective, i2.PanelBarItemTitleDirective, i3.ButtonComponent, i4.MjFormToolbarComponent, i5.CodeEditorComponent, i6.ChatMessageViewerComponent, i7.DatePipe], styles: ["\n\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.record-form-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n\n\n.error-info[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details[_ngcontent-%COMP%] {\n margin-top: 12px;\n}\n\n.error-details[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint[_ngcontent-%COMP%] {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n\n\n.prompt-run-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.run-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-title[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: stretch;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n\n\n.meta-card[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n}\n\n.meta-card-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n}\n\n.meta-card-body.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.meta-card-body.clickable[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n\n\n.prompt-card-c3[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.c3-child-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n font-size: 0.92em;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-child-section[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.c3-child-section[_ngcontent-%COMP%] i.prompt-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 1rem;\n}\n\n.c3-divider[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 14px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-line[_ngcontent-%COMP%] {\n flex: 1;\n height: 1px;\n background: var(--mj-border-default);\n}\n\n.c3-divider-label[_ngcontent-%COMP%] {\n font-size: 0.55rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n}\n\n.c3-parent-section[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px 9px 14px;\n font-size: 0.76em;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.c3-parent-section[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.c3-parent-section[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.c3-link-icon[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 0.6rem !important;\n opacity: 0.4;\n}\n\n.c3-parent-section[_ngcontent-%COMP%]:hover .c3-link-icon[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n\n\n.model-card-c3[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: border-color 0.15s;\n}\n\n.model-card-c3[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n}\n\n.c3-card-label[_ngcontent-%COMP%] {\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.c3-card-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.c3-model-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.c3-model-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.c3-vendor-name[_ngcontent-%COMP%] {\n font-size: 0.72em;\n color: var(--mj-text-muted);\n font-weight: 400;\n padding-left: 22px;\n}\n\n.original-run[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-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.metric-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-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-link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n\n\n.form-content[_ngcontent-%COMP%] {\n padding: 16px;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n\n\n.sub-panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n margin-bottom: 8px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-card);\n padding: 12px 16px;\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] > .k-item.k-expanded[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.k-panelbar[_ngcontent-%COMP%] .k-panelbar[_ngcontent-%COMP%] .k-content[_ngcontent-%COMP%] {\n padding: 0;\n background: var(--mj-bg-surface);\n}\n\n\n\n.sub-panel-content[_ngcontent-%COMP%] mj-chat-message-viewer[_ngcontent-%COMP%] {\n display: block;\n min-height: 200px;\n max-height: 750px; \n\n height: auto;\n overflow: hidden;\n}\n\n\n\n.sub-expansion-panel[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-expander {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-expander:hover {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-header {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel[_ngcontent-%COMP%] .k-content {\n background-color: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.panel-badge[_ngcontent-%COMP%] {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n\n\n.error-message[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n}\n\n\n\n.metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large[_ngcontent-%COMP%] {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n\n\n.additional-metrics[_ngcontent-%COMP%] {\n padding-top: 16px;\n}\n\n.metric-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row[_ngcontent-%COMP%] .metric-value.link[_ngcontent-%COMP%]:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n\n\n.parent-run-section[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.parent-run-section[_ngcontent-%COMP%]:last-child, \n.child-runs-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], \n.child-runs-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order[_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n\n\n.detail-fields-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%]:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n opacity: 0.5;\n}\n\n\n\nkendo-panelbar[_ngcontent-%COMP%] {\n border: none !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default) !important;\n border-radius: 8px !important;\n overflow: hidden;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card) !important;\n border: none !important;\n padding: 12px 16px !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default) !important;\n}\n\nkendo-panelbar-item[_ngcontent-%COMP%] .k-panelbar-content[_ngcontent-%COMP%] {\n border: none !important;\n padding: 0 !important;\n max-height: none !important;\n overflow: visible !important;\n}\n\n\n\n.validation-summary[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.summary-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small[_ngcontent-%COMP%] {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%], \n.common-error[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count[_ngcontent-%COMP%] {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n\n\n.retry-timeline[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.retry-timeline[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.1em;\n}\n\n\n\n.validation-attempts[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.validation-attempts[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed[_ngcontent-%COMP%] .attempt-number[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.attempt-details[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.attempt-error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n\n\n.validation-json[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.validation-json[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n.panel-badge.success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.fullscreen-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n z-index: 10000;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.6));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n}\n\n.fullscreen-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n max-width: 95vw;\n max-height: 95vh;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n}\n\n.fullscreen-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.fullscreen-title[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.fullscreen-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.fullscreen-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.fullscreen-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fullscreen-body[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}"], changeDetection: 0 }); }
2240
2372
  };
2241
2373
  MJAIPromptRunFormComponentExtended = __decorate([
2242
2374
  RegisterClass(BaseFormComponent, 'MJ: AI Prompt Runs')
@@ -2244,7 +2376,7 @@ MJAIPromptRunFormComponentExtended = __decorate([
2244
2376
  export { MJAIPromptRunFormComponentExtended };
2245
2377
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJAIPromptRunFormComponentExtended, [{
2246
2378
  type: Component,
2247
- args: [{ standalone: false, selector: 'mj-ai-prompt-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\n\n <!-- Header Section -->\n <div class=\"prompt-run-header\">\n <div class=\"header-content\">\n <div class=\"run-overview\">\n <div class=\"run-icon-wrapper\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n </div>\n <div class=\"run-info\">\n <h1 class=\"run-title\">\n Prompt Run\n @if (record.ID) {\n <span class=\"run-id\">#{{ record.ID.substring(0, 8) }}</span>\n }\n </h1>\n <div class=\"run-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getStatusColor()\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\"></i>\n {{ getStatusText() }}\n </span>\n @if (record.RunType) {\n <span class=\"run-type-badge\" [style.color]=\"getRunTypeColor(record.RunType)\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\"></i>\n {{ record.RunType }}\n </span>\n }\n @if (prompt) {\n <span class=\"prompt-name\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View Prompt\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n {{ prompt.Name }}\n </span>\n }\n @if (model) {\n <span class=\"model-name\" (click)=\"navigateToEntity('MJ: AI Models', model.ID)\" title=\"View Model\">\n <i class=\"fa-solid fa-microchip\"></i>\n {{ model.Name }}\n </span>\n }\n @if (record.Vendor) {\n <span class=\"vendor-name\" (click)=\"navigateToEntity('MJ: AI Vendors', record.VendorID)\" title=\"View Vendor\">\n <i class=\"fa-solid fa-building\"></i>\n {{ record.Vendor }}\n </span>\n }\n @if (record.RerunFromPromptRunID) {\n <span class=\"original-run\" title=\"View Original Run\">\n <i class=\"fa-solid fa-level-up-alt\"></i>\n <a (click)=\"navigateToOriginalRun()\" class=\"original-link\">Original Run</a>\n </span>\n }\n </div>\n </div>\n </div>\n \n <!-- Action Buttons -->\n <div class=\"run-actions\">\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"reRunPrompt()\" title=\"Re-run this prompt\">\n <i class=\"fa-solid fa-play-circle\"></i>\n Re-Run\n </button>\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"refreshData()\" title=\"Refresh data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n \n <!-- Key Metrics Bar -->\n @if (record.ConfigurationID) {\n <!-- Configuration Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Configuration</div>\n <div class=\"metric-value\">\n <a href=\"javascript:void(0)\" class=\"config-link\" (click)=\"navigateToEntity('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n @if (record.Temperature !== null && record.Temperature !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Temperature</div>\n <div class=\"metric-value\">{{ record.Temperature }}</div>\n </div>\n </div>\n }\n @if (record.TopP !== null && record.TopP !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-percentage\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top P</div>\n <div class=\"metric-value\">{{ record.TopP }}</div>\n </div>\n </div>\n }\n @if (record.TopK !== null && record.TopK !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-list-ol\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top K</div>\n <div class=\"metric-value\">{{ record.TopK }}</div>\n </div>\n </div>\n }\n @if (record.EffortLevel !== null && record.EffortLevel !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Effort Level</div>\n <div class=\"metric-value\">{{ record.EffortLevel }}</div>\n </div>\n </div>\n }\n @if (record.ResponseFormat) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-code\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Response Format</div>\n <div class=\"metric-value\">{{ record.ResponseFormat }}</div>\n </div>\n </div>\n }\n </div>\n \n <!-- Execution Metrics Bar (always show when configuration exists) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <!-- Execution Metrics Bar (original behavior when no configuration) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main Content with Expansion Panels -->\n <div class=\"form-content\" style=\"display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto;\">\n <kendo-panelbar [keepItemContent]=\"true\">\n \n <!-- Input Panel with nested sub-panels -->\n <kendo-panelbar-item [expanded]=\"inputExpanded\" (stateChange)=\"onInputPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n Input\n @if (record.Messages && record.Messages.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (record.Messages && record.Messages.trim() !== '') {\n <!-- Nested expansion panels for sub-sections -->\n <div class=\"nested-panels\">\n <!-- Messages Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"messagesExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Messages\n @if (chatMessages.length > 0) {\n <span class=\"panel-count\">({{ chatMessages.length }})</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (isParsingMessages || isLoadingRelatedData) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading messages...</p>\n </div>\n } @else if (chatMessages.length > 0) {\n <mj-chat-message-viewer \n [messages]=\"chatMessages\">\n </mj-chat-message-viewer>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No chat messages found</p>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n \n <!-- Data Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"dataExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-database\"></i>\n Data\n @if (inputData) {\n <span class=\"panel-badge\">Object</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (inputData && formattedData) {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedData, 'Data')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedData\"\n name=\"formattedData\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database\"></i>\n <p>No data object found</p>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n \n <!-- Raw Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"rawExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-code\"></i>\n Raw\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedMessages, 'Messages')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessages\"\n name=\"formattedMessages\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </kendo-expansionpanel>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No input messages recorded</p>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Result Panel -->\n <kendo-panelbar-item [expanded]=\"resultExpanded\" (stateChange)=\"onResultPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-square-check\"></i>\n Result\n @if (record.Result && record.Result.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n @if (record.ErrorMessage) {\n <span class=\"panel-badge error\">Error</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (record.ErrorMessage) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <div class=\"error-content\">\n <h4>Error Message</h4>\n <p>{{ record.ErrorMessage }}</p>\n </div>\n </div>\n }\n \n @if (record.Result && record.Result.trim() !== '') {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedResult, 'Result')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedResult\"\n name=\"formattedResult\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else if (!record.ErrorMessage) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No result data recorded</p>\n @if (record.Status === 'Failed' || record.Success === false) {\n <div class=\"error-info\">\n @if (record.Status) {\n <p class=\"finish-reason\">\n <strong>Status:</strong> {{ record.Status }}\n </p>\n }\n @if (formattedErrorDetails) {\n <div class=\"error-details\">\n <h4>Error Details</h4>\n <mj-code-editor\n [ngModel]=\"formattedErrorDetails\"\n [disabled]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (!formattedErrorDetails) {\n <p class=\"error-hint\">\n The prompt execution failed but no additional error information is available.\n </p>\n }\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Token Usage & Metrics Panel -->\n <kendo-panelbar-item [expanded]=\"metricsExpanded\" (stateChange)=\"onMetricsPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Token Usage & Metrics\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-message\"></i>\n <h4>Prompt Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensPrompt) }}</div>\n @if (record.TokensPromptRollup && record.TokensPromptRollup !== record.TokensPrompt) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensPromptRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-reply\"></i>\n <h4>Completion Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensCompletion) }}</div>\n @if (record.TokensCompletionRollup && record.TokensCompletionRollup !== record.TokensCompletion) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensCompletionRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-coins\"></i>\n <h4>Total Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensUsed) }}</div>\n @if (record.TokensUsedRollup && record.TokensUsedRollup !== record.TokensUsed) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensUsedRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <h4>Cost</h4>\n </div>\n <div class=\"metric-value large\">{{ formatCost(record.Cost) }}</div>\n @if (record.TotalCost && record.TotalCost !== record.Cost) {\n <div class=\"metric-rollup\">\n <span>Total: {{ formatCost(record.TotalCost) }}</span>\n </div>\n }\n @if (record.CostCurrency) {\n <div class=\"metric-currency\">{{ record.CostCurrency }}</div>\n }\n </div>\n \n <!-- Timing Metrics -->\n @if (record.QueueTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-hourglass-start\"></i>\n <h4>Queue Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.QueueTime) }}</div>\n </div>\n }\n \n @if (record.PromptTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>Prompt Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.PromptTime) }}</div>\n </div>\n }\n \n @if (record.CompletionTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <h4>Completion Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.CompletionTime) }}</div>\n </div>\n }\n </div>\n \n <!-- Additional Metrics -->\n <div class=\"additional-metrics\">\n @if (record.ExecutionOrder !== null) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Execution Order:</span>\n <span class=\"metric-value\">{{ record.ExecutionOrder }}</span>\n </div>\n }\n @if (record.AgentID) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Agent:</span>\n <span class=\"metric-value link\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\">\n {{ record.Agent }}\n <i class=\"fa-solid fa-external-link\"></i>\n </span>\n </div>\n }\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Validation & Retry Panel -->\n @if (record && ((record.ValidationAttemptCount && record.ValidationAttemptCount > 0) || record.ValidationBehavior)) {\n <kendo-panelbar-item [expanded]=\"validationExpanded\" (stateChange)=\"onValidationPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Validation & Retries\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <span class=\"panel-count\">({{ record.ValidationAttemptCount }} attempts)</span>\n }\n @if (record.FinalValidationPassed) {\n <span class=\"panel-badge success\">Passed</span>\n } @else if (record.FinalValidationPassed === false) {\n <span class=\"panel-badge error\">Failed</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <!-- Validation Summary -->\n <div class=\"validation-summary\">\n <div class=\"summary-header\">\n <h4>Validation Summary</h4>\n <div class=\"validation-status\" [class.success]=\"record.FinalValidationPassed\" [class.failed]=\"!record.FinalValidationPassed\">\n <i [class]=\"record.FinalValidationPassed ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.FinalValidationPassed ? 'Validation Passed' : 'Validation Failed' }}\n </div>\n </div>\n \n <div class=\"validation-metrics\">\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Total Attempts</div>\n <div class=\"metric-value\">{{ record.ValidationAttemptCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Successful</div>\n <div class=\"metric-value\">{{ record.SuccessfulValidationCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Behavior</div>\n <div class=\"metric-value\">{{ record.ValidationBehavior || 'Not set' }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Retry Strategy</div>\n <div class=\"metric-value\">{{ record.RetryStrategy || 'Not set' }}</div>\n </div>\n </div>\n \n @if (record.FinalValidationError) {\n <div class=\"validation-error\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Final Validation Error</h5>\n <p>{{ record.FinalValidationError }}</p>\n @if (record && record.ValidationErrorCount && record.ValidationErrorCount > 0) {\n <span class=\"error-count\">{{ record.ValidationErrorCount }} validation errors</span>\n }\n </div>\n }\n \n @if (record.CommonValidationError && record.CommonValidationError !== record.FinalValidationError) {\n <div class=\"common-error\">\n <h5><i class=\"fa-solid fa-repeat\"></i> Most Common Error</h5>\n <p>{{ record.CommonValidationError }}</p>\n </div>\n }\n </div>\n \n <!-- Retry Timeline -->\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <div class=\"retry-timeline\">\n <h4>Retry Timeline</h4>\n <div class=\"timeline-info\">\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-clock\"></i>\n <span>First Attempt: {{ record.FirstAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <span>Last Attempt: {{ record.LastAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span>Total Retry Duration: {{ formatDuration(record.TotalRetryDurationMS) }}</span>\n </div>\n </div>\n </div>\n }\n \n <!-- Validation Attempts Details -->\n @if (validationAttempts && validationAttempts.length > 0) {\n <div class=\"validation-attempts\">\n <h4>Validation Attempts</h4>\n <div class=\"attempts-list\">\n @for (attempt of validationAttempts; track attempt.attemptNumber) {\n <div class=\"attempt-item\" [class.success]=\"attempt.success\" [class.failed]=\"!attempt.success\">\n <div class=\"attempt-number\">\n <i [class]=\"attempt.success ? 'fa-solid fa-check' : 'fa-solid fa-times'\"></i>\n Attempt #{{ attempt.attemptNumber }}\n </div>\n <div class=\"attempt-details\">\n <span class=\"attempt-time\">{{ attempt.timestamp }}</span>\n @if (!attempt.success) {\n <span class=\"attempt-error\">{{ attempt.errorMessage || 'Unknown error' }}</span>\n @if (attempt.validationErrorCount > 0) {\n <span class=\"error-count\">({{ attempt.validationErrorCount }} errors)</span>\n }\n }\n @if (attempt.outputLength) {\n <span class=\"output-length\">Output: {{ attempt.outputLength }} chars</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n \n <!-- Validation Summary JSON -->\n @if (validationSummary) {\n <div class=\"validation-json\">\n <h4>Validation Summary Details</h4>\n <div class=\"json-viewer-container\">\n <mj-code-editor \n [(ngModel)]=\"formattedValidationSummary\"\n name=\"formattedValidationSummary\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Validation Attempts JSON -->\n @if (record.ValidationAttempts) {\n <div class=\"validation-json\">\n <h4>Validation Attempts (Raw JSON)</h4>\n <div class=\"json-viewer-container\">\n <mj-code-editor \n [(ngModel)]=\"formattedValidationAttempts\"\n name=\"formattedValidationAttempts\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Hierarchy Panel (for parent/child relationships) -->\n @if (record.ParentID || childRuns.length > 0) {\n <kendo-panelbar-item [expanded]=\"hierarchyExpanded\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Run Hierarchy\n @if (childRuns.length > 0) {\n <span class=\"panel-count\">({{ childRuns.length }} children)</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (parentRun) {\n <div class=\"parent-run-section\">\n <h4><i class=\"fa-solid fa-level-up-alt\"></i> Parent Run</h4>\n <div class=\"run-item parent\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', parentRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(parentRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Parent Run #{{ parentRun.ID.substring(0, 8) }}\n <span class=\"run-item-type\">{{ parentRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(parentRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(parentRun.TokensUsed) }}</span>\n <span><i class=\"fa-solid fa-calendar\"></i> {{ parentRun.RunAt | date:'short' }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (childRuns.length > 0) {\n <div class=\"child-runs-section\">\n <h4><i class=\"fa-solid fa-level-down-alt\"></i> Child Runs</h4>\n <div class=\"runs-list\">\n @for (childRun of childRuns; track childRun.ID) {\n <div class=\"run-item child\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', childRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(childRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Child Run #{{ childRun.ID.substring(0, 8) }}\n @if (childRun.ExecutionOrder !== null) {\n <span class=\"execution-order\">#{{ childRun.ExecutionOrder }}</span>\n }\n <span class=\"run-item-type\">{{ childRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span class=\"status-indicator\" [style.color]=\"getStatusColor()\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\"></i>\n {{ childRun.Success ? 'Success' : childRun.ErrorMessage ? 'Failed' : 'Running' }}\n </span>\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(childRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(childRun.TokensUsed) }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Additional Details Panel -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Additional Details\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n @if (record.AgentID) {\n <div class=\"detail-field\">\n <label>Agent</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\" title=\"View Agent\">\n <i class=\"fa-solid fa-robot\"></i>\n {{ record.Agent || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n \n @if (record.RunType) {\n <div class=\"detail-field\">\n <label>Run Type</label>\n <div class=\"detail-value\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n \n @if (record.ResponseFormat) {\n <div class=\"detail-field\">\n <label>Response Format</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-code\"></i>\n {{ record.ResponseFormat }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Temperature</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Temperature === null || record.Temperature === undefined\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n {{ record.Temperature !== null && record.Temperature !== undefined ? record.Temperature : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopP === null || record.TopP === undefined\">\n <i class=\"fa-solid fa-percentage\"></i>\n {{ record.TopP !== null && record.TopP !== undefined ? record.TopP : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top K</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopK === null || record.TopK === undefined\">\n <i class=\"fa-solid fa-list-ol\"></i>\n {{ record.TopK !== null && record.TopK !== undefined ? record.TopK : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Min P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.MinP === null || record.MinP === undefined\">\n <i class=\"fa-solid fa-filter\"></i>\n {{ record.MinP !== null && record.MinP !== undefined ? record.MinP : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Frequency Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.FrequencyPenalty === null || record.FrequencyPenalty === undefined\">\n <i class=\"fa-solid fa-repeat\"></i>\n {{ record.FrequencyPenalty !== null && record.FrequencyPenalty !== undefined ? record.FrequencyPenalty : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Presence Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.PresencePenalty === null || record.PresencePenalty === undefined\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n {{ record.PresencePenalty !== null && record.PresencePenalty !== undefined ? record.PresencePenalty : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Seed</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Seed === null || record.Seed === undefined\">\n <i class=\"fa-solid fa-seedling\"></i>\n {{ record.Seed !== null && record.Seed !== undefined ? record.Seed : '\u2014' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Stop Sequences</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.StopSequences\">\n <i class=\"fa-solid fa-stop-circle\"></i>\n {{ record.StopSequences || '\u2014' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Assistant Prefill</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.AssistantPrefill\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n {{ record.AssistantPrefill || '\u2014' }}\n </div>\n </div>\n\n @if (record.RunAt) {\n <div class=\"detail-field\">\n <label>Started At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ record.RunAt | date:'medium' }}\n </div>\n </div>\n }\n \n @if (record.CompletedAt) {\n <div class=\"detail-field\">\n <label>Completed At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{ record.CompletedAt | date:'medium' }}\n </div>\n </div>\n }\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Model Specific Response Details Panel -->\n @if (record.ModelSpecificResponseDetails) {\n <kendo-panelbar-item [expanded]=\"modelSpecificExpanded\" (stateChange)=\"onModelSpecificPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Specific Response Details\n <span class=\"panel-badge\">JSON</span>\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedModelSpecificResponseDetails, 'Model Specific Response Details')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedModelSpecificResponseDetails\"\n name=\"formattedModelSpecificResponseDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Model Selection & Performance Panel (v2.78 fields) -->\n <kendo-panelbar-item [expanded]=\"false\" (stateChange)=\"onModelSelectionPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Selection & Performance\n @if (record.CacheHit) {\n <span class=\"panel-badge success\">Cached</span>\n }\n @if (record.WasSelectedResult) {\n <span class=\"panel-badge success\">Selected</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n <!-- Model Selection Details -->\n <div class=\"detail-field\">\n <label>Status</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-info-circle\"></i>\n {{ record.Status || 'Unknown' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Selection Strategy</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-strategy\"></i>\n {{ record.SelectionStrategy || '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Model Power Rank</label>\n <div class=\"detail-value\" [class.null-value]=\"record.ModelPowerRank === null\">\n <i class=\"fa-solid fa-ranking-star\"></i>\n {{ record.ModelPowerRank !== null ? record.ModelPowerRank : '\u2014' }}\n </div>\n </div>\n \n <!-- Cache Information -->\n <div class=\"detail-field\">\n <label>Cache Hit</label>\n <div class=\"detail-value\">\n <i [class]=\"record.CacheHit ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.CacheHit ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.CacheKey) {\n <div class=\"detail-field full-width\">\n <label>Cache Key</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-key\"></i>\n <code>{{ record.CacheKey }}</code>\n </div>\n </div>\n }\n \n <!-- Judge Information -->\n @if (record.JudgeID) {\n <div class=\"detail-field\">\n <label>Judge Prompt</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', record.JudgeID)\" title=\"View Judge Prompt\">\n <i class=\"fa-solid fa-gavel\"></i>\n {{ record.Judge || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (record.JudgeScore !== null) {\n <div class=\"detail-field\">\n <label>Judge Score</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-star\"></i>\n {{ record.JudgeScore }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Was Selected Result</label>\n <div class=\"detail-value\">\n <i [class]=\"record.WasSelectedResult ? 'fa-solid fa-trophy' : 'fa-solid fa-times'\"></i>\n {{ record.WasSelectedResult ? 'Yes' : 'No' }}\n </div>\n </div>\n \n <!-- Performance Metrics -->\n <div class=\"detail-field\">\n <label>Streaming Enabled</label>\n <div class=\"detail-value\">\n <i [class]=\"record.StreamingEnabled ? 'fa-solid fa-stream' : 'fa-solid fa-ban'\"></i>\n {{ record.StreamingEnabled ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.FirstTokenTime !== null) {\n <div class=\"detail-field\">\n <label>First Token Time</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ record.FirstTokenTime }} ms\n </div>\n </div>\n }\n \n @if (record.Cancelled) {\n <div class=\"detail-field\">\n <label>Cancelled</label>\n <div class=\"detail-value error\">\n <i class=\"fa-solid fa-ban\"></i>\n Yes\n </div>\n </div>\n \n @if (record.CancellationReason) {\n <div class=\"detail-field full-width\">\n <label>Cancellation Reason</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{ record.CancellationReason }}\n </div>\n </div>\n }\n }\n </div>\n \n <!-- Model Selection JSON -->\n @if (record.ModelSelection) {\n <div class=\"model-selection-json\">\n <h4>Model Selection Details</h4>\n <div class=\"json-viewer-container\">\n <mj-code-editor \n [(ngModel)]=\"formattedModelSelection\"\n name=\"formattedModelSelection\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Error Details JSON -->\n @if (record.ErrorDetails) {\n <div class=\"error-details-json\">\n <h4>Error Details</h4>\n <div class=\"json-viewer-container\">\n <mj-code-editor \n [(ngModel)]=\"formattedErrorDetails\"\n name=\"formattedErrorDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n </kendo-panelbar>\n </div>\n </form>\n }\n</div>", styles: ["/* Host and Container Layout */\n:host {\n display: block;\n height: 100%;\n}\n\n.record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n/* Error Info Styles */\n.error-info {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details {\n margin-top: 12px;\n}\n\n.error-details h4 {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n/* Header Section */\n.prompt-run-header {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper i {\n font-size: 24px;\n}\n\n.run-info {\n flex: 1;\n min-width: 0;\n}\n\n.run-title {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n color: white;\n font-size: 0.85em;\n font-weight: 500;\n}\n\n.status-badge i {\n font-size: 0.9em;\n}\n\n.run-type-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: var(--mj-bg-surface-sunken);\n font-size: 0.85em;\n font-weight: 500;\n}\n\n.prompt-name, .model-name, .vendor-name {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.85em;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.prompt-name:hover, .model-name:hover, .vendor-name:hover {\n background: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.original-run {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions {\n display: flex;\n gap: 8px;\n}\n\n/* Metrics Bar */\n.metrics-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.metric-content {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n/* Panels */\n.form-content {\n padding: 16px;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n/* Nested Sub-Panel Styles */\n.sub-panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content {\n padding: 0;\n}\n\n/* Nested kendo-panelbar styles */\n.k-panelbar .k-panelbar {\n border: none;\n background: transparent;\n}\n\n.k-panelbar .k-panelbar > .k-item {\n border: 1px solid var(--mj-border-default);\n margin-bottom: 8px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.k-panelbar .k-panelbar > .k-item > .k-link {\n background-color: var(--mj-bg-surface-card);\n padding: 12px 16px;\n}\n\n.k-panelbar .k-panelbar > .k-item.k-expanded > .k-link {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.k-panelbar .k-panelbar .k-content {\n padding: 0;\n background: var(--mj-bg-surface);\n}\n\n/* Ensure chat message viewer takes appropriate height */\n.sub-panel-content mj-chat-message-viewer {\n display: block;\n min-height: 200px;\n max-height: 750px; /* Increased by 50% from 500px */\n height: auto;\n overflow: hidden;\n}\n\n/* Different colors for sub-expansion panels */\n.sub-expansion-panel {\n margin-bottom: 8px;\n}\n\n.sub-expansion-panel::ng-deep .k-expander {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel::ng-deep .k-expander:hover {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.sub-expansion-panel::ng-deep .k-header {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel::ng-deep .k-content {\n background-color: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.panel-badge {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* JSON Editor Container */\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n/* Error Message */\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message i {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content h4 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content p {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Metrics Grid */\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header h4 {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n/* Additional Metrics */\n.additional-metrics {\n padding-top: 16px;\n}\n\n.metric-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row:last-child {\n border-bottom: none;\n}\n\n.metric-row .metric-label {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row .metric-value {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row .metric-value.link {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row .metric-value.link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n/* Hierarchy Section */\n.parent-run-section,\n.child-runs-section {\n margin-bottom: 24px;\n}\n\n.parent-run-section:last-child,\n.child-runs-section:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section h4,\n.child-runs-section h4 {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta span {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator {\n font-weight: 500;\n}\n\n.run-item > i:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n/* Detail Fields Grid */\n.detail-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field label {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value i:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable {\n cursor: pointer;\n}\n\n.detail-value.clickable:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable i:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable:hover i:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value i:first-child {\n opacity: 0.5;\n}\n\n/* Kendo Overrides */\nkendo-panelbar {\n border: none !important;\n}\n\nkendo-panelbar-item {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default) !important;\n border-radius: 8px !important;\n overflow: hidden;\n}\n\nkendo-panelbar-item .k-panelbar-header {\n background: var(--mj-bg-surface-card) !important;\n border: none !important;\n padding: 12px 16px !important;\n}\n\nkendo-panelbar-item .k-panelbar-header:hover {\n background: var(--mj-border-default) !important;\n}\n\nkendo-panelbar-item .k-panelbar-content {\n border: none !important;\n padding: 0 !important;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* Validation Panel Styles */\n.validation-summary {\n margin-bottom: 24px;\n}\n\n.summary-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header h4 {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small .metric-label {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small .metric-value {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error,\n.common-error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error h5,\n.common-error h5 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error p,\n.common-error p {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n/* Retry Timeline */\n.retry-timeline {\n margin-bottom: 24px;\n}\n\n.retry-timeline h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat i {\n font-size: 1.1em;\n}\n\n/* Validation Attempts */\n.validation-attempts {\n margin-bottom: 24px;\n}\n\n.validation-attempts h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success .attempt-number {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed .attempt-number {\n color: var(--mj-status-error);\n}\n\n.attempt-details {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time {\n color: var(--mj-text-muted);\n}\n\n.attempt-error {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* Validation JSON */\n.validation-json {\n margin-top: 24px;\n}\n\n.validation-json h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Panel badge styles */\n.panel-badge.success {\n background: var(--mj-status-success);\n color: white;\n}\n"] }]
2379
+ args: [{ standalone: false, selector: 'mj-ai-prompt-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"record-form-container\" style=\"height: 100%; display: flex; flex-direction: column;\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <mj-form-toolbar [Form]=\"this\"></mj-form-toolbar>\n\n <!-- Header Section -->\n <div class=\"prompt-run-header\">\n <div class=\"header-content\">\n <div class=\"run-overview\">\n <div class=\"run-icon-wrapper\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n </div>\n <div class=\"run-info\">\n <h1 class=\"run-title\">\n Prompt Run\n @if (record.ID) {\n <span class=\"run-id\">#{{ record.ID.substring(0, 8) }}</span>\n }\n </h1>\n <div class=\"run-meta\">\n <!-- Status Card -->\n <div class=\"meta-card status-card\">\n <div class=\"c3-card-label\">Status</div>\n <div class=\"meta-card-body\">\n <span class=\"status-indicator\" [style.background-color]=\"getStatusColor()\"></span>\n <i [class]=\"'fa-solid ' + getStatusIcon()\" [style.color]=\"getStatusColor()\"></i>\n {{ getStatusText() }}\n </div>\n </div>\n\n <!-- Execution Card -->\n @if (record.RunType) {\n <div class=\"meta-card execution-card\">\n <div class=\"c3-card-label\">Execution</div>\n <div class=\"meta-card-body\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\" [style.color]=\"getRunTypeColor(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n\n <!-- Prompt Card -->\n @if (prompt) {\n @if (record.ChildPromptID) {\n <!-- C3 Stacked Connector: child prompt prominent, parent nested -->\n <div class=\"prompt-card-c3\">\n <div class=\"c3-card-label\">Prompt</div>\n <div class=\"c3-child-section\" (click)=\"navigateToEntity('MJ: AI Prompts', record.ChildPromptID)\" title=\"View Agent Prompt\">\n <i class=\"fa-solid fa-comment prompt-icon\"></i>\n {{ record.ChildPrompt }}\n </div>\n <div class=\"c3-divider\">\n <span class=\"c3-line\"></span>\n <span class=\"c3-divider-label\">wrapped by</span>\n <span class=\"c3-line\"></span>\n </div>\n <div class=\"c3-parent-section\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View System Prompt\">\n <i class=\"fa-solid fa-cog\"></i>\n {{ prompt.Name }}\n <i class=\"fa-solid fa-arrow-up-right-from-square c3-link-icon\"></i>\n </div>\n </div>\n } @else {\n <!-- Single prompt (no child) \u2014 same card style -->\n <div class=\"meta-card prompt-single-card\">\n <div class=\"c3-card-label\">Prompt</div>\n <div class=\"meta-card-body clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', prompt.ID)\" title=\"View Prompt\">\n <i class=\"fa-solid fa-comment-dots\" style=\"color: var(--mj-brand-primary);\"></i>\n {{ prompt.Name }}\n </div>\n </div>\n }\n }\n\n <!-- Model Card -->\n @if (model) {\n <div class=\"model-card-c3\">\n <div class=\"c3-card-label\">Model</div>\n <div class=\"c3-card-body\" (click)=\"navigateToEntity('MJ: AI Models', model.ID)\" title=\"View Model\">\n <span class=\"c3-model-name\"><i class=\"fa-solid fa-microchip\"></i> {{ model.Name }}</span>\n @if (record.Vendor) {\n <span class=\"c3-vendor-name\">{{ record.Vendor }}</span>\n }\n </div>\n </div>\n }\n @if (record.RerunFromPromptRunID) {\n <span class=\"original-run\" title=\"View Original Run\">\n <i class=\"fa-solid fa-level-up-alt\"></i>\n <a (click)=\"navigateToOriginalRun()\" class=\"original-link\">Original Run</a>\n </span>\n }\n </div>\n </div>\n </div>\n \n <!-- Action Buttons -->\n <div class=\"run-actions\">\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"reRunPrompt()\" title=\"Re-run this prompt\">\n <i class=\"fa-solid fa-play-circle\"></i>\n Re-Run\n </button>\n <button kendoButton fillMode=\"outline\" size=\"small\" (click)=\"refreshData()\" title=\"Refresh data\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n \n <!-- Key Metrics Bar -->\n @if (record.ConfigurationID) {\n <!-- Configuration Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-cog\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Configuration</div>\n <div class=\"metric-value\">\n <a href=\"javascript:void(0)\" class=\"config-link\" (click)=\"navigateToEntity('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n @if (record.Temperature !== null && record.Temperature !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Temperature</div>\n <div class=\"metric-value\">{{ record.Temperature }}</div>\n </div>\n </div>\n }\n @if (record.TopP !== null && record.TopP !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-percentage\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top P</div>\n <div class=\"metric-value\">{{ record.TopP }}</div>\n </div>\n </div>\n }\n @if (record.TopK !== null && record.TopK !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-list-ol\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Top K</div>\n <div class=\"metric-value\">{{ record.TopK }}</div>\n </div>\n </div>\n }\n @if (record.EffortLevel !== null && record.EffortLevel !== undefined) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-tachometer-alt\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Effort Level</div>\n <div class=\"metric-value\">{{ record.EffortLevel }}</div>\n </div>\n </div>\n }\n @if (record.ResponseFormat) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-code\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Response Format</div>\n <div class=\"metric-value\">{{ record.ResponseFormat }}</div>\n </div>\n </div>\n }\n </div>\n \n <!-- Execution Metrics Bar (always show when configuration exists) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n } @else {\n <!-- Execution Metrics Bar (original behavior when no configuration) -->\n <div class=\"metrics-bar\">\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-clock\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ formatDuration(record.ExecutionTimeMS) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-coins\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Total Tokens</div>\n <div class=\"metric-value\">{{ formatTokens(record.TokensUsed) }}</div>\n </div>\n </div>\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.TotalCost || record.Cost) }}</div>\n </div>\n </div>\n @if (record.RunAt) {\n <div class=\"metric-item\">\n <i class=\"fa-solid fa-calendar\"></i>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Started</div>\n <div class=\"metric-value\">{{ record.RunAt | date:'short' }}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Main Content with Expansion Panels -->\n <div class=\"form-content\" style=\"display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto;\">\n <kendo-panelbar [keepItemContent]=\"true\">\n \n <!-- Input Panel with nested sub-panels -->\n <kendo-panelbar-item [expanded]=\"inputExpanded\" (stateChange)=\"onInputPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-comment-dots\"></i>\n Input\n @if (record.Messages && record.Messages.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (record.Messages && record.Messages.trim() !== '') {\n <!-- Nested expansion panels for sub-sections -->\n <div class=\"nested-panels\">\n <!-- Messages Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"messagesExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Messages\n @if (chatMessages.length > 0) {\n <span class=\"panel-count\">({{ chatMessages.length }})</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (isParsingMessages || isLoadingRelatedData) {\n <div class=\"loading-state\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <p>Loading messages...</p>\n </div>\n } @else if (chatMessages.length > 0) {\n <mj-chat-message-viewer \n [messages]=\"chatMessages\">\n </mj-chat-message-viewer>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No chat messages found</p>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n \n <!-- Data Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"dataExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-database\"></i>\n Data\n @if (inputData) {\n <span class=\"panel-badge\">Object</span>\n }\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n @if (inputData && formattedData) {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"copyToClipboard(formattedData, 'Data')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedData, 'json', 'Data')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedData\"\n name=\"formattedData\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-database\"></i>\n <p>No data object found</p>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n \n <!-- Raw Sub-Panel -->\n <kendo-expansionpanel \n [expanded]=\"rawExpanded\" \n class=\"sub-expansion-panel\"\n [animation]=\"false\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span class=\"sub-panel-title\">\n <i class=\"fa-solid fa-code\"></i>\n Raw\n </span>\n </ng-template>\n <div class=\"sub-panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"copyToClipboard(formattedMessages, 'Messages')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedMessages, 'json', 'Raw Messages')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessages\"\n name=\"formattedMessages\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </kendo-expansionpanel>\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-comment-slash\"></i>\n <p>No input messages recorded</p>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Result Panel -->\n <kendo-panelbar-item [expanded]=\"resultExpanded\" (stateChange)=\"onResultPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-square-check\"></i>\n Result\n @if (record.Result && record.Result.trim() !== '') {\n <span class=\"panel-badge\">JSON</span>\n }\n @if (record.ErrorMessage) {\n <span class=\"panel-badge error\">Error</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (record.ErrorMessage) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <div class=\"error-content\">\n <h4>Error Message</h4>\n <p>{{ record.ErrorMessage }}</p>\n </div>\n </div>\n }\n \n @if (record.Result && record.Result.trim() !== '') {\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedResult, 'Result')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedResult, 'json', 'Result')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedResult\"\n name=\"formattedResult\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else if (!record.ErrorMessage) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No result data recorded</p>\n @if (record.Status === 'Failed' || record.Success === false) {\n <div class=\"error-info\">\n @if (record.Status) {\n <p class=\"finish-reason\">\n <strong>Status:</strong> {{ record.Status }}\n </p>\n }\n @if (formattedErrorDetails) {\n <div class=\"error-details\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Error Details</h4>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedErrorDetails, 'json', 'Error Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor\n [ngModel]=\"formattedErrorDetails\"\n [disabled]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n @if (!formattedErrorDetails) {\n <p class=\"error-hint\">\n The prompt execution failed but no additional error information is available.\n </p>\n }\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Token Usage & Metrics Panel -->\n <kendo-panelbar-item [expanded]=\"metricsExpanded\" (stateChange)=\"onMetricsPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-chart-line\"></i>\n Token Usage & Metrics\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-message\"></i>\n <h4>Prompt Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensPrompt) }}</div>\n @if (record.TokensPromptRollup && record.TokensPromptRollup !== record.TokensPrompt) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensPromptRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-reply\"></i>\n <h4>Completion Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensCompletion) }}</div>\n @if (record.TokensCompletionRollup && record.TokensCompletionRollup !== record.TokensCompletion) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensCompletionRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-coins\"></i>\n <h4>Total Tokens</h4>\n </div>\n <div class=\"metric-value large\">{{ formatTokens(record.TokensUsed) }}</div>\n @if (record.TokensUsedRollup && record.TokensUsedRollup !== record.TokensUsed) {\n <div class=\"metric-rollup\">\n <span>Rollup: {{ formatTokens(record.TokensUsedRollup) }}</span>\n </div>\n }\n </div>\n \n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-dollar-sign\"></i>\n <h4>Cost</h4>\n </div>\n <div class=\"metric-value large\">{{ formatCost(record.Cost) }}</div>\n @if (record.TotalCost && record.TotalCost !== record.Cost) {\n <div class=\"metric-rollup\">\n <span>Total: {{ formatCost(record.TotalCost) }}</span>\n </div>\n }\n @if (record.CostCurrency) {\n <div class=\"metric-currency\">{{ record.CostCurrency }}</div>\n }\n </div>\n \n <!-- Timing Metrics -->\n @if (record.QueueTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-hourglass-start\"></i>\n <h4>Queue Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.QueueTime) }}</div>\n </div>\n }\n \n @if (record.PromptTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-brain\"></i>\n <h4>Prompt Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.PromptTime) }}</div>\n </div>\n }\n \n @if (record.CompletionTime != null) {\n <div class=\"metric-card\">\n <div class=\"metric-header\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <h4>Completion Time</h4>\n </div>\n <div class=\"metric-value large\">{{ formatDuration(record.CompletionTime) }}</div>\n </div>\n }\n </div>\n \n <!-- Additional Metrics -->\n <div class=\"additional-metrics\">\n @if (record.ExecutionOrder !== null) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Execution Order:</span>\n <span class=\"metric-value\">{{ record.ExecutionOrder }}</span>\n </div>\n }\n @if (record.AgentID) {\n <div class=\"metric-row\">\n <span class=\"metric-label\">Agent:</span>\n <span class=\"metric-value link\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\">\n {{ record.Agent }}\n <i class=\"fa-solid fa-external-link\"></i>\n </span>\n </div>\n }\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Validation & Retry Panel -->\n @if (record && ((record.ValidationAttemptCount && record.ValidationAttemptCount > 0) || record.ValidationBehavior)) {\n <kendo-panelbar-item [expanded]=\"validationExpanded\" (stateChange)=\"onValidationPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-shield-check\"></i>\n Validation & Retries\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <span class=\"panel-count\">({{ record.ValidationAttemptCount }} attempts)</span>\n }\n @if (record.FinalValidationPassed) {\n <span class=\"panel-badge success\">Passed</span>\n } @else if (record.FinalValidationPassed === false) {\n <span class=\"panel-badge error\">Failed</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <!-- Validation Summary -->\n <div class=\"validation-summary\">\n <div class=\"summary-header\">\n <h4>Validation Summary</h4>\n <div class=\"validation-status\" [class.success]=\"record.FinalValidationPassed\" [class.failed]=\"!record.FinalValidationPassed\">\n <i [class]=\"record.FinalValidationPassed ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.FinalValidationPassed ? 'Validation Passed' : 'Validation Failed' }}\n </div>\n </div>\n \n <div class=\"validation-metrics\">\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Total Attempts</div>\n <div class=\"metric-value\">{{ record.ValidationAttemptCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Successful</div>\n <div class=\"metric-value\">{{ record.SuccessfulValidationCount || 0 }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Behavior</div>\n <div class=\"metric-value\">{{ record.ValidationBehavior || 'Not set' }}</div>\n </div>\n <div class=\"metric-card small\">\n <div class=\"metric-label\">Retry Strategy</div>\n <div class=\"metric-value\">{{ record.RetryStrategy || 'Not set' }}</div>\n </div>\n </div>\n \n @if (record.FinalValidationError) {\n <div class=\"validation-error\">\n <h5><i class=\"fa-solid fa-exclamation-triangle\"></i> Final Validation Error</h5>\n <p>{{ record.FinalValidationError }}</p>\n @if (record && record.ValidationErrorCount && record.ValidationErrorCount > 0) {\n <span class=\"error-count\">{{ record.ValidationErrorCount }} validation errors</span>\n }\n </div>\n }\n \n @if (record.CommonValidationError && record.CommonValidationError !== record.FinalValidationError) {\n <div class=\"common-error\">\n <h5><i class=\"fa-solid fa-repeat\"></i> Most Common Error</h5>\n <p>{{ record.CommonValidationError }}</p>\n </div>\n }\n </div>\n \n <!-- Retry Timeline -->\n @if (record && record.ValidationAttemptCount && record.ValidationAttemptCount > 1) {\n <div class=\"retry-timeline\">\n <h4>Retry Timeline</h4>\n <div class=\"timeline-info\">\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-clock\"></i>\n <span>First Attempt: {{ record.FirstAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-flag-checkered\"></i>\n <span>Last Attempt: {{ record.LastAttemptAt | date:'short' }}</span>\n </div>\n <div class=\"timeline-stat\">\n <i class=\"fa-solid fa-stopwatch\"></i>\n <span>Total Retry Duration: {{ formatDuration(record.TotalRetryDurationMS) }}</span>\n </div>\n </div>\n </div>\n }\n \n <!-- Validation Attempts Details -->\n @if (validationAttempts && validationAttempts.length > 0) {\n <div class=\"validation-attempts\">\n <h4>Validation Attempts</h4>\n <div class=\"attempts-list\">\n @for (attempt of validationAttempts; track attempt.attemptNumber) {\n <div class=\"attempt-item\" [class.success]=\"attempt.success\" [class.failed]=\"!attempt.success\">\n <div class=\"attempt-number\">\n <i [class]=\"attempt.success ? 'fa-solid fa-check' : 'fa-solid fa-times'\"></i>\n Attempt #{{ attempt.attemptNumber }}\n </div>\n <div class=\"attempt-details\">\n <span class=\"attempt-time\">{{ attempt.timestamp }}</span>\n @if (!attempt.success) {\n <span class=\"attempt-error\">{{ attempt.errorMessage || 'Unknown error' }}</span>\n @if (attempt.validationErrorCount > 0) {\n <span class=\"error-count\">({{ attempt.validationErrorCount }} errors)</span>\n }\n }\n @if (attempt.outputLength) {\n <span class=\"output-length\">Output: {{ attempt.outputLength }} chars</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n \n <!-- Validation Summary JSON -->\n @if (validationSummary) {\n <div class=\"validation-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Validation Summary Details</h4>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedValidationSummary, 'json', 'Validation Summary')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedValidationSummary\"\n name=\"formattedValidationSummary\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Validation Attempts JSON -->\n @if (record.ValidationAttempts) {\n <div class=\"validation-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Validation Attempts (Raw JSON)</h4>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedValidationAttempts, 'json', 'Validation Attempts')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedValidationAttempts\"\n name=\"formattedValidationAttempts\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Hierarchy Panel (for parent/child relationships) -->\n @if (record.ParentID || childRuns.length > 0) {\n <kendo-panelbar-item [expanded]=\"hierarchyExpanded\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-sitemap\"></i>\n Run Hierarchy\n @if (childRuns.length > 0) {\n <span class=\"panel-count\">({{ childRuns.length }} children)</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n @if (parentRun) {\n <div class=\"parent-run-section\">\n <h4><i class=\"fa-solid fa-level-up-alt\"></i> Parent Run</h4>\n <div class=\"run-item parent\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', parentRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(parentRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Parent Run #{{ parentRun.ID.substring(0, 8) }}\n <span class=\"run-item-type\">{{ parentRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(parentRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(parentRun.TokensUsed) }}</span>\n <span><i class=\"fa-solid fa-calendar\"></i> {{ parentRun.RunAt | date:'short' }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (childRuns.length > 0) {\n <div class=\"child-runs-section\">\n <h4><i class=\"fa-solid fa-level-down-alt\"></i> Child Runs</h4>\n <div class=\"runs-list\">\n @for (childRun of childRuns; track childRun.ID) {\n <div class=\"run-item child\" (click)=\"navigateToEntity('MJ: AI Prompt Runs', childRun.ID)\">\n <div class=\"run-item-icon\" [style.background-color]=\"getStatusColor() + '20'\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(childRun.RunType)\"></i>\n </div>\n <div class=\"run-item-content\">\n <div class=\"run-item-title\">\n Child Run #{{ childRun.ID.substring(0, 8) }}\n @if (childRun.ExecutionOrder !== null) {\n <span class=\"execution-order\">#{{ childRun.ExecutionOrder }}</span>\n }\n <span class=\"run-item-type\">{{ childRun.RunType }}</span>\n </div>\n <div class=\"run-item-meta\">\n <span class=\"status-indicator\" [style.color]=\"getStatusColor()\">\n <i [class]=\"'fa-solid ' + getStatusIcon()\"></i>\n {{ childRun.Success ? 'Success' : childRun.ErrorMessage ? 'Failed' : 'Running' }}\n </span>\n <span><i class=\"fa-solid fa-clock\"></i> {{ formatDuration(childRun.ExecutionTimeMS) }}</span>\n <span><i class=\"fa-solid fa-coins\"></i> {{ formatTokens(childRun.TokensUsed) }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Additional Details Panel -->\n <kendo-panelbar-item [expanded]=\"false\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Additional Details\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n @if (record.AgentID) {\n <div class=\"detail-field\">\n <label>Agent</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Agents', record.AgentID)\" title=\"View Agent\">\n <i class=\"fa-solid fa-robot\"></i>\n {{ record.Agent || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n \n @if (record.RunType) {\n <div class=\"detail-field\">\n <label>Run Type</label>\n <div class=\"detail-value\">\n <i [class]=\"'fa-solid ' + getRunTypeIcon(record.RunType)\"></i>\n {{ record.RunType }}\n </div>\n </div>\n }\n \n @if (record.ResponseFormat) {\n <div class=\"detail-field\">\n <label>Response Format</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-code\"></i>\n {{ record.ResponseFormat }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Temperature</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Temperature === null || record.Temperature === undefined\">\n <i class=\"fa-solid fa-temperature-high\"></i>\n {{ record.Temperature !== null && record.Temperature !== undefined ? record.Temperature : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopP === null || record.TopP === undefined\">\n <i class=\"fa-solid fa-percentage\"></i>\n {{ record.TopP !== null && record.TopP !== undefined ? record.TopP : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Top K</label>\n <div class=\"detail-value\" [class.null-value]=\"record.TopK === null || record.TopK === undefined\">\n <i class=\"fa-solid fa-list-ol\"></i>\n {{ record.TopK !== null && record.TopK !== undefined ? record.TopK : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Min P</label>\n <div class=\"detail-value\" [class.null-value]=\"record.MinP === null || record.MinP === undefined\">\n <i class=\"fa-solid fa-filter\"></i>\n {{ record.MinP !== null && record.MinP !== undefined ? record.MinP : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Frequency Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.FrequencyPenalty === null || record.FrequencyPenalty === undefined\">\n <i class=\"fa-solid fa-repeat\"></i>\n {{ record.FrequencyPenalty !== null && record.FrequencyPenalty !== undefined ? record.FrequencyPenalty : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Presence Penalty</label>\n <div class=\"detail-value\" [class.null-value]=\"record.PresencePenalty === null || record.PresencePenalty === undefined\">\n <i class=\"fa-solid fa-plus-circle\"></i>\n {{ record.PresencePenalty !== null && record.PresencePenalty !== undefined ? record.PresencePenalty : '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Seed</label>\n <div class=\"detail-value\" [class.null-value]=\"record.Seed === null || record.Seed === undefined\">\n <i class=\"fa-solid fa-seedling\"></i>\n {{ record.Seed !== null && record.Seed !== undefined ? record.Seed : '\u2014' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Stop Sequences</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.StopSequences\">\n <i class=\"fa-solid fa-stop-circle\"></i>\n {{ record.StopSequences || '\u2014' }}\n </div>\n </div>\n\n <div class=\"detail-field\">\n <label>Assistant Prefill</label>\n <div class=\"detail-value\" [class.null-value]=\"!record.AssistantPrefill\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n {{ record.AssistantPrefill || '\u2014' }}\n </div>\n </div>\n\n @if (record.RunAt) {\n <div class=\"detail-field\">\n <label>Started At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ record.RunAt | date:'medium' }}\n </div>\n </div>\n }\n \n @if (record.CompletedAt) {\n <div class=\"detail-field\">\n <label>Completed At</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-check-circle\"></i>\n {{ record.CompletedAt | date:'medium' }}\n </div>\n </div>\n }\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <!-- Model Specific Response Details Panel -->\n @if (record.ModelSpecificResponseDetails) {\n <kendo-panelbar-item [expanded]=\"modelSpecificExpanded\" (stateChange)=\"onModelSpecificPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Specific Response Details\n <span class=\"panel-badge\">JSON</span>\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"json-editor-container\">\n <div class=\"json-toolbar\">\n <button kendoButton\n fillMode=\"flat\" \n size=\"small\"\n (click)=\"copyToClipboard(formattedModelSpecificResponseDetails, 'Model Specific Response Details')\"\n title=\"Copy JSON\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedModelSpecificResponseDetails, 'json', 'Model Specific Response Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedModelSpecificResponseDetails\"\n name=\"formattedModelSpecificResponseDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 400px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n \n <!-- Model Selection & Performance Panel (v2.78 fields) -->\n <kendo-panelbar-item [expanded]=\"false\" (stateChange)=\"onModelSelectionPanelToggle($event)\">\n <ng-template kendoPanelBarItemTitle>\n <span class=\"panel-title\">\n <i class=\"fa-solid fa-microchip\"></i>\n Model Selection & Performance\n @if (record.CacheHit) {\n <span class=\"panel-badge success\">Cached</span>\n }\n @if (record.WasSelectedResult) {\n <span class=\"panel-badge success\">Selected</span>\n }\n </span>\n </ng-template>\n <ng-template kendoPanelBarContent>\n <div class=\"panel-content\">\n <div class=\"detail-fields-grid\">\n <!-- Model Selection Details -->\n <div class=\"detail-field\">\n <label>Status</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-info-circle\"></i>\n {{ record.Status || 'Unknown' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Selection Strategy</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-strategy\"></i>\n {{ record.SelectionStrategy || '\u2014' }}\n </div>\n </div>\n \n <div class=\"detail-field\">\n <label>Model Power Rank</label>\n <div class=\"detail-value\" [class.null-value]=\"record.ModelPowerRank === null\">\n <i class=\"fa-solid fa-ranking-star\"></i>\n {{ record.ModelPowerRank !== null ? record.ModelPowerRank : '\u2014' }}\n </div>\n </div>\n \n <!-- Cache Information -->\n <div class=\"detail-field\">\n <label>Cache Hit</label>\n <div class=\"detail-value\">\n <i [class]=\"record.CacheHit ? 'fa-solid fa-check-circle' : 'fa-solid fa-times-circle'\"></i>\n {{ record.CacheHit ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.CacheKey) {\n <div class=\"detail-field full-width\">\n <label>Cache Key</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-key\"></i>\n <code>{{ record.CacheKey }}</code>\n </div>\n </div>\n }\n \n <!-- Judge Information -->\n @if (record.JudgeID) {\n <div class=\"detail-field\">\n <label>Judge Prompt</label>\n <div class=\"detail-value clickable\" (click)=\"navigateToEntity('MJ: AI Prompts', record.JudgeID)\" title=\"View Judge Prompt\">\n <i class=\"fa-solid fa-gavel\"></i>\n {{ record.Judge || 'Unknown' }}\n <i class=\"fa-solid fa-external-link\"></i>\n </div>\n </div>\n }\n \n @if (record.JudgeScore !== null) {\n <div class=\"detail-field\">\n <label>Judge Score</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-star\"></i>\n {{ record.JudgeScore }}\n </div>\n </div>\n }\n \n <div class=\"detail-field\">\n <label>Was Selected Result</label>\n <div class=\"detail-value\">\n <i [class]=\"record.WasSelectedResult ? 'fa-solid fa-trophy' : 'fa-solid fa-times'\"></i>\n {{ record.WasSelectedResult ? 'Yes' : 'No' }}\n </div>\n </div>\n \n <!-- Performance Metrics -->\n <div class=\"detail-field\">\n <label>Streaming Enabled</label>\n <div class=\"detail-value\">\n <i [class]=\"record.StreamingEnabled ? 'fa-solid fa-stream' : 'fa-solid fa-ban'\"></i>\n {{ record.StreamingEnabled ? 'Yes' : 'No' }}\n </div>\n </div>\n \n @if (record.FirstTokenTime !== null) {\n <div class=\"detail-field\">\n <label>First Token Time</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ record.FirstTokenTime }} ms\n </div>\n </div>\n }\n \n @if (record.Cancelled) {\n <div class=\"detail-field\">\n <label>Cancelled</label>\n <div class=\"detail-value error\">\n <i class=\"fa-solid fa-ban\"></i>\n Yes\n </div>\n </div>\n \n @if (record.CancellationReason) {\n <div class=\"detail-field full-width\">\n <label>Cancellation Reason</label>\n <div class=\"detail-value\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n {{ record.CancellationReason }}\n </div>\n </div>\n }\n }\n </div>\n \n <!-- Model Selection JSON -->\n @if (record.ModelSelection) {\n <div class=\"model-selection-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Model Selection Details</h4>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedModelSelection, 'json', 'Model Selection')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedModelSelection\"\n name=\"formattedModelSelection\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n \n <!-- Error Details JSON -->\n @if (record.ErrorDetails) {\n <div class=\"error-details-json\">\n <div class=\"json-toolbar\">\n <h4 style=\"margin: 0;\">Error Details</h4>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"openFullScreen(formattedErrorDetails, 'json', 'Error Details')\"\n title=\"View full screen\">\n <i class=\"fa-solid fa-expand\"></i>\n </button>\n </div>\n <div class=\"json-viewer-container\">\n <mj-code-editor\n [(ngModel)]=\"formattedErrorDetails\"\n name=\"formattedErrorDetails\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 200px; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n </kendo-panelbar>\n </div>\n </form>\n }\n\n <!-- Full-screen overlay -->\n @if (FullScreenContent) {\n <div class=\"fullscreen-overlay\" (click)=\"closeFullScreen()\">\n <div class=\"fullscreen-container\" (click)=\"$event.stopPropagation()\">\n <div class=\"fullscreen-header\">\n <span class=\"fullscreen-title\">\n <i class=\"fa-solid fa-expand\"></i>\n {{ FullScreenTitle }}\n </span>\n <div class=\"fullscreen-actions\">\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"copyToClipboard(FullScreenContent, FullScreenTitle)\"\n title=\"Copy content\">\n <i class=\"fa-solid fa-copy\"></i> Copy\n </button>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"closeFullScreen()\"\n title=\"Close\">\n <i class=\"fa-solid fa-times\"></i> Close\n </button>\n </div>\n </div>\n <div class=\"fullscreen-body\">\n <mj-code-editor\n [value]=\"FullScreenContent\"\n [readonly]=\"true\"\n [language]=\"FullScreenLanguage\"\n style=\"height: 100%; width: 100%;\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n }\n</div>", styles: ["/* Host and Container Layout */\n:host {\n display: block;\n height: 100%;\n}\n\n.record-form-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0 !important;\n overflow: hidden;\n}\n\n.form-content {\n padding: 16px;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n/* Error Info Styles */\n.error-info {\n margin-top: 16px;\n padding: 16px;\n background-color: color-mix(in srgb, var(--mj-status-error) 5%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 20%, var(--mj-bg-surface));\n border-radius: 8px;\n}\n\n.finish-reason {\n margin: 0 0 12px 0;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.error-details {\n margin-top: 12px;\n}\n\n.error-details h4 {\n margin: 0 0 8px 0;\n color: color-mix(in srgb, var(--mj-status-error) 80%, black);\n font-size: 14px;\n font-weight: 600;\n}\n\n.error-hint {\n margin: 0;\n color: color-mix(in srgb, var(--mj-status-error) 70%, black);\n font-size: 14px;\n font-style: italic;\n}\n\n/* Header Section */\n.prompt-run-header {\n background: var(--mj-bg-surface-card);\n border-bottom: 2px solid var(--mj-border-default);\n padding: 20px;\n margin-bottom: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n margin-bottom: 16px;\n}\n\n.run-overview {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n flex: 1;\n}\n\n.run-icon-wrapper {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-icon-wrapper i {\n font-size: 24px;\n}\n\n.run-info {\n flex: 1;\n min-width: 0;\n}\n\n.run-title {\n margin: 0 0 8px 0;\n font-size: 1.5em;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.run-id {\n font-size: 0.8em;\n color: var(--mj-text-muted);\n font-weight: 400;\n font-family: 'Courier New', monospace;\n}\n\n.run-meta {\n display: flex;\n align-items: stretch;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n/* Shared meta-card style (Status, Execution, single Prompt) */\n.meta-card {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n}\n\n.meta-card-body {\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n}\n\n.meta-card-body.clickable {\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.meta-card-body.clickable:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n/* Status indicator dot */\n.status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n/* C3 Stacked Connector \u2014 Prompt Card */\n.prompt-card-c3 {\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.c3-child-section {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n font-size: 0.92em;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-child-section:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.c3-child-section i.prompt-icon {\n color: var(--mj-brand-primary);\n font-size: 1rem;\n}\n\n.c3-divider {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 14px;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.c3-line {\n flex: 1;\n height: 1px;\n background: var(--mj-border-default);\n}\n\n.c3-divider-label {\n font-size: 0.55rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n}\n\n.c3-parent-section {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px 9px 14px;\n font-size: 0.76em;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n border-left: 3px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.c3-parent-section:hover {\n color: var(--mj-text-secondary);\n}\n\n.c3-parent-section i {\n font-size: 0.75rem;\n}\n\n.c3-link-icon {\n margin-left: auto;\n font-size: 0.6rem !important;\n opacity: 0.4;\n}\n\n.c3-parent-section:hover .c3-link-icon {\n opacity: 0.8;\n}\n\n/* C3 Model Card */\n.model-card-c3 {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--mj-border-default);\n cursor: pointer;\n transition: border-color 0.15s;\n}\n\n.model-card-c3:hover {\n border-color: var(--mj-border-strong);\n}\n\n.c3-card-label {\n font-size: 0.6rem;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.c3-card-body {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n font-size: 0.82em;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.c3-model-name {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.c3-model-name i {\n color: var(--mj-text-muted);\n font-size: 0.9rem;\n}\n\n.c3-vendor-name {\n font-size: 0.72em;\n color: var(--mj-text-muted);\n font-weight: 400;\n padding-left: 22px;\n}\n\n.original-run {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 16px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n font-size: 0.85em;\n}\n\n.original-link {\n color: var(--mj-status-error);\n text-decoration: none;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.original-link:hover {\n color: color-mix(in srgb, var(--mj-status-error) 85%, black);\n text-decoration: underline;\n}\n\n.run-actions {\n display: flex;\n gap: 8px;\n}\n\n/* Metrics Bar */\n.metrics-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-default);\n flex-wrap: wrap;\n}\n\n.metric-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.metric-item > i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n width: 24px;\n text-align: center;\n}\n\n.metric-content {\n display: flex;\n flex-direction: column;\n}\n\n.metric-label {\n font-size: 0.75em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.metric-value {\n font-size: 1.1em;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.config-link {\n color: var(--mj-brand-primary);\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n text-decoration: underline;\n}\n\n/* Panels */\n.form-content {\n padding: 16px;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n}\n\n/* Nested Sub-Panel Styles */\n.sub-panel-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n font-size: 0.95em;\n}\n\n.sub-panel-content {\n padding: 0;\n}\n\n/* Nested kendo-panelbar styles */\n.k-panelbar .k-panelbar {\n border: none;\n background: transparent;\n}\n\n.k-panelbar .k-panelbar > .k-item {\n border: 1px solid var(--mj-border-default);\n margin-bottom: 8px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.k-panelbar .k-panelbar > .k-item > .k-link {\n background-color: var(--mj-bg-surface-card);\n padding: 12px 16px;\n}\n\n.k-panelbar .k-panelbar > .k-item.k-expanded > .k-link {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.k-panelbar .k-panelbar .k-content {\n padding: 0;\n background: var(--mj-bg-surface);\n}\n\n/* Ensure chat message viewer takes appropriate height */\n.sub-panel-content mj-chat-message-viewer {\n display: block;\n min-height: 200px;\n max-height: 750px; /* Increased by 50% from 500px */\n height: auto;\n overflow: hidden;\n}\n\n/* Different colors for sub-expansion panels */\n.sub-expansion-panel {\n margin-bottom: 8px;\n}\n\n.sub-expansion-panel::ng-deep .k-expander {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel::ng-deep .k-expander:hover {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.sub-expansion-panel::ng-deep .k-header {\n background-color: var(--mj-bg-surface-card);\n border-color: var(--mj-border-default);\n}\n\n.sub-expansion-panel::ng-deep .k-content {\n background-color: var(--mj-bg-surface);\n border-color: var(--mj-border-default);\n}\n\n.panel-badge {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 12px;\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 0.75em;\n font-weight: 500;\n}\n\n.panel-badge.error {\n background: var(--mj-status-error);\n color: white;\n}\n\n.panel-count {\n color: var(--mj-text-muted);\n font-weight: 400;\n font-size: 0.9em;\n}\n\n.panel-content {\n padding: 20px;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* JSON Editor Container */\n.json-editor-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.json-toolbar {\n background: var(--mj-bg-surface-card);\n padding: 8px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: flex-end;\n}\n\n/* Error Message */\n.error-message {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n padding: 16px;\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n}\n\n.error-message i {\n font-size: 1.5em;\n color: var(--mj-status-error);\n flex-shrink: 0;\n}\n\n.error-content h4 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 1em;\n}\n\n.error-content p {\n margin: 0;\n color: var(--mj-text-secondary);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Loading State */\n.loading-state {\n text-align: center;\n padding: 60px 40px;\n color: var(--mj-text-muted);\n}\n\n.loading-state i {\n font-size: 3em;\n margin-bottom: 16px;\n opacity: 0.6;\n color: var(--mj-brand-primary);\n}\n\n.loading-state p {\n margin: 0;\n font-size: 1.1em;\n}\n\n/* Metrics Grid */\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 20px;\n margin-bottom: 24px;\n}\n\n.metric-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 20px;\n}\n\n.metric-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.metric-header i {\n font-size: 1.2em;\n color: var(--mj-text-muted);\n}\n\n.metric-header h4 {\n margin: 0;\n font-size: 0.9em;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.metric-value.large {\n font-size: 1.8em;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.metric-rollup {\n margin-top: 8px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.metric-currency {\n margin-top: 4px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n}\n\n/* Additional Metrics */\n.additional-metrics {\n padding-top: 16px;\n}\n\n.metric-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.metric-row:last-child {\n border-bottom: none;\n}\n\n.metric-row .metric-label {\n font-weight: 500;\n color: var(--mj-text-muted);\n}\n\n.metric-row .metric-value {\n font-weight: 400;\n color: var(--mj-text-primary);\n}\n\n.metric-row .metric-value.link {\n color: var(--mj-brand-primary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: color 0.2s;\n}\n\n.metric-row .metric-value.link:hover {\n color: color-mix(in srgb, var(--mj-brand-primary) 75%, black);\n}\n\n/* Hierarchy Section */\n.parent-run-section,\n.child-runs-section {\n margin-bottom: 24px;\n}\n\n.parent-run-section:last-child,\n.child-runs-section:last-child {\n margin-bottom: 0;\n}\n\n.parent-run-section h4,\n.child-runs-section h4 {\n margin: 0 0 12px 0;\n font-size: 0.95em;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.runs-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.run-item {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.run-item:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n}\n\n.run-item.parent {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n}\n\n.run-item.parent:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 20%, var(--mj-bg-surface));\n}\n\n.run-item-icon {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.run-item-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-item-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.execution-order {\n background: var(--mj-text-muted);\n color: white;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 0.75em;\n font-weight: 600;\n}\n\n.run-item-type {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 400;\n}\n\n.run-item-meta {\n display: flex;\n align-items: center;\n gap: 16px;\n font-size: 0.85em;\n color: var(--mj-text-muted);\n}\n\n.run-item-meta span {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.status-indicator {\n font-weight: 500;\n}\n\n.run-item > i:last-child {\n color: var(--mj-text-muted);\n font-size: 0.85em;\n}\n\n/* Detail Fields Grid */\n.detail-fields-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 24px;\n width: 100%;\n min-height: auto;\n overflow: visible;\n}\n\n.detail-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-field label {\n font-size: 0.85em;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 1em;\n color: var(--mj-text-primary);\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n transition: all 0.2s;\n}\n\n.detail-value i:first-child {\n color: var(--mj-text-muted);\n font-size: 1.1em;\n width: 20px;\n text-align: center;\n}\n\n.detail-value.clickable {\n cursor: pointer;\n}\n\n.detail-value.clickable:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-strong);\n color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.detail-value.clickable i:last-child {\n margin-left: auto;\n font-size: 0.85em;\n opacity: 0.6;\n}\n\n.detail-value.clickable:hover i:last-child {\n opacity: 1;\n}\n\n.detail-value.null-value {\n color: var(--mj-text-disabled);\n font-style: italic;\n}\n\n.detail-value.null-value i:first-child {\n opacity: 0.5;\n}\n\n/* Kendo Overrides */\nkendo-panelbar {\n border: none !important;\n}\n\nkendo-panelbar-item {\n margin-bottom: 8px;\n border: 1px solid var(--mj-border-default) !important;\n border-radius: 8px !important;\n overflow: hidden;\n}\n\nkendo-panelbar-item .k-panelbar-header {\n background: var(--mj-bg-surface-card) !important;\n border: none !important;\n padding: 12px 16px !important;\n}\n\nkendo-panelbar-item .k-panelbar-header:hover {\n background: var(--mj-border-default) !important;\n}\n\nkendo-panelbar-item .k-panelbar-content {\n border: none !important;\n padding: 0 !important;\n max-height: none !important;\n overflow: visible !important;\n}\n\n/* Validation Panel Styles */\n.validation-summary {\n margin-bottom: 24px;\n}\n\n.summary-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.summary-header h4 {\n margin: 0;\n font-size: 1.1em;\n color: var(--mj-text-primary);\n}\n\n.validation-status {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 16px;\n border-radius: 20px;\n font-weight: 500;\n font-size: 0.9em;\n}\n\n.validation-status.success {\n background: color-mix(in srgb, var(--mj-status-success) 12%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n}\n\n.validation-status.failed {\n background: color-mix(in srgb, var(--mj-status-error) 12%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n}\n\n.validation-metrics {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card.small {\n padding: 16px;\n text-align: center;\n}\n\n.metric-card.small .metric-label {\n font-size: 0.8em;\n margin-bottom: 8px;\n font-weight: 600;\n}\n\n.metric-card.small .metric-value {\n font-size: 1.4em;\n font-weight: 700;\n}\n\n.validation-error,\n.common-error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.validation-error h5,\n.common-error h5 {\n margin: 0 0 8px 0;\n color: var(--mj-status-error);\n font-size: 0.95em;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.validation-error p,\n.common-error p {\n margin: 0;\n color: var(--mj-text-secondary);\n font-size: 0.9em;\n}\n\n.error-count {\n display: inline-block;\n margin-top: 8px;\n padding: 2px 8px;\n background: var(--mj-status-error);\n color: white;\n border-radius: 12px;\n font-size: 0.75em;\n font-weight: 500;\n}\n\n/* Retry Timeline */\n.retry-timeline {\n margin-bottom: 24px;\n}\n\n.retry-timeline h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.timeline-info {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.timeline-stat {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-muted);\n font-size: 0.9em;\n}\n\n.timeline-stat i {\n font-size: 1.1em;\n}\n\n/* Validation Attempts */\n.validation-attempts {\n margin-bottom: 24px;\n}\n\n.validation-attempts h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.attempts-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.attempt-item {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n}\n\n.attempt-item.success {\n background: color-mix(in srgb, var(--mj-status-success) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-success) 18%, var(--mj-bg-surface));\n}\n\n.attempt-item.failed {\n background: color-mix(in srgb, var(--mj-status-error) 6%, var(--mj-bg-surface));\n border-color: color-mix(in srgb, var(--mj-status-error) 18%, var(--mj-bg-surface));\n}\n\n.attempt-number {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.attempt-item.success .attempt-number {\n color: var(--mj-status-success);\n}\n\n.attempt-item.failed .attempt-number {\n color: var(--mj-status-error);\n}\n\n.attempt-details {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n font-size: 0.85em;\n}\n\n.attempt-time {\n color: var(--mj-text-muted);\n}\n\n.attempt-error {\n color: var(--mj-status-error);\n flex: 1 0 100%;\n}\n\n.output-length {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* Validation JSON */\n.validation-json {\n margin-top: 24px;\n}\n\n.validation-json h4 {\n margin: 0 0 12px 0;\n font-size: 1em;\n color: var(--mj-text-secondary);\n}\n\n.json-viewer-container {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Panel badge styles */\n.panel-badge.success {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Full-screen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n z-index: 10000;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.6));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n}\n\n.fullscreen-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n max-width: 95vw;\n max-height: 95vh;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n overflow: hidden;\n}\n\n.fullscreen-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.fullscreen-title {\n font-weight: 600;\n font-size: 0.9rem;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.fullscreen-title i {\n color: var(--mj-text-secondary);\n}\n\n.fullscreen-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.fullscreen-body {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.fullscreen-body mj-code-editor {\n display: block;\n height: 100%;\n}\n"] }]
2248
2380
  }], null, null); })();
2249
2381
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJAIPromptRunFormComponentExtended, { className: "MJAIPromptRunFormComponentExtended", filePath: "src/lib/custom/AIPromptRuns/ai-prompt-run-form.component.ts", lineNumber: 21 }); })();
2250
2382
  //# sourceMappingURL=ai-prompt-run-form.component.js.map