@memberjunction/ng-core-entity-forms 2.107.0 → 2.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +71 -3
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +899 -641
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +1 -0
  6. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
  7. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +57 -34
  8. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
  9. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +2 -0
  10. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  11. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +32 -4
  12. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  13. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +358 -337
  14. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  15. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +26 -16
  16. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  17. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
  18. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +13 -4
  19. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
  20. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts.map +1 -1
  21. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js +60 -4
  22. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js.map +1 -1
  23. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.d.ts +10 -0
  24. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.d.ts.map +1 -0
  25. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js +59 -0
  26. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js.map +1 -0
  27. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.d.ts +11 -0
  28. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.d.ts.map +1 -0
  29. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.js +253 -0
  30. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.js.map +1 -0
  31. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.d.ts.map +1 -1
  32. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js +22 -4
  33. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js.map +1 -1
  34. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +33 -12
  35. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
  36. package/dist/lib/generated/Entities/Action/sections/details.component.d.ts.map +1 -1
  37. package/dist/lib/generated/Entities/Action/sections/details.component.js +24 -4
  38. package/dist/lib/generated/Entities/Action/sections/details.component.js.map +1 -1
  39. package/dist/lib/generated/Entities/Artifact/artifact.form.component.js +13 -3
  40. package/dist/lib/generated/Entities/Artifact/artifact.form.component.js.map +1 -1
  41. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.d.ts +10 -0
  42. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.d.ts.map +1 -0
  43. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js +59 -0
  44. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js.map +1 -0
  45. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.d.ts +11 -0
  46. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.d.ts.map +1 -0
  47. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.js +167 -0
  48. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.js.map +1 -0
  49. package/dist/lib/generated/Entities/Collection/collection.form.component.js +14 -4
  50. package/dist/lib/generated/Entities/Collection/collection.form.component.js.map +1 -1
  51. package/dist/lib/generated/Entities/Collection/sections/details.component.d.ts.map +1 -1
  52. package/dist/lib/generated/Entities/Collection/sections/details.component.js +24 -4
  53. package/dist/lib/generated/Entities/Collection/sections/details.component.js.map +1 -1
  54. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.d.ts +10 -0
  55. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.d.ts.map +1 -0
  56. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js +59 -0
  57. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js.map +1 -0
  58. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.d.ts +11 -0
  59. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.d.ts.map +1 -0
  60. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.js +167 -0
  61. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.js.map +1 -0
  62. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.d.ts.map +1 -1
  63. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js +13 -4
  64. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js.map +1 -1
  65. package/dist/lib/generated/Entities/Entity/entity.form.component.js +7 -7
  66. package/dist/lib/generated/Entities/Entity/entity.form.component.js.map +1 -1
  67. package/dist/lib/generated/Entities/User/user.form.component.js +72 -22
  68. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  69. package/dist/lib/generated/generated-forms.module.d.ts +348 -342
  70. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  71. package/dist/lib/generated/generated-forms.module.js +190 -166
  72. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  73. package/package.json +15 -15
@@ -29,476 +29,491 @@ import * as i9 from "./ai-agent-run-timeline.component";
29
29
  import * as i10 from "./ai-agent-run-analytics.component";
30
30
  import * as i11 from "./ai-agent-run-visualization.component";
31
31
  import * as i12 from "./ai-agent-run-step-detail.component";
32
- function AIAgentRunFormComponentExtended_span_11_Template(rf, ctx) { if (rf & 1) {
33
- const _r1 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "span", 35)(1, "a", 36);
35
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_span_11_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openEntityRecord("AI Agents", ctx_r1.record.AgentID)); });
32
+ function AIAgentRunFormComponentExtended_img_6_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelement(0, "img", 37);
34
+ } if (rf & 2) {
35
+ const ctx_r0 = i0.ɵɵnextContext();
36
+ i0.ɵɵproperty("src", ctx_r0.agent.LogoURL, i0.ɵɵsanitizeUrl)("alt", ctx_r0.agent.Name || "Agent");
37
+ } }
38
+ function AIAgentRunFormComponentExtended_i_7_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelement(0, "i", 18);
40
+ } if (rf & 2) {
41
+ const ctx_r0 = i0.ɵɵnextContext();
42
+ i0.ɵɵproperty("ngClass", ctx_r0.agent.IconClass);
43
+ } }
44
+ function AIAgentRunFormComponentExtended_i_8_Template(rf, ctx) { if (rf & 1) {
45
+ i0.ɵɵelement(0, "i", 38);
46
+ } }
47
+ function AIAgentRunFormComponentExtended_span_13_Template(rf, ctx) { if (rf & 1) {
48
+ const _r2 = i0.ɵɵgetCurrentView();
49
+ i0.ɵɵelementStart(0, "span", 39)(1, "a", 40);
50
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_span_13_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Agents", ctx_r0.record.AgentID)); });
36
51
  i0.ɵɵtext(2);
37
52
  i0.ɵɵelementEnd()();
38
53
  } if (rf & 2) {
39
- const ctx_r1 = i0.ɵɵnextContext();
54
+ const ctx_r0 = i0.ɵɵnextContext();
40
55
  i0.ɵɵadvance(2);
41
- i0.ɵɵtextInterpolate1(" ", ctx_r1.agent.Name, " ");
56
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.agent.Name, " ");
42
57
  } }
43
- function AIAgentRunFormComponentExtended_span_14_Template(rf, ctx) { if (rf & 1) {
58
+ function AIAgentRunFormComponentExtended_span_16_Template(rf, ctx) { if (rf & 1) {
44
59
  const _r3 = i0.ɵɵgetCurrentView();
45
- i0.ɵɵelementStart(0, "span", 37);
46
- i0.ɵɵelement(1, "i", 38);
47
- i0.ɵɵelementStart(2, "a", 39);
48
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_span_14_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.navigateToParentRun()); });
60
+ i0.ɵɵelementStart(0, "span", 41);
61
+ i0.ɵɵelement(1, "i", 42);
62
+ i0.ɵɵelementStart(2, "a", 43);
63
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_span_16_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToParentRun()); });
49
64
  i0.ɵɵtext(3, "Parent Run");
50
65
  i0.ɵɵelementEnd()();
51
66
  } }
52
- function AIAgentRunFormComponentExtended_div_29_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵelementStart(0, "div", 21)(1, "span", 22);
67
+ function AIAgentRunFormComponentExtended_div_31_Template(rf, ctx) { if (rf & 1) {
68
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
54
69
  i0.ɵɵtext(2, "Completed");
55
70
  i0.ɵɵelementEnd();
56
- i0.ɵɵelementStart(3, "span", 23);
71
+ i0.ɵɵelementStart(3, "span", 25);
57
72
  i0.ɵɵtext(4);
58
73
  i0.ɵɵpipe(5, "date");
59
74
  i0.ɵɵelementEnd()();
60
75
  } if (rf & 2) {
61
- const ctx_r1 = i0.ɵɵnextContext();
76
+ const ctx_r0 = i0.ɵɵnextContext();
62
77
  i0.ɵɵadvance(4);
63
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r1.record.CompletedAt, "medium"));
78
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r0.record.CompletedAt, "medium"));
64
79
  } }
65
- function AIAgentRunFormComponentExtended_div_30_Template(rf, ctx) { if (rf & 1) {
66
- i0.ɵɵelementStart(0, "div", 21)(1, "span", 22);
80
+ function AIAgentRunFormComponentExtended_div_32_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
67
82
  i0.ɵɵtext(2, "Duration");
68
83
  i0.ɵɵelementEnd();
69
- i0.ɵɵelementStart(3, "span", 23);
84
+ i0.ɵɵelementStart(3, "span", 25);
70
85
  i0.ɵɵtext(4);
71
86
  i0.ɵɵelementEnd()();
72
87
  } if (rf & 2) {
73
- const ctx_r1 = i0.ɵɵnextContext();
88
+ const ctx_r0 = i0.ɵɵnextContext();
74
89
  i0.ɵɵadvance(4);
75
- i0.ɵɵtextInterpolate(ctx_r1.calculateDuration(ctx_r1.record.StartedAt, ctx_r1.record.CompletedAt));
90
+ i0.ɵɵtextInterpolate(ctx_r0.calculateDuration(ctx_r0.record.StartedAt, ctx_r0.record.CompletedAt));
76
91
  } }
77
- function AIAgentRunFormComponentExtended_div_31_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "div", 21)(1, "span", 22);
92
+ function AIAgentRunFormComponentExtended_div_33_Template(rf, ctx) { if (rf & 1) {
93
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
79
94
  i0.ɵɵtext(2, "Result");
80
95
  i0.ɵɵelementEnd();
81
- i0.ɵɵelementStart(3, "span", 23);
96
+ i0.ɵɵelementStart(3, "span", 25);
82
97
  i0.ɵɵtext(4);
83
98
  i0.ɵɵelementEnd()();
84
99
  } if (rf & 2) {
85
- const ctx_r1 = i0.ɵɵnextContext();
100
+ const ctx_r0 = i0.ɵɵnextContext();
86
101
  i0.ɵɵadvance(3);
87
- i0.ɵɵclassProp("success", ctx_r1.record.Success)("error", !ctx_r1.record.Success);
102
+ i0.ɵɵclassProp("success", ctx_r0.record.Success)("error", !ctx_r0.record.Success);
88
103
  i0.ɵɵadvance();
89
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Success ? "Success" : "Failed", " ");
104
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Success ? "Success" : "Failed", " ");
90
105
  } }
91
- function AIAgentRunFormComponentExtended_div_32_span_3_Template(rf, ctx) { if (rf & 1) {
92
- i0.ɵɵelementStart(0, "span", 23);
106
+ function AIAgentRunFormComponentExtended_div_34_span_3_Template(rf, ctx) { if (rf & 1) {
107
+ i0.ɵɵelementStart(0, "span", 25);
93
108
  i0.ɵɵtext(1);
94
109
  i0.ɵɵpipe(2, "number");
95
110
  i0.ɵɵelementEnd();
96
111
  } if (rf & 2) {
97
- const ctx_r1 = i0.ɵɵnextContext(2);
112
+ const ctx_r0 = i0.ɵɵnextContext(2);
98
113
  i0.ɵɵadvance();
99
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r1.costMetrics.totalTokensInput + ctx_r1.costMetrics.totalTokensOutput, "1.0-0"));
114
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r0.costMetrics.totalTokensInput + ctx_r0.costMetrics.totalTokensOutput, "1.0-0"));
100
115
  } }
101
- function AIAgentRunFormComponentExtended_div_32_span_4_Template(rf, ctx) { if (rf & 1) {
102
- i0.ɵɵelementStart(0, "span", 42);
103
- i0.ɵɵelement(1, "i", 43);
116
+ function AIAgentRunFormComponentExtended_div_34_span_4_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelementStart(0, "span", 46);
118
+ i0.ɵɵelement(1, "i", 47);
104
119
  i0.ɵɵelementEnd();
105
120
  } }
106
- function AIAgentRunFormComponentExtended_div_32_Template(rf, ctx) { if (rf & 1) {
107
- i0.ɵɵelementStart(0, "div", 21)(1, "span", 22);
121
+ function AIAgentRunFormComponentExtended_div_34_Template(rf, ctx) { if (rf & 1) {
122
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
108
123
  i0.ɵɵtext(2, "Tokens");
109
124
  i0.ɵɵelementEnd();
110
- i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_32_span_3_Template, 3, 4, "span", 40)(4, AIAgentRunFormComponentExtended_div_32_span_4_Template, 2, 0, "span", 41);
125
+ i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_34_span_3_Template, 3, 4, "span", 44)(4, AIAgentRunFormComponentExtended_div_34_span_4_Template, 2, 0, "span", 45);
111
126
  i0.ɵɵelementEnd();
112
127
  } if (rf & 2) {
113
- const ctx_r1 = i0.ɵɵnextContext();
128
+ const ctx_r0 = i0.ɵɵnextContext();
114
129
  i0.ɵɵadvance(3);
115
- i0.ɵɵproperty("ngIf", !ctx_r1.costMetrics.isLoading);
130
+ i0.ɵɵproperty("ngIf", !ctx_r0.costMetrics.isLoading);
116
131
  i0.ɵɵadvance();
117
- i0.ɵɵproperty("ngIf", ctx_r1.costMetrics.isLoading);
132
+ i0.ɵɵproperty("ngIf", ctx_r0.costMetrics.isLoading);
118
133
  } }
119
- function AIAgentRunFormComponentExtended_div_33_span_3_Template(rf, ctx) { if (rf & 1) {
120
- i0.ɵɵelementStart(0, "span", 23);
134
+ function AIAgentRunFormComponentExtended_div_35_span_3_Template(rf, ctx) { if (rf & 1) {
135
+ i0.ɵɵelementStart(0, "span", 25);
121
136
  i0.ɵɵtext(1);
122
137
  i0.ɵɵpipe(2, "number");
123
138
  i0.ɵɵelementEnd();
124
139
  } if (rf & 2) {
125
- const ctx_r1 = i0.ɵɵnextContext(2);
140
+ const ctx_r0 = i0.ɵɵnextContext(2);
126
141
  i0.ɵɵadvance();
127
- i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(2, 1, ctx_r1.costMetrics.totalCost, "1.2-4"), "");
142
+ i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(2, 1, ctx_r0.costMetrics.totalCost, "1.2-4"), "");
128
143
  } }
129
- function AIAgentRunFormComponentExtended_div_33_span_4_Template(rf, ctx) { if (rf & 1) {
130
- i0.ɵɵelementStart(0, "span", 42);
131
- i0.ɵɵelement(1, "i", 43);
144
+ function AIAgentRunFormComponentExtended_div_35_span_4_Template(rf, ctx) { if (rf & 1) {
145
+ i0.ɵɵelementStart(0, "span", 46);
146
+ i0.ɵɵelement(1, "i", 47);
132
147
  i0.ɵɵelementEnd();
133
148
  } }
134
- function AIAgentRunFormComponentExtended_div_33_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵelementStart(0, "div", 21)(1, "span", 22);
149
+ function AIAgentRunFormComponentExtended_div_35_Template(rf, ctx) { if (rf & 1) {
150
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
136
151
  i0.ɵɵtext(2, "Cost");
137
152
  i0.ɵɵelementEnd();
138
- i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_33_span_3_Template, 3, 4, "span", 40)(4, AIAgentRunFormComponentExtended_div_33_span_4_Template, 2, 0, "span", 41);
153
+ i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_35_span_3_Template, 3, 4, "span", 44)(4, AIAgentRunFormComponentExtended_div_35_span_4_Template, 2, 0, "span", 45);
139
154
  i0.ɵɵelementEnd();
140
155
  } if (rf & 2) {
141
- const ctx_r1 = i0.ɵɵnextContext();
156
+ const ctx_r0 = i0.ɵɵnextContext();
142
157
  i0.ɵɵadvance(3);
143
- i0.ɵɵproperty("ngIf", !ctx_r1.costMetrics.isLoading);
158
+ i0.ɵɵproperty("ngIf", !ctx_r0.costMetrics.isLoading);
144
159
  i0.ɵɵadvance();
145
- i0.ɵɵproperty("ngIf", ctx_r1.costMetrics.isLoading);
160
+ i0.ɵɵproperty("ngIf", ctx_r0.costMetrics.isLoading);
146
161
  } }
147
- function AIAgentRunFormComponentExtended_div_34_Template(rf, ctx) { if (rf & 1) {
148
- i0.ɵɵelementStart(0, "div", 21)(1, "span", 22);
162
+ function AIAgentRunFormComponentExtended_div_36_Template(rf, ctx) { if (rf & 1) {
163
+ i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
149
164
  i0.ɵɵtext(2, "Effort Level");
150
165
  i0.ɵɵelementEnd();
151
- i0.ɵɵelementStart(3, "span", 23);
166
+ i0.ɵɵelementStart(3, "span", 25);
152
167
  i0.ɵɵtext(4);
153
168
  i0.ɵɵelementEnd()();
154
169
  } if (rf & 2) {
155
- const ctx_r1 = i0.ɵɵnextContext();
170
+ const ctx_r0 = i0.ɵɵnextContext();
156
171
  i0.ɵɵadvance(4);
157
- i0.ɵɵtextInterpolate(ctx_r1.record.EffortLevel);
172
+ i0.ɵɵtextInterpolate(ctx_r0.record.EffortLevel);
158
173
  } }
159
- function AIAgentRunFormComponentExtended_div_35_Template(rf, ctx) { if (rf & 1) {
174
+ function AIAgentRunFormComponentExtended_div_37_Template(rf, ctx) { if (rf & 1) {
160
175
  const _r4 = i0.ɵɵgetCurrentView();
161
- i0.ɵɵelementStart(0, "div", 44)(1, "div", 45);
162
- i0.ɵɵelement(2, "i", 46);
163
- i0.ɵɵelementStart(3, "div", 47)(4, "div", 48);
176
+ i0.ɵɵelementStart(0, "div", 48)(1, "div", 49);
177
+ i0.ɵɵelement(2, "i", 50);
178
+ i0.ɵɵelementStart(3, "div", 51)(4, "div", 52);
164
179
  i0.ɵɵtext(5, "Configuration");
165
180
  i0.ɵɵelementEnd();
166
- i0.ɵɵelementStart(6, "div", 49)(7, "a", 36);
167
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_35_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openEntityRecord("MJ: AI Configurations", ctx_r1.record.ConfigurationID)); });
181
+ i0.ɵɵelementStart(6, "div", 53)(7, "a", 40);
182
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_37_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Configurations", ctx_r0.record.ConfigurationID)); });
168
183
  i0.ɵɵtext(8);
169
184
  i0.ɵɵelementEnd()()()()();
170
185
  } if (rf & 2) {
171
- const ctx_r1 = i0.ɵɵnextContext();
186
+ const ctx_r0 = i0.ɵɵnextContext();
172
187
  i0.ɵɵadvance(8);
173
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Configuration || "Unknown", " ");
188
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Configuration || "Unknown", " ");
174
189
  } }
175
- function AIAgentRunFormComponentExtended_div_50_Template(rf, ctx) { if (rf & 1) {
190
+ function AIAgentRunFormComponentExtended_div_52_Template(rf, ctx) { if (rf & 1) {
176
191
  const _r5 = i0.ɵɵgetCurrentView();
177
- i0.ɵɵelementStart(0, "div", 50)(1, "kendo-splitter", 51)(2, "kendo-splitter-pane", 52)(3, "mj-ai-agent-run-timeline", 53);
178
- i0.ɵɵlistener("itemSelected", function AIAgentRunFormComponentExtended_div_50_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectTimelineItem($event)); })("navigateToEntity", function AIAgentRunFormComponentExtended_div_50_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.navigateToEntityRecord($event)); })("agentRunCompleted", function AIAgentRunFormComponentExtended_div_50_Template_mj_ai_agent_run_timeline_agentRunCompleted_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onAgentRunCompleted($event)); });
192
+ i0.ɵɵelementStart(0, "div", 54)(1, "kendo-splitter", 55)(2, "kendo-splitter-pane", 56)(3, "mj-ai-agent-run-timeline", 57);
193
+ i0.ɵɵlistener("itemSelected", function AIAgentRunFormComponentExtended_div_52_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function AIAgentRunFormComponentExtended_div_52_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); })("agentRunCompleted", function AIAgentRunFormComponentExtended_div_52_Template_mj_ai_agent_run_timeline_agentRunCompleted_3_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onAgentRunCompleted($event)); });
179
194
  i0.ɵɵelementEnd()();
180
- i0.ɵɵelementStart(4, "kendo-splitter-pane", 54)(5, "mj-ai-agent-run-step-detail", 55);
181
- i0.ɵɵlistener("closePanel", function AIAgentRunFormComponentExtended_div_50_Template_mj_ai_agent_run_step_detail_closePanel_5_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeJsonPanel()); })("navigateToActionLog", function AIAgentRunFormComponentExtended_div_50_Template_mj_ai_agent_run_step_detail_navigateToActionLog_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.navigateToActionLog($event)); })("copyToClipboard", function AIAgentRunFormComponentExtended_div_50_Template_mj_ai_agent_run_step_detail_copyToClipboard_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyToClipboard($event)); });
195
+ i0.ɵɵelementStart(4, "kendo-splitter-pane", 58)(5, "mj-ai-agent-run-step-detail", 59);
196
+ i0.ɵɵlistener("closePanel", function AIAgentRunFormComponentExtended_div_52_Template_mj_ai_agent_run_step_detail_closePanel_5_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeJsonPanel()); })("navigateToActionLog", function AIAgentRunFormComponentExtended_div_52_Template_mj_ai_agent_run_step_detail_navigateToActionLog_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToActionLog($event)); })("copyToClipboard", function AIAgentRunFormComponentExtended_div_52_Template_mj_ai_agent_run_step_detail_copyToClipboard_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.copyToClipboard($event)); });
182
197
  i0.ɵɵelementEnd()()()();
183
198
  } if (rf & 2) {
184
- const ctx_r1 = i0.ɵɵnextContext();
199
+ const ctx_r0 = i0.ɵɵnextContext();
185
200
  i0.ɵɵadvance(2);
186
201
  i0.ɵɵproperty("min", "400px");
187
202
  i0.ɵɵadvance();
188
- i0.ɵɵproperty("aiAgentRunId", ctx_r1.record.ID)("dataHelper", ctx_r1.dataHelper)("autoRefresh", ctx_r1.record.Status === "Running")("refreshInterval", 30000);
203
+ i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("dataHelper", ctx_r0.dataHelper)("autoRefresh", ctx_r0.record.Status === "Running")("refreshInterval", 30000);
189
204
  i0.ɵɵadvance();
190
- i0.ɵɵproperty("size", "45%")("min", "300px")("collapsed", !ctx_r1.selectedTimelineItem);
205
+ i0.ɵɵproperty("size", "45%")("min", "300px")("collapsed", !ctx_r0.selectedTimelineItem);
191
206
  i0.ɵɵadvance();
192
- i0.ɵɵproperty("selectedTimelineItem", ctx_r1.selectedTimelineItem);
207
+ i0.ɵɵproperty("selectedTimelineItem", ctx_r0.selectedTimelineItem);
193
208
  } }
194
- function AIAgentRunFormComponentExtended_div_51_mj_ai_agent_run_visualization_1_Template(rf, ctx) { if (rf & 1) {
195
- i0.ɵɵelement(0, "mj-ai-agent-run-visualization", 57, 0);
209
+ function AIAgentRunFormComponentExtended_div_53_mj_ai_agent_run_visualization_1_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵelement(0, "mj-ai-agent-run-visualization", 61, 0);
196
211
  } if (rf & 2) {
197
- const ctx_r1 = i0.ɵɵnextContext(2);
198
- i0.ɵɵproperty("aiAgentRunId", ctx_r1.record.ID)("dataHelper", ctx_r1.dataHelper);
212
+ const ctx_r0 = i0.ɵɵnextContext(2);
213
+ i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("dataHelper", ctx_r0.dataHelper);
199
214
  } }
200
- function AIAgentRunFormComponentExtended_div_51_Template(rf, ctx) { if (rf & 1) {
201
- i0.ɵɵelementStart(0, "div", 50);
202
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_51_mj_ai_agent_run_visualization_1_Template, 2, 2, "mj-ai-agent-run-visualization", 56);
215
+ function AIAgentRunFormComponentExtended_div_53_Template(rf, ctx) { if (rf & 1) {
216
+ i0.ɵɵelementStart(0, "div", 54);
217
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_mj_ai_agent_run_visualization_1_Template, 2, 2, "mj-ai-agent-run-visualization", 60);
203
218
  i0.ɵɵelementEnd();
204
219
  } if (rf & 2) {
205
- const ctx_r1 = i0.ɵɵnextContext();
220
+ const ctx_r0 = i0.ɵɵnextContext();
206
221
  i0.ɵɵadvance();
207
- i0.ɵɵproperty("ngIf", ctx_r1.visualizationLoaded);
222
+ i0.ɵɵproperty("ngIf", ctx_r0.visualizationLoaded);
208
223
  } }
209
- function AIAgentRunFormComponentExtended_div_52_mj_ai_agent_run_analytics_1_Template(rf, ctx) { if (rf & 1) {
210
- i0.ɵɵelement(0, "mj-ai-agent-run-analytics", 59, 1);
224
+ function AIAgentRunFormComponentExtended_div_54_mj_ai_agent_run_analytics_1_Template(rf, ctx) { if (rf & 1) {
225
+ i0.ɵɵelement(0, "mj-ai-agent-run-analytics", 63, 1);
211
226
  } if (rf & 2) {
212
- const ctx_r1 = i0.ɵɵnextContext(2);
213
- i0.ɵɵproperty("agentRunId", ctx_r1.record.ID);
227
+ const ctx_r0 = i0.ɵɵnextContext(2);
228
+ i0.ɵɵproperty("agentRunId", ctx_r0.record.ID);
214
229
  } }
215
- function AIAgentRunFormComponentExtended_div_52_Template(rf, ctx) { if (rf & 1) {
216
- i0.ɵɵelementStart(0, "div", 50);
217
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_52_mj_ai_agent_run_analytics_1_Template, 2, 1, "mj-ai-agent-run-analytics", 58);
230
+ function AIAgentRunFormComponentExtended_div_54_Template(rf, ctx) { if (rf & 1) {
231
+ i0.ɵɵelementStart(0, "div", 54);
232
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_54_mj_ai_agent_run_analytics_1_Template, 2, 1, "mj-ai-agent-run-analytics", 62);
218
233
  i0.ɵɵelementEnd();
219
234
  } if (rf & 2) {
220
- const ctx_r1 = i0.ɵɵnextContext();
235
+ const ctx_r0 = i0.ɵɵnextContext();
221
236
  i0.ɵɵadvance();
222
- i0.ɵɵproperty("ngIf", ctx_r1.analyticsLoaded);
237
+ i0.ɵɵproperty("ngIf", ctx_r0.analyticsLoaded);
223
238
  } }
224
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_11_Template(rf, ctx) { if (rf & 1) {
239
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_11_Template(rf, ctx) { if (rf & 1) {
225
240
  const _r7 = i0.ɵɵgetCurrentView();
226
- i0.ɵɵelementStart(0, "a", 36);
227
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_11_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord("MJ: AI Agent Runs", ctx_r1.record.ParentRunID)); });
241
+ i0.ɵɵelementStart(0, "a", 40);
242
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_11_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.ParentRunID)); });
228
243
  i0.ɵɵtext(1);
229
244
  i0.ɵɵelementEnd();
230
245
  } if (rf & 2) {
231
- const ctx_r1 = i0.ɵɵnextContext(3);
246
+ const ctx_r0 = i0.ɵɵnextContext(3);
232
247
  i0.ɵɵadvance();
233
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ParentRunID, " ");
248
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.ParentRunID, " ");
234
249
  } }
235
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_span_12_Template(rf, ctx) { if (rf & 1) {
250
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_12_Template(rf, ctx) { if (rf & 1) {
236
251
  i0.ɵɵelementStart(0, "span");
237
252
  i0.ɵɵtext(1, "None (Root)");
238
253
  i0.ɵɵelementEnd();
239
254
  } }
240
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_17_Template(rf, ctx) { if (rf & 1) {
255
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_17_Template(rf, ctx) { if (rf & 1) {
241
256
  const _r8 = i0.ɵɵgetCurrentView();
242
- i0.ɵɵelementStart(0, "a", 36);
243
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_17_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord("MJ: AI Agent Runs", ctx_r1.record.LastRunID)); });
257
+ i0.ɵɵelementStart(0, "a", 40);
258
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_17_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.LastRunID)); });
244
259
  i0.ɵɵtext(1);
245
260
  i0.ɵɵelementEnd();
246
261
  } if (rf & 2) {
247
- const ctx_r1 = i0.ɵɵnextContext(3);
262
+ const ctx_r0 = i0.ɵɵnextContext(3);
248
263
  i0.ɵɵadvance();
249
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.LastRunID, " ");
264
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.LastRunID, " ");
250
265
  } }
251
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_span_18_Template(rf, ctx) { if (rf & 1) {
266
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_18_Template(rf, ctx) { if (rf & 1) {
252
267
  i0.ɵɵelementStart(0, "span");
253
268
  i0.ɵɵtext(1, "None");
254
269
  i0.ɵɵelementEnd();
255
270
  } }
256
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_23_Template(rf, ctx) { if (rf & 1) {
271
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_23_Template(rf, ctx) { if (rf & 1) {
257
272
  const _r9 = i0.ɵɵgetCurrentView();
258
- i0.ɵɵelementStart(0, "a", 36);
259
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_23_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord("Conversations", ctx_r1.record.ConversationID)); });
273
+ i0.ɵɵelementStart(0, "a", 40);
274
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_23_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("Conversations", ctx_r0.record.ConversationID)); });
260
275
  i0.ɵɵtext(1);
261
276
  i0.ɵɵelementEnd();
262
277
  } if (rf & 2) {
263
- const ctx_r1 = i0.ɵɵnextContext(3);
278
+ const ctx_r0 = i0.ɵɵnextContext(3);
264
279
  i0.ɵɵadvance();
265
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ConversationID, " ");
280
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.ConversationID, " ");
266
281
  } }
267
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_span_24_Template(rf, ctx) { if (rf & 1) {
282
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_24_Template(rf, ctx) { if (rf & 1) {
268
283
  i0.ɵɵelementStart(0, "span");
269
284
  i0.ɵɵtext(1, "N/A");
270
285
  i0.ɵɵelementEnd();
271
286
  } }
272
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_29_Template(rf, ctx) { if (rf & 1) {
287
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_29_Template(rf, ctx) { if (rf & 1) {
273
288
  const _r10 = i0.ɵɵgetCurrentView();
274
- i0.ɵɵelementStart(0, "a", 36);
275
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_3_a_29_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord("Users", ctx_r1.record.UserID)); });
289
+ i0.ɵɵelementStart(0, "a", 40);
290
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_29_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("Users", ctx_r0.record.UserID)); });
276
291
  i0.ɵɵtext(1);
277
292
  i0.ɵɵelementEnd();
278
293
  } if (rf & 2) {
279
- const ctx_r1 = i0.ɵɵnextContext(3);
294
+ const ctx_r0 = i0.ɵɵnextContext(3);
280
295
  i0.ɵɵadvance();
281
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.User || "N/A", " ");
296
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.User || "N/A", " ");
282
297
  } }
283
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_span_30_Template(rf, ctx) { if (rf & 1) {
298
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_30_Template(rf, ctx) { if (rf & 1) {
284
299
  i0.ɵɵelementStart(0, "span");
285
300
  i0.ɵɵtext(1, "N/A");
286
301
  i0.ɵɵelementEnd();
287
302
  } }
288
- function AIAgentRunFormComponentExtended_div_53_ng_template_3_Template(rf, ctx) { if (rf & 1) {
303
+ function AIAgentRunFormComponentExtended_div_55_ng_template_3_Template(rf, ctx) { if (rf & 1) {
289
304
  const _r6 = i0.ɵɵgetCurrentView();
290
- i0.ɵɵelementStart(0, "div", 72)(1, "div", 73)(2, "label");
305
+ i0.ɵɵelementStart(0, "div", 76)(1, "div", 77)(2, "label");
291
306
  i0.ɵɵtext(3, "Agent");
292
307
  i0.ɵɵelementEnd();
293
- i0.ɵɵelementStart(4, "span")(5, "a", 36);
294
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_3_Template_a_click_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openEntityRecord("AI Agents", ctx_r1.record.AgentID)); });
308
+ i0.ɵɵelementStart(4, "span")(5, "a", 40);
309
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_3_Template_a_click_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Agents", ctx_r0.record.AgentID)); });
295
310
  i0.ɵɵtext(6);
296
311
  i0.ɵɵelementEnd()()();
297
- i0.ɵɵelementStart(7, "div", 73)(8, "label");
312
+ i0.ɵɵelementStart(7, "div", 77)(8, "label");
298
313
  i0.ɵɵtext(9, "Parent Run ID");
299
314
  i0.ɵɵelementEnd();
300
315
  i0.ɵɵelementStart(10, "span");
301
- i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_div_53_ng_template_3_a_11_Template, 2, 1, "a", 74)(12, AIAgentRunFormComponentExtended_div_53_ng_template_3_span_12_Template, 2, 0, "span", 75);
316
+ i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_div_55_ng_template_3_a_11_Template, 2, 1, "a", 78)(12, AIAgentRunFormComponentExtended_div_55_ng_template_3_span_12_Template, 2, 0, "span", 79);
302
317
  i0.ɵɵelementEnd()();
303
- i0.ɵɵelementStart(13, "div", 73)(14, "label");
318
+ i0.ɵɵelementStart(13, "div", 77)(14, "label");
304
319
  i0.ɵɵtext(15, "Last Run ID");
305
320
  i0.ɵɵelementEnd();
306
321
  i0.ɵɵelementStart(16, "span");
307
- i0.ɵɵtemplate(17, AIAgentRunFormComponentExtended_div_53_ng_template_3_a_17_Template, 2, 1, "a", 74)(18, AIAgentRunFormComponentExtended_div_53_ng_template_3_span_18_Template, 2, 0, "span", 75);
322
+ i0.ɵɵtemplate(17, AIAgentRunFormComponentExtended_div_55_ng_template_3_a_17_Template, 2, 1, "a", 78)(18, AIAgentRunFormComponentExtended_div_55_ng_template_3_span_18_Template, 2, 0, "span", 79);
308
323
  i0.ɵɵelementEnd()();
309
- i0.ɵɵelementStart(19, "div", 73)(20, "label");
324
+ i0.ɵɵelementStart(19, "div", 77)(20, "label");
310
325
  i0.ɵɵtext(21, "Conversation ID");
311
326
  i0.ɵɵelementEnd();
312
327
  i0.ɵɵelementStart(22, "span");
313
- i0.ɵɵtemplate(23, AIAgentRunFormComponentExtended_div_53_ng_template_3_a_23_Template, 2, 1, "a", 74)(24, AIAgentRunFormComponentExtended_div_53_ng_template_3_span_24_Template, 2, 0, "span", 75);
328
+ i0.ɵɵtemplate(23, AIAgentRunFormComponentExtended_div_55_ng_template_3_a_23_Template, 2, 1, "a", 78)(24, AIAgentRunFormComponentExtended_div_55_ng_template_3_span_24_Template, 2, 0, "span", 79);
314
329
  i0.ɵɵelementEnd()();
315
- i0.ɵɵelementStart(25, "div", 73)(26, "label");
330
+ i0.ɵɵelementStart(25, "div", 77)(26, "label");
316
331
  i0.ɵɵtext(27, "User");
317
332
  i0.ɵɵelementEnd();
318
333
  i0.ɵɵelementStart(28, "span");
319
- i0.ɵɵtemplate(29, AIAgentRunFormComponentExtended_div_53_ng_template_3_a_29_Template, 2, 1, "a", 74)(30, AIAgentRunFormComponentExtended_div_53_ng_template_3_span_30_Template, 2, 0, "span", 75);
334
+ i0.ɵɵtemplate(29, AIAgentRunFormComponentExtended_div_55_ng_template_3_a_29_Template, 2, 1, "a", 78)(30, AIAgentRunFormComponentExtended_div_55_ng_template_3_span_30_Template, 2, 0, "span", 79);
320
335
  i0.ɵɵelementEnd()()();
321
336
  } if (rf & 2) {
322
- const ctx_r1 = i0.ɵɵnextContext(2);
337
+ const ctx_r0 = i0.ɵɵnextContext(2);
323
338
  i0.ɵɵadvance(6);
324
- i0.ɵɵtextInterpolate1(" ", (ctx_r1.agent == null ? null : ctx_r1.agent.Name) || "N/A", " ");
339
+ i0.ɵɵtextInterpolate1(" ", (ctx_r0.agent == null ? null : ctx_r0.agent.Name) || "N/A", " ");
325
340
  i0.ɵɵadvance(5);
326
- i0.ɵɵproperty("ngIf", ctx_r1.record.ParentRunID);
341
+ i0.ɵɵproperty("ngIf", ctx_r0.record.ParentRunID);
327
342
  i0.ɵɵadvance();
328
- i0.ɵɵproperty("ngIf", !ctx_r1.record.ParentRunID);
343
+ i0.ɵɵproperty("ngIf", !ctx_r0.record.ParentRunID);
329
344
  i0.ɵɵadvance(5);
330
- i0.ɵɵproperty("ngIf", ctx_r1.record.LastRunID);
345
+ i0.ɵɵproperty("ngIf", ctx_r0.record.LastRunID);
331
346
  i0.ɵɵadvance();
332
- i0.ɵɵproperty("ngIf", !ctx_r1.record.LastRunID);
347
+ i0.ɵɵproperty("ngIf", !ctx_r0.record.LastRunID);
333
348
  i0.ɵɵadvance(5);
334
- i0.ɵɵproperty("ngIf", ctx_r1.record.ConversationID);
349
+ i0.ɵɵproperty("ngIf", ctx_r0.record.ConversationID);
335
350
  i0.ɵɵadvance();
336
- i0.ɵɵproperty("ngIf", !ctx_r1.record.ConversationID);
351
+ i0.ɵɵproperty("ngIf", !ctx_r0.record.ConversationID);
337
352
  i0.ɵɵadvance(5);
338
- i0.ɵɵproperty("ngIf", ctx_r1.record.UserID);
353
+ i0.ɵɵproperty("ngIf", ctx_r0.record.UserID);
339
354
  i0.ɵɵadvance();
340
- i0.ɵɵproperty("ngIf", !ctx_r1.record.UserID);
355
+ i0.ɵɵproperty("ngIf", !ctx_r0.record.UserID);
341
356
  } }
342
- function AIAgentRunFormComponentExtended_div_53_ng_template_5_a_5_Template(rf, ctx) { if (rf & 1) {
357
+ function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_5_Template(rf, ctx) { if (rf & 1) {
343
358
  const _r11 = i0.ɵɵgetCurrentView();
344
- i0.ɵɵelementStart(0, "a", 36);
345
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_5_a_5_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord("AI Models", ctx_r1.record.OverrideModelID)); });
359
+ i0.ɵɵelementStart(0, "a", 40);
360
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_5_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Models", ctx_r0.record.OverrideModelID)); });
346
361
  i0.ɵɵtext(1);
347
362
  i0.ɵɵelementEnd();
348
363
  } if (rf & 2) {
349
- const ctx_r1 = i0.ɵɵnextContext(3);
364
+ const ctx_r0 = i0.ɵɵnextContext(3);
350
365
  i0.ɵɵadvance();
351
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.OverrideModel || "N/A", " ");
366
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.OverrideModel || "N/A", " ");
352
367
  } }
353
- function AIAgentRunFormComponentExtended_div_53_ng_template_5_span_6_Template(rf, ctx) { if (rf & 1) {
368
+ function AIAgentRunFormComponentExtended_div_55_ng_template_5_span_6_Template(rf, ctx) { if (rf & 1) {
354
369
  i0.ɵɵelementStart(0, "span");
355
370
  i0.ɵɵtext(1, "N/A");
356
371
  i0.ɵɵelementEnd();
357
372
  } }
358
- function AIAgentRunFormComponentExtended_div_53_ng_template_5_a_11_Template(rf, ctx) { if (rf & 1) {
373
+ function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_11_Template(rf, ctx) { if (rf & 1) {
359
374
  const _r12 = i0.ɵɵgetCurrentView();
360
- i0.ɵɵelementStart(0, "a", 36);
361
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_53_ng_template_5_a_11_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord("AI Vendors", ctx_r1.record.OverrideVendorID)); });
375
+ i0.ɵɵelementStart(0, "a", 40);
376
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_11_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Vendors", ctx_r0.record.OverrideVendorID)); });
362
377
  i0.ɵɵtext(1);
363
378
  i0.ɵɵelementEnd();
364
379
  } if (rf & 2) {
365
- const ctx_r1 = i0.ɵɵnextContext(3);
380
+ const ctx_r0 = i0.ɵɵnextContext(3);
366
381
  i0.ɵɵadvance();
367
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.OverrideVendor || "N/A", " ");
382
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.OverrideVendor || "N/A", " ");
368
383
  } }
369
- function AIAgentRunFormComponentExtended_div_53_ng_template_5_span_12_Template(rf, ctx) { if (rf & 1) {
384
+ function AIAgentRunFormComponentExtended_div_55_ng_template_5_span_12_Template(rf, ctx) { if (rf & 1) {
370
385
  i0.ɵɵelementStart(0, "span");
371
386
  i0.ɵɵtext(1, "N/A");
372
387
  i0.ɵɵelementEnd();
373
388
  } }
374
- function AIAgentRunFormComponentExtended_div_53_ng_template_5_Template(rf, ctx) { if (rf & 1) {
375
- i0.ɵɵelementStart(0, "div", 72)(1, "div", 73)(2, "label");
389
+ function AIAgentRunFormComponentExtended_div_55_ng_template_5_Template(rf, ctx) { if (rf & 1) {
390
+ i0.ɵɵelementStart(0, "div", 76)(1, "div", 77)(2, "label");
376
391
  i0.ɵɵtext(3, "Override Model");
377
392
  i0.ɵɵelementEnd();
378
393
  i0.ɵɵelementStart(4, "span");
379
- i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_53_ng_template_5_a_5_Template, 2, 1, "a", 74)(6, AIAgentRunFormComponentExtended_div_53_ng_template_5_span_6_Template, 2, 0, "span", 75);
394
+ i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_55_ng_template_5_a_5_Template, 2, 1, "a", 78)(6, AIAgentRunFormComponentExtended_div_55_ng_template_5_span_6_Template, 2, 0, "span", 79);
380
395
  i0.ɵɵelementEnd()();
381
- i0.ɵɵelementStart(7, "div", 73)(8, "label");
396
+ i0.ɵɵelementStart(7, "div", 77)(8, "label");
382
397
  i0.ɵɵtext(9, "Override Vendor");
383
398
  i0.ɵɵelementEnd();
384
399
  i0.ɵɵelementStart(10, "span");
385
- i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_div_53_ng_template_5_a_11_Template, 2, 1, "a", 74)(12, AIAgentRunFormComponentExtended_div_53_ng_template_5_span_12_Template, 2, 0, "span", 75);
400
+ i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_div_55_ng_template_5_a_11_Template, 2, 1, "a", 78)(12, AIAgentRunFormComponentExtended_div_55_ng_template_5_span_12_Template, 2, 0, "span", 79);
386
401
  i0.ɵɵelementEnd()();
387
- i0.ɵɵelementStart(13, "div", 73)(14, "label");
402
+ i0.ɵɵelementStart(13, "div", 77)(14, "label");
388
403
  i0.ɵɵtext(15, "Verbose Logging");
389
404
  i0.ɵɵelementEnd();
390
405
  i0.ɵɵelementStart(16, "span");
391
406
  i0.ɵɵtext(17);
392
407
  i0.ɵɵelementEnd()()();
393
408
  } if (rf & 2) {
394
- const ctx_r1 = i0.ɵɵnextContext(2);
409
+ const ctx_r0 = i0.ɵɵnextContext(2);
395
410
  i0.ɵɵadvance(5);
396
- i0.ɵɵproperty("ngIf", ctx_r1.record.OverrideModelID);
411
+ i0.ɵɵproperty("ngIf", ctx_r0.record.OverrideModelID);
397
412
  i0.ɵɵadvance();
398
- i0.ɵɵproperty("ngIf", !ctx_r1.record.OverrideModelID);
413
+ i0.ɵɵproperty("ngIf", !ctx_r0.record.OverrideModelID);
399
414
  i0.ɵɵadvance(5);
400
- i0.ɵɵproperty("ngIf", ctx_r1.record.OverrideVendorID);
415
+ i0.ɵɵproperty("ngIf", ctx_r0.record.OverrideVendorID);
401
416
  i0.ɵɵadvance();
402
- i0.ɵɵproperty("ngIf", !ctx_r1.record.OverrideVendorID);
417
+ i0.ɵɵproperty("ngIf", !ctx_r0.record.OverrideVendorID);
403
418
  i0.ɵɵadvance(5);
404
- i0.ɵɵtextInterpolate(ctx_r1.record.Verbose ? "Yes" : "No");
419
+ i0.ɵɵtextInterpolate(ctx_r0.record.Verbose ? "Yes" : "No");
405
420
  } }
406
- function AIAgentRunFormComponentExtended_div_53_ng_template_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
421
+ function AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
407
422
  i0.ɵɵelementStart(0, "span");
408
423
  i0.ɵɵtext(1, "In Progress");
409
424
  i0.ɵɵelementEnd();
410
425
  } }
411
- function AIAgentRunFormComponentExtended_div_53_ng_template_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
412
- i0.ɵɵelementStart(0, "span", 76);
426
+ function AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
427
+ i0.ɵɵelementStart(0, "span", 80);
413
428
  i0.ɵɵtext(1, "Yes");
414
429
  i0.ɵɵelementEnd();
415
430
  } }
416
- function AIAgentRunFormComponentExtended_div_53_ng_template_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
417
- i0.ɵɵelementStart(0, "span", 77);
431
+ function AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
432
+ i0.ɵɵelementStart(0, "span", 81);
418
433
  i0.ɵɵtext(1, "No");
419
434
  i0.ɵɵelementEnd();
420
435
  } }
421
- function AIAgentRunFormComponentExtended_div_53_ng_template_7_div_12_Template(rf, ctx) { if (rf & 1) {
422
- i0.ɵɵelementStart(0, "div", 79)(1, "label");
436
+ function AIAgentRunFormComponentExtended_div_55_ng_template_7_div_12_Template(rf, ctx) { if (rf & 1) {
437
+ i0.ɵɵelementStart(0, "div", 83)(1, "label");
423
438
  i0.ɵɵtext(2, "Message");
424
439
  i0.ɵɵelementEnd();
425
- i0.ɵɵelementStart(3, "div", 80);
440
+ i0.ɵɵelementStart(3, "div", 84);
426
441
  i0.ɵɵtext(4);
427
442
  i0.ɵɵelementEnd()();
428
443
  } if (rf & 2) {
429
- const ctx_r1 = i0.ɵɵnextContext(3);
444
+ const ctx_r0 = i0.ɵɵnextContext(3);
430
445
  i0.ɵɵadvance(4);
431
- i0.ɵɵtextInterpolate(ctx_r1.record.Message);
446
+ i0.ɵɵtextInterpolate(ctx_r0.record.Message);
432
447
  } }
433
- function AIAgentRunFormComponentExtended_div_53_ng_template_7_div_13_Template(rf, ctx) { if (rf & 1) {
434
- i0.ɵɵelementStart(0, "div", 79)(1, "label");
448
+ function AIAgentRunFormComponentExtended_div_55_ng_template_7_div_13_Template(rf, ctx) { if (rf & 1) {
449
+ i0.ɵɵelementStart(0, "div", 83)(1, "label");
435
450
  i0.ɵɵtext(2, "Error Message");
436
451
  i0.ɵɵelementEnd();
437
- i0.ɵɵelementStart(3, "div", 77);
452
+ i0.ɵɵelementStart(3, "div", 81);
438
453
  i0.ɵɵtext(4);
439
454
  i0.ɵɵelementEnd()();
440
455
  } if (rf & 2) {
441
- const ctx_r1 = i0.ɵɵnextContext(3);
456
+ const ctx_r0 = i0.ɵɵnextContext(3);
442
457
  i0.ɵɵadvance(4);
443
- i0.ɵɵtextInterpolate(ctx_r1.record.ErrorMessage);
458
+ i0.ɵɵtextInterpolate(ctx_r0.record.ErrorMessage);
444
459
  } }
445
- function AIAgentRunFormComponentExtended_div_53_ng_template_7_Template(rf, ctx) { if (rf & 1) {
446
- i0.ɵɵelementStart(0, "div", 72)(1, "div", 73)(2, "label");
460
+ function AIAgentRunFormComponentExtended_div_55_ng_template_7_Template(rf, ctx) { if (rf & 1) {
461
+ i0.ɵɵelementStart(0, "div", 76)(1, "div", 77)(2, "label");
447
462
  i0.ɵɵtext(3, "Status");
448
463
  i0.ɵɵelementEnd();
449
- i0.ɵɵelementStart(4, "span", 15);
464
+ i0.ɵɵelementStart(4, "span", 17);
450
465
  i0.ɵɵtext(5);
451
466
  i0.ɵɵelementEnd()();
452
- i0.ɵɵelementStart(6, "div", 73)(7, "label");
467
+ i0.ɵɵelementStart(6, "div", 77)(7, "label");
453
468
  i0.ɵɵtext(8, "Success");
454
469
  i0.ɵɵelementEnd();
455
- i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_53_ng_template_7_Conditional_9_Template, 2, 0, "span")(10, AIAgentRunFormComponentExtended_div_53_ng_template_7_Conditional_10_Template, 2, 0, "span", 76)(11, AIAgentRunFormComponentExtended_div_53_ng_template_7_Conditional_11_Template, 2, 0, "span", 77);
470
+ i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_9_Template, 2, 0, "span")(10, AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_10_Template, 2, 0, "span", 80)(11, AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_11_Template, 2, 0, "span", 81);
456
471
  i0.ɵɵelementEnd();
457
- i0.ɵɵtemplate(12, AIAgentRunFormComponentExtended_div_53_ng_template_7_div_12_Template, 5, 1, "div", 78)(13, AIAgentRunFormComponentExtended_div_53_ng_template_7_div_13_Template, 5, 1, "div", 78);
472
+ i0.ɵɵtemplate(12, AIAgentRunFormComponentExtended_div_55_ng_template_7_div_12_Template, 5, 1, "div", 82)(13, AIAgentRunFormComponentExtended_div_55_ng_template_7_div_13_Template, 5, 1, "div", 82);
458
473
  i0.ɵɵelementEnd();
459
474
  } if (rf & 2) {
460
- const ctx_r1 = i0.ɵɵnextContext(2);
475
+ const ctx_r0 = i0.ɵɵnextContext(2);
461
476
  i0.ɵɵadvance(4);
462
- i0.ɵɵattribute("data-status", ctx_r1.record.Status);
477
+ i0.ɵɵattribute("data-status", ctx_r0.record.Status);
463
478
  i0.ɵɵadvance();
464
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Status, " ");
479
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Status, " ");
465
480
  i0.ɵɵadvance(4);
466
- i0.ɵɵconditional(ctx_r1.record.Success === null ? 9 : ctx_r1.record.Success ? 10 : 11);
481
+ i0.ɵɵconditional(ctx_r0.record.Success === null ? 9 : ctx_r0.record.Success ? 10 : 11);
467
482
  i0.ɵɵadvance(3);
468
- i0.ɵɵproperty("ngIf", ctx_r1.record.Message);
483
+ i0.ɵɵproperty("ngIf", ctx_r0.record.Message);
469
484
  i0.ɵɵadvance();
470
- i0.ɵɵproperty("ngIf", ctx_r1.record.ErrorMessage);
485
+ i0.ɵɵproperty("ngIf", ctx_r0.record.ErrorMessage);
471
486
  } }
472
- function AIAgentRunFormComponentExtended_div_53_ng_template_9_Template(rf, ctx) { if (rf & 1) {
473
- i0.ɵɵelementStart(0, "div", 72)(1, "div", 73)(2, "label");
487
+ function AIAgentRunFormComponentExtended_div_55_ng_template_9_Template(rf, ctx) { if (rf & 1) {
488
+ i0.ɵɵelementStart(0, "div", 76)(1, "div", 77)(2, "label");
474
489
  i0.ɵɵtext(3, "Total Tokens Used");
475
490
  i0.ɵɵelementEnd();
476
491
  i0.ɵɵelementStart(4, "span");
477
492
  i0.ɵɵtext(5);
478
493
  i0.ɵɵpipe(6, "number");
479
494
  i0.ɵɵelementEnd()();
480
- i0.ɵɵelementStart(7, "div", 73)(8, "label");
495
+ i0.ɵɵelementStart(7, "div", 77)(8, "label");
481
496
  i0.ɵɵtext(9, "Prompt Tokens");
482
497
  i0.ɵɵelementEnd();
483
498
  i0.ɵɵelementStart(10, "span");
484
499
  i0.ɵɵtext(11);
485
500
  i0.ɵɵpipe(12, "number");
486
501
  i0.ɵɵelementEnd()();
487
- i0.ɵɵelementStart(13, "div", 73)(14, "label");
502
+ i0.ɵɵelementStart(13, "div", 77)(14, "label");
488
503
  i0.ɵɵtext(15, "Completion Tokens");
489
504
  i0.ɵɵelementEnd();
490
505
  i0.ɵɵelementStart(16, "span");
491
506
  i0.ɵɵtext(17);
492
507
  i0.ɵɵpipe(18, "number");
493
508
  i0.ɵɵelementEnd()();
494
- i0.ɵɵelementStart(19, "div", 73)(20, "label");
509
+ i0.ɵɵelementStart(19, "div", 77)(20, "label");
495
510
  i0.ɵɵtext(21, "Total Cost");
496
511
  i0.ɵɵelementEnd();
497
512
  i0.ɵɵelementStart(22, "span");
498
513
  i0.ɵɵtext(23);
499
514
  i0.ɵɵpipe(24, "number");
500
515
  i0.ɵɵelementEnd()();
501
- i0.ɵɵelementStart(25, "div", 73)(26, "label");
516
+ i0.ɵɵelementStart(25, "div", 77)(26, "label");
502
517
  i0.ɵɵtext(27, "Total Prompt Iterations");
503
518
  i0.ɵɵelementEnd();
504
519
  i0.ɵɵelementStart(28, "span");
@@ -506,179 +521,179 @@ function AIAgentRunFormComponentExtended_div_53_ng_template_9_Template(rf, ctx)
506
521
  i0.ɵɵpipe(30, "number");
507
522
  i0.ɵɵelementEnd()()();
508
523
  } if (rf & 2) {
509
- const ctx_r1 = i0.ɵɵnextContext(2);
524
+ const ctx_r0 = i0.ɵɵnextContext(2);
510
525
  i0.ɵɵadvance(5);
511
- i0.ɵɵtextInterpolate(ctx_r1.record.TotalTokensUsed ? i0.ɵɵpipeBind2(6, 5, ctx_r1.record.TotalTokensUsed, "1.0-0") : "N/A");
526
+ i0.ɵɵtextInterpolate(ctx_r0.record.TotalTokensUsed ? i0.ɵɵpipeBind2(6, 5, ctx_r0.record.TotalTokensUsed, "1.0-0") : "N/A");
512
527
  i0.ɵɵadvance(6);
513
- i0.ɵɵtextInterpolate(ctx_r1.record.TotalPromptTokensUsed ? i0.ɵɵpipeBind2(12, 8, ctx_r1.record.TotalPromptTokensUsed, "1.0-0") : "N/A");
528
+ i0.ɵɵtextInterpolate(ctx_r0.record.TotalPromptTokensUsed ? i0.ɵɵpipeBind2(12, 8, ctx_r0.record.TotalPromptTokensUsed, "1.0-0") : "N/A");
514
529
  i0.ɵɵadvance(6);
515
- i0.ɵɵtextInterpolate(ctx_r1.record.TotalCompletionTokensUsed ? i0.ɵɵpipeBind2(18, 11, ctx_r1.record.TotalCompletionTokensUsed, "1.0-0") : "N/A");
530
+ i0.ɵɵtextInterpolate(ctx_r0.record.TotalCompletionTokensUsed ? i0.ɵɵpipeBind2(18, 11, ctx_r0.record.TotalCompletionTokensUsed, "1.0-0") : "N/A");
516
531
  i0.ɵɵadvance(6);
517
- i0.ɵɵtextInterpolate(ctx_r1.record.TotalCost != null ? "$" + i0.ɵɵpipeBind2(24, 14, ctx_r1.record.TotalCost, "1.2-4") : "N/A");
532
+ i0.ɵɵtextInterpolate(ctx_r0.record.TotalCost != null ? "$" + i0.ɵɵpipeBind2(24, 14, ctx_r0.record.TotalCost, "1.2-4") : "N/A");
518
533
  i0.ɵɵadvance(6);
519
- i0.ɵɵtextInterpolate(ctx_r1.record.TotalPromptIterations != null ? i0.ɵɵpipeBind2(30, 17, ctx_r1.record.TotalPromptIterations, "1.0-0") : "N/A");
534
+ i0.ɵɵtextInterpolate(ctx_r0.record.TotalPromptIterations != null ? i0.ɵɵpipeBind2(30, 17, ctx_r0.record.TotalPromptIterations, "1.0-0") : "N/A");
520
535
  } }
521
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
522
- i0.ɵɵelement(0, "mj-code-editor", 83);
536
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
537
+ i0.ɵɵelement(0, "mj-code-editor", 87);
523
538
  } if (rf & 2) {
524
- const ctx_r1 = i0.ɵɵnextContext(4);
525
- i0.ɵɵproperty("ngModel", ctx_r1.parsedResult)("language", "json")("readonly", true);
539
+ const ctx_r0 = i0.ɵɵnextContext(4);
540
+ i0.ɵɵproperty("ngModel", ctx_r0.parsedResult)("language", "json")("readonly", true);
526
541
  } }
527
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
528
- i0.ɵɵelementStart(0, "div", 84);
529
- i0.ɵɵelement(1, "i", 43);
542
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
543
+ i0.ɵɵelementStart(0, "div", 88);
544
+ i0.ɵɵelement(1, "i", 47);
530
545
  i0.ɵɵtext(2, " Loading result data... ");
531
546
  i0.ɵɵelementEnd();
532
547
  } }
533
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_ng_template_1_Template(rf, ctx) { if (rf & 1) {
534
- i0.ɵɵelementStart(0, "div", 82);
535
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 83)(2, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_ng_template_1_Conditional_2_Template, 3, 0, "div", 84);
548
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_ng_template_1_Template(rf, ctx) { if (rf & 1) {
549
+ i0.ɵɵelementStart(0, "div", 86);
550
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 87)(2, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_ng_template_1_Conditional_2_Template, 3, 0, "div", 88);
536
551
  i0.ɵɵelementEnd();
537
552
  } if (rf & 2) {
538
- const ctx_r1 = i0.ɵɵnextContext(3);
553
+ const ctx_r0 = i0.ɵɵnextContext(3);
539
554
  i0.ɵɵadvance();
540
- i0.ɵɵconditional(ctx_r1.isParsingComplete ? 1 : 2);
555
+ i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
541
556
  } }
542
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_Template(rf, ctx) { if (rf & 1) {
543
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 81);
544
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_ng_template_1_Template, 3, 1, "ng-template", 63);
557
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_Template(rf, ctx) { if (rf & 1) {
558
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 85);
559
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_ng_template_1_Template, 3, 1, "ng-template", 67);
545
560
  i0.ɵɵelementEnd();
546
561
  } }
547
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
548
- i0.ɵɵelement(0, "mj-code-editor", 83);
562
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
563
+ i0.ɵɵelement(0, "mj-code-editor", 87);
549
564
  } if (rf & 2) {
550
- const ctx_r1 = i0.ɵɵnextContext(4);
551
- i0.ɵɵproperty("ngModel", ctx_r1.parsedStartingPayload)("language", "json")("readonly", true);
565
+ const ctx_r0 = i0.ɵɵnextContext(4);
566
+ i0.ɵɵproperty("ngModel", ctx_r0.parsedStartingPayload)("language", "json")("readonly", true);
552
567
  } }
553
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
554
- i0.ɵɵelementStart(0, "div", 84);
555
- i0.ɵɵelement(1, "i", 43);
568
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
569
+ i0.ɵɵelementStart(0, "div", 88);
570
+ i0.ɵɵelement(1, "i", 47);
556
571
  i0.ɵɵtext(2, " Loading payload data... ");
557
572
  i0.ɵɵelementEnd();
558
573
  } }
559
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_ng_template_1_Template(rf, ctx) { if (rf & 1) {
560
- i0.ɵɵelementStart(0, "div", 82);
561
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 83)(2, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_ng_template_1_Conditional_2_Template, 3, 0, "div", 84);
574
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_ng_template_1_Template(rf, ctx) { if (rf & 1) {
575
+ i0.ɵɵelementStart(0, "div", 86);
576
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 87)(2, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_ng_template_1_Conditional_2_Template, 3, 0, "div", 88);
562
577
  i0.ɵɵelementEnd();
563
578
  } if (rf & 2) {
564
- const ctx_r1 = i0.ɵɵnextContext(3);
579
+ const ctx_r0 = i0.ɵɵnextContext(3);
565
580
  i0.ɵɵadvance();
566
- i0.ɵɵconditional(ctx_r1.isParsingComplete ? 1 : 2);
581
+ i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
567
582
  } }
568
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_Template(rf, ctx) { if (rf & 1) {
569
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 85);
570
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_ng_template_1_Template, 3, 1, "ng-template", 63);
583
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_Template(rf, ctx) { if (rf & 1) {
584
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 89);
585
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_ng_template_1_Template, 3, 1, "ng-template", 67);
571
586
  i0.ɵɵelementEnd();
572
587
  } }
573
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
574
- i0.ɵɵelement(0, "mj-code-editor", 83);
588
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
589
+ i0.ɵɵelement(0, "mj-code-editor", 87);
575
590
  } if (rf & 2) {
576
- const ctx_r1 = i0.ɵɵnextContext(4);
577
- i0.ɵɵproperty("ngModel", ctx_r1.parsedData)("language", "json")("readonly", true);
591
+ const ctx_r0 = i0.ɵɵnextContext(4);
592
+ i0.ɵɵproperty("ngModel", ctx_r0.parsedData)("language", "json")("readonly", true);
578
593
  } }
579
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
580
- i0.ɵɵelementStart(0, "div", 84);
581
- i0.ɵɵelement(1, "i", 43);
594
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
595
+ i0.ɵɵelementStart(0, "div", 88);
596
+ i0.ɵɵelement(1, "i", 47);
582
597
  i0.ɵɵtext(2, " Loading execution data... ");
583
598
  i0.ɵɵelementEnd();
584
599
  } }
585
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_ng_template_1_Template(rf, ctx) { if (rf & 1) {
586
- i0.ɵɵelementStart(0, "div", 82);
587
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 83)(2, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_ng_template_1_Conditional_2_Template, 3, 0, "div", 84);
600
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_ng_template_1_Template(rf, ctx) { if (rf & 1) {
601
+ i0.ɵɵelementStart(0, "div", 86);
602
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 87)(2, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_ng_template_1_Conditional_2_Template, 3, 0, "div", 88);
588
603
  i0.ɵɵelementEnd();
589
604
  } if (rf & 2) {
590
- const ctx_r1 = i0.ɵɵnextContext(3);
605
+ const ctx_r0 = i0.ɵɵnextContext(3);
591
606
  i0.ɵɵadvance();
592
- i0.ɵɵconditional(ctx_r1.isParsingComplete ? 1 : 2);
607
+ i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
593
608
  } }
594
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_Template(rf, ctx) { if (rf & 1) {
595
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 86);
596
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_ng_template_1_Template, 3, 1, "ng-template", 63);
609
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_Template(rf, ctx) { if (rf & 1) {
610
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 90);
611
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_ng_template_1_Template, 3, 1, "ng-template", 67);
597
612
  i0.ɵɵelementEnd();
598
613
  } }
599
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
600
- i0.ɵɵelement(0, "mj-code-editor", 83);
614
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
615
+ i0.ɵɵelement(0, "mj-code-editor", 87);
601
616
  } if (rf & 2) {
602
- const ctx_r1 = i0.ɵɵnextContext(4);
603
- i0.ɵɵproperty("ngModel", ctx_r1.parsedFinalPayload)("language", "json")("readonly", true);
617
+ const ctx_r0 = i0.ɵɵnextContext(4);
618
+ i0.ɵɵproperty("ngModel", ctx_r0.parsedFinalPayload)("language", "json")("readonly", true);
604
619
  } }
605
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
606
- i0.ɵɵelementStart(0, "div", 84);
607
- i0.ɵɵelement(1, "i", 43);
620
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
621
+ i0.ɵɵelementStart(0, "div", 88);
622
+ i0.ɵɵelement(1, "i", 47);
608
623
  i0.ɵɵtext(2, " Loading final payload data... ");
609
624
  i0.ɵɵelementEnd();
610
625
  } }
611
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_ng_template_1_Template(rf, ctx) { if (rf & 1) {
612
- i0.ɵɵelementStart(0, "div", 82);
613
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 83)(2, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_ng_template_1_Conditional_2_Template, 3, 0, "div", 84);
626
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_ng_template_1_Template(rf, ctx) { if (rf & 1) {
627
+ i0.ɵɵelementStart(0, "div", 86);
628
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 87)(2, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_ng_template_1_Conditional_2_Template, 3, 0, "div", 88);
614
629
  i0.ɵɵelementEnd();
615
630
  } if (rf & 2) {
616
- const ctx_r1 = i0.ɵɵnextContext(3);
631
+ const ctx_r0 = i0.ɵɵnextContext(3);
617
632
  i0.ɵɵadvance();
618
- i0.ɵɵconditional(ctx_r1.isParsingComplete ? 1 : 2);
633
+ i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
619
634
  } }
620
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_Template(rf, ctx) { if (rf & 1) {
621
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 87);
622
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_ng_template_1_Template, 3, 1, "ng-template", 63);
635
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_Template(rf, ctx) { if (rf & 1) {
636
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 91);
637
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_ng_template_1_Template, 3, 1, "ng-template", 67);
623
638
  i0.ɵɵelementEnd();
624
639
  } }
625
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
626
- i0.ɵɵelement(0, "mj-deep-diff", 90);
640
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
641
+ i0.ɵɵelement(0, "mj-deep-diff", 94);
627
642
  } if (rf & 2) {
628
- const ctx_r1 = i0.ɵɵnextContext(4);
629
- i0.ɵɵproperty("oldValue", ctx_r1.startingPayloadObject)("newValue", ctx_r1.finalPayloadObject)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", false)("maxDepth", 10)("maxStringLength", 200)("treatNullAsUndefined", true);
643
+ const ctx_r0 = i0.ɵɵnextContext(4);
644
+ i0.ɵɵproperty("oldValue", ctx_r0.startingPayloadObject)("newValue", ctx_r0.finalPayloadObject)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", false)("maxDepth", 10)("maxStringLength", 200)("treatNullAsUndefined", true);
630
645
  } }
631
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
632
- i0.ɵɵelementStart(0, "div", 84);
633
- i0.ɵɵelement(1, "i", 43);
646
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
647
+ i0.ɵɵelementStart(0, "div", 88);
648
+ i0.ɵɵelement(1, "i", 47);
634
649
  i0.ɵɵtext(2, " Loading payload diff... ");
635
650
  i0.ɵɵelementEnd();
636
651
  } }
637
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_ng_template_1_Template(rf, ctx) { if (rf & 1) {
638
- i0.ɵɵelementStart(0, "div", 89);
639
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_ng_template_1_Conditional_1_Template, 1, 9, "mj-deep-diff", 90)(2, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_ng_template_1_Conditional_2_Template, 3, 0, "div", 84);
652
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_ng_template_1_Template(rf, ctx) { if (rf & 1) {
653
+ i0.ɵɵelementStart(0, "div", 93);
654
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_ng_template_1_Conditional_1_Template, 1, 9, "mj-deep-diff", 94)(2, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_ng_template_1_Conditional_2_Template, 3, 0, "div", 88);
640
655
  i0.ɵɵelementEnd();
641
656
  } if (rf & 2) {
642
- const ctx_r1 = i0.ɵɵnextContext(3);
657
+ const ctx_r0 = i0.ɵɵnextContext(3);
643
658
  i0.ɵɵadvance();
644
- i0.ɵɵconditional(ctx_r1.isParsingComplete ? 1 : 2);
659
+ i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
645
660
  } }
646
- function AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_Template(rf, ctx) { if (rf & 1) {
647
- i0.ɵɵelementStart(0, "kendo-panelbar-item", 88);
648
- i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_ng_template_1_Template, 3, 1, "ng-template", 63);
661
+ function AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_Template(rf, ctx) { if (rf & 1) {
662
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 92);
663
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_ng_template_1_Template, 3, 1, "ng-template", 67);
649
664
  i0.ɵɵelementEnd();
650
665
  } }
651
- function AIAgentRunFormComponentExtended_div_53_Template(rf, ctx) { if (rf & 1) {
652
- i0.ɵɵelementStart(0, "div", 60)(1, "kendo-panelbar", 61)(2, "kendo-panelbar-item", 62);
653
- i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_53_ng_template_3_Template, 31, 9, "ng-template", 63);
666
+ function AIAgentRunFormComponentExtended_div_55_Template(rf, ctx) { if (rf & 1) {
667
+ i0.ɵɵelementStart(0, "div", 64)(1, "kendo-panelbar", 65)(2, "kendo-panelbar-item", 66);
668
+ i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_55_ng_template_3_Template, 31, 9, "ng-template", 67);
654
669
  i0.ɵɵelementEnd();
655
- i0.ɵɵelementStart(4, "kendo-panelbar-item", 64);
656
- i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_53_ng_template_5_Template, 18, 5, "ng-template", 63);
670
+ i0.ɵɵelementStart(4, "kendo-panelbar-item", 68);
671
+ i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_55_ng_template_5_Template, 18, 5, "ng-template", 67);
657
672
  i0.ɵɵelementEnd();
658
- i0.ɵɵelementStart(6, "kendo-panelbar-item", 65);
659
- i0.ɵɵtemplate(7, AIAgentRunFormComponentExtended_div_53_ng_template_7_Template, 14, 5, "ng-template", 63);
673
+ i0.ɵɵelementStart(6, "kendo-panelbar-item", 69);
674
+ i0.ɵɵtemplate(7, AIAgentRunFormComponentExtended_div_55_ng_template_7_Template, 14, 5, "ng-template", 67);
660
675
  i0.ɵɵelementEnd();
661
- i0.ɵɵelementStart(8, "kendo-panelbar-item", 66);
662
- i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_53_ng_template_9_Template, 31, 20, "ng-template", 63);
676
+ i0.ɵɵelementStart(8, "kendo-panelbar-item", 70);
677
+ i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_55_ng_template_9_Template, 31, 20, "ng-template", 67);
663
678
  i0.ɵɵelementEnd();
664
- i0.ɵɵtemplate(10, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_10_Template, 2, 0, "kendo-panelbar-item", 67)(11, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_11_Template, 2, 0, "kendo-panelbar-item", 68)(12, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_12_Template, 2, 0, "kendo-panelbar-item", 69)(13, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_13_Template, 2, 0, "kendo-panelbar-item", 70)(14, AIAgentRunFormComponentExtended_div_53_kendo_panelbar_item_14_Template, 2, 0, "kendo-panelbar-item", 71);
679
+ i0.ɵɵtemplate(10, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_10_Template, 2, 0, "kendo-panelbar-item", 71)(11, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_11_Template, 2, 0, "kendo-panelbar-item", 72)(12, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_12_Template, 2, 0, "kendo-panelbar-item", 73)(13, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_13_Template, 2, 0, "kendo-panelbar-item", 74)(14, AIAgentRunFormComponentExtended_div_55_kendo_panelbar_item_14_Template, 2, 0, "kendo-panelbar-item", 75);
665
680
  i0.ɵɵelementEnd()();
666
681
  } if (rf & 2) {
667
- const ctx_r1 = i0.ɵɵnextContext();
682
+ const ctx_r0 = i0.ɵɵnextContext();
668
683
  i0.ɵɵadvance();
669
684
  i0.ɵɵproperty("keepItemContent", true);
670
685
  i0.ɵɵadvance();
671
686
  i0.ɵɵproperty("expanded", true);
672
687
  i0.ɵɵadvance(8);
673
- i0.ɵɵproperty("ngIf", ctx_r1.record.Result);
688
+ i0.ɵɵproperty("ngIf", ctx_r0.record.Result);
674
689
  i0.ɵɵadvance();
675
- i0.ɵɵproperty("ngIf", ctx_r1.record.StartingPayload);
690
+ i0.ɵɵproperty("ngIf", ctx_r0.record.StartingPayload);
676
691
  i0.ɵɵadvance();
677
- i0.ɵɵproperty("ngIf", ctx_r1.record.Data);
692
+ i0.ɵɵproperty("ngIf", ctx_r0.record.Data);
678
693
  i0.ɵɵadvance();
679
- i0.ɵɵproperty("ngIf", ctx_r1.record.FinalPayload);
694
+ i0.ɵɵproperty("ngIf", ctx_r0.record.FinalPayload);
680
695
  i0.ɵɵadvance();
681
- i0.ɵɵproperty("ngIf", ctx_r1.showPayloadDiff);
696
+ i0.ɵɵproperty("ngIf", ctx_r0.showPayloadDiff);
682
697
  } }
683
698
  let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended extends AIAgentRunFormComponent {
684
699
  constructor(elementRef, sharedService, router, route, cdr, costService) {
@@ -1210,64 +1225,70 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1210
1225
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineComponent = _t.first);
1211
1226
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analyticsComponent = _t.first);
1212
1227
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.visualizationComponent = _t.first);
1213
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 54, vars: 29, consts: [["visualizationComponent", ""], ["analyticsComponent", ""], [1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "fas", "fa-robot"], [1, "header-info"], [1, "meta-info"], ["class", "agent-name", 4, "ngIf"], [1, "run-id"], ["class", "parent-run", 4, "ngIf"], [1, "header-right"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], ["class", "stat", 4, "ngIf"], ["class", "configuration-bar", 4, "ngIf"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-diagram-project"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-info-circle"], [1, "content-area"], ["class", "tab-content", "style", "height: 100%;", 4, "ngIf"], ["class", "tab-content", 4, "ngIf"], [1, "agent-name"], ["href", "javascript:void(0)", 1, "entity-link", 3, "click"], [1, "parent-run"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], ["class", "value", 4, "ngIf"], ["class", "value loading", 4, "ngIf"], [1, "value", "loading"], [1, "fas", "fa-spinner", "fa-spin"], [1, "configuration-bar"], [1, "config-item"], [1, "fas", "fa-cog"], [1, "config-content"], [1, "config-label"], [1, "config-value"], [1, "tab-content", 2, "height", "100%"], ["orientation", "horizontal", 2, "height", "100%"], [3, "min"], [3, "itemSelected", "navigateToEntity", "agentRunCompleted", "aiAgentRunId", "dataHelper", "autoRefresh", "refreshInterval"], [3, "size", "min", "collapsed"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"], [3, "aiAgentRunId", "dataHelper", 4, "ngIf"], [3, "aiAgentRunId", "dataHelper"], [3, "agentRunId", 4, "ngIf"], [3, "agentRunId"], [1, "tab-content"], [3, "keepItemContent"], ["title", "General Information", 3, "expanded"], ["kendoPanelBarContent", ""], ["title", "Execution Settings"], ["title", "Execution Status"], ["title", "Usage & Cost"], ["title", "Result", 4, "ngIf"], ["title", "Starting Payload", 4, "ngIf"], ["title", "Execution Data", 4, "ngIf"], ["title", "Final Payload", 4, "ngIf"], ["title", "Payload Diff", 4, "ngIf"], [1, "details-grid"], [1, "detail-item"], ["href", "javascript:void(0)", "class", "entity-link", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "success"], [1, "error-message"], ["class", "detail-item full-width", 4, "ngIf"], [1, "detail-item", "full-width"], [1, "message"], ["title", "Result"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModel", "language", "readonly"], [2, "padding", "20px", "text-align", "center", "color", "#666"], ["title", "Starting Payload"], ["title", "Execution Data"], ["title", "Final Payload"], ["title", "Payload Diff"], [2, "padding", "20px", "background", "#f8f9fa"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"]], template: function AIAgentRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1228
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 56, vars: 32, consts: [["visualizationComponent", ""], ["analyticsComponent", ""], [1, "record-form-container", "ai-agent-run-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], ["class", "agent-logo", 3, "src", "alt", 4, "ngIf"], ["class", "fas", 3, "ngClass", 4, "ngIf"], ["class", "fas fa-robot", 4, "ngIf"], [1, "header-info"], [1, "meta-info"], ["class", "agent-name", 4, "ngIf"], [1, "run-id"], ["class", "parent-run", 4, "ngIf"], [1, "header-right"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fas", "fa-sync-alt"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], ["class", "stat", 4, "ngIf"], ["class", "configuration-bar", 4, "ngIf"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-stream"], [1, "fas", "fa-diagram-project"], [1, "fas", "fa-chart-line"], [1, "fas", "fa-info-circle"], [1, "content-area"], ["class", "tab-content", "style", "height: 100%;", 4, "ngIf"], ["class", "tab-content", 4, "ngIf"], [1, "agent-logo", 3, "src", "alt"], [1, "fas", "fa-robot"], [1, "agent-name"], ["href", "javascript:void(0)", 1, "entity-link", 3, "click"], [1, "parent-run"], [1, "fas", "fa-level-up-alt"], [1, "parent-link", 3, "click"], ["class", "value", 4, "ngIf"], ["class", "value loading", 4, "ngIf"], [1, "value", "loading"], [1, "fas", "fa-spinner", "fa-spin"], [1, "configuration-bar"], [1, "config-item"], [1, "fas", "fa-cog"], [1, "config-content"], [1, "config-label"], [1, "config-value"], [1, "tab-content", 2, "height", "100%"], ["orientation", "horizontal", 2, "height", "100%"], [3, "min"], [3, "itemSelected", "navigateToEntity", "agentRunCompleted", "aiAgentRunId", "dataHelper", "autoRefresh", "refreshInterval"], [3, "size", "min", "collapsed"], [3, "closePanel", "navigateToActionLog", "copyToClipboard", "selectedTimelineItem"], [3, "aiAgentRunId", "dataHelper", 4, "ngIf"], [3, "aiAgentRunId", "dataHelper"], [3, "agentRunId", 4, "ngIf"], [3, "agentRunId"], [1, "tab-content"], [3, "keepItemContent"], ["title", "General Information", 3, "expanded"], ["kendoPanelBarContent", ""], ["title", "Execution Settings"], ["title", "Execution Status"], ["title", "Usage & Cost"], ["title", "Result", 4, "ngIf"], ["title", "Starting Payload", 4, "ngIf"], ["title", "Execution Data", 4, "ngIf"], ["title", "Final Payload", 4, "ngIf"], ["title", "Payload Diff", 4, "ngIf"], [1, "details-grid"], [1, "detail-item"], ["href", "javascript:void(0)", "class", "entity-link", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "success"], [1, "error-message"], ["class", "detail-item full-width", 4, "ngIf"], [1, "detail-item", "full-width"], [1, "message"], ["title", "Result"], [1, "result-viewer"], [2, "height", "300px", "width", "100%", 3, "ngModel", "language", "readonly"], [2, "padding", "20px", "text-align", "center", "color", "#666"], ["title", "Starting Payload"], ["title", "Execution Data"], ["title", "Final Payload"], ["title", "Payload Diff"], [2, "padding", "20px", "background", "#f8f9fa"], [3, "oldValue", "newValue", "title", "showSummary", "showUnchanged", "expandAll", "maxDepth", "maxStringLength", "treatNullAsUndefined"]], template: function AIAgentRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1214
1229
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "div", 6)(5, "div", 7);
1215
- i0.ɵɵelement(6, "i", 8);
1230
+ i0.ɵɵtemplate(6, AIAgentRunFormComponentExtended_img_6_Template, 1, 2, "img", 8)(7, AIAgentRunFormComponentExtended_i_7_Template, 1, 1, "i", 9)(8, AIAgentRunFormComponentExtended_i_8_Template, 1, 0, "i", 10);
1216
1231
  i0.ɵɵelementEnd();
1217
- i0.ɵɵelementStart(7, "div", 9)(8, "h2");
1218
- i0.ɵɵtext(9, "AI Agent Run");
1232
+ i0.ɵɵelementStart(9, "div", 11)(10, "h2");
1233
+ i0.ɵɵtext(11, "AI Agent Run");
1219
1234
  i0.ɵɵelementEnd();
1220
- i0.ɵɵelementStart(10, "div", 10);
1221
- i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_span_11_Template, 3, 1, "span", 11);
1222
- i0.ɵɵelementStart(12, "span", 12);
1223
- i0.ɵɵtext(13);
1235
+ i0.ɵɵelementStart(12, "div", 12);
1236
+ i0.ɵɵtemplate(13, AIAgentRunFormComponentExtended_span_13_Template, 3, 1, "span", 13);
1237
+ i0.ɵɵelementStart(14, "span", 14);
1238
+ i0.ɵɵtext(15);
1224
1239
  i0.ɵɵelementEnd();
1225
- i0.ɵɵtemplate(14, AIAgentRunFormComponentExtended_span_14_Template, 4, 0, "span", 13);
1240
+ i0.ɵɵtemplate(16, AIAgentRunFormComponentExtended_span_16_Template, 4, 0, "span", 15);
1226
1241
  i0.ɵɵelementEnd()()();
1227
- i0.ɵɵelementStart(15, "div", 14)(16, "div", 15);
1228
- i0.ɵɵelement(17, "i", 16);
1229
- i0.ɵɵtext(18);
1242
+ i0.ɵɵelementStart(17, "div", 16)(18, "div", 17);
1243
+ i0.ɵɵelement(19, "i", 18);
1244
+ i0.ɵɵtext(20);
1230
1245
  i0.ɵɵelementEnd();
1231
- i0.ɵɵelementStart(19, "div", 17)(20, "button", 18);
1232
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_20_listener() { return ctx.refreshData(); });
1233
- i0.ɵɵelement(21, "i", 19);
1246
+ i0.ɵɵelementStart(21, "div", 19)(22, "button", 20);
1247
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_22_listener() { return ctx.refreshData(); });
1248
+ i0.ɵɵelement(23, "i", 21);
1234
1249
  i0.ɵɵelementEnd()()()();
1235
- i0.ɵɵelementStart(22, "div", 20)(23, "div", 21)(24, "span", 22);
1236
- i0.ɵɵtext(25, "Started");
1250
+ i0.ɵɵelementStart(24, "div", 22)(25, "div", 23)(26, "span", 24);
1251
+ i0.ɵɵtext(27, "Started");
1237
1252
  i0.ɵɵelementEnd();
1238
- i0.ɵɵelementStart(26, "span", 23);
1239
- i0.ɵɵtext(27);
1240
- i0.ɵɵpipe(28, "date");
1253
+ i0.ɵɵelementStart(28, "span", 25);
1254
+ i0.ɵɵtext(29);
1255
+ i0.ɵɵpipe(30, "date");
1241
1256
  i0.ɵɵelementEnd()();
1242
- i0.ɵɵtemplate(29, AIAgentRunFormComponentExtended_div_29_Template, 6, 4, "div", 24)(30, AIAgentRunFormComponentExtended_div_30_Template, 5, 1, "div", 24)(31, AIAgentRunFormComponentExtended_div_31_Template, 5, 5, "div", 24)(32, AIAgentRunFormComponentExtended_div_32_Template, 5, 2, "div", 24)(33, AIAgentRunFormComponentExtended_div_33_Template, 5, 2, "div", 24)(34, AIAgentRunFormComponentExtended_div_34_Template, 5, 1, "div", 24);
1257
+ i0.ɵɵtemplate(31, AIAgentRunFormComponentExtended_div_31_Template, 6, 4, "div", 26)(32, AIAgentRunFormComponentExtended_div_32_Template, 5, 1, "div", 26)(33, AIAgentRunFormComponentExtended_div_33_Template, 5, 5, "div", 26)(34, AIAgentRunFormComponentExtended_div_34_Template, 5, 2, "div", 26)(35, AIAgentRunFormComponentExtended_div_35_Template, 5, 2, "div", 26)(36, AIAgentRunFormComponentExtended_div_36_Template, 5, 1, "div", 26);
1243
1258
  i0.ɵɵelementEnd();
1244
- i0.ɵɵtemplate(35, AIAgentRunFormComponentExtended_div_35_Template, 9, 1, "div", 25);
1259
+ i0.ɵɵtemplate(37, AIAgentRunFormComponentExtended_div_37_Template, 9, 1, "div", 27);
1245
1260
  i0.ɵɵelementEnd();
1246
- i0.ɵɵelementStart(36, "div", 26)(37, "button", 27);
1247
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_37_listener() { return ctx.changeTab("timeline"); });
1248
- i0.ɵɵelement(38, "i", 28);
1249
- i0.ɵɵtext(39, " Timeline ");
1261
+ i0.ɵɵelementStart(38, "div", 28)(39, "button", 29);
1262
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_39_listener() { return ctx.changeTab("timeline"); });
1263
+ i0.ɵɵelement(40, "i", 30);
1264
+ i0.ɵɵtext(41, " Timeline ");
1250
1265
  i0.ɵɵelementEnd();
1251
- i0.ɵɵelementStart(40, "button", 27);
1252
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_40_listener() { return ctx.changeTab("visualization"); });
1253
- i0.ɵɵelement(41, "i", 29);
1254
- i0.ɵɵtext(42, " Visualization ");
1266
+ i0.ɵɵelementStart(42, "button", 29);
1267
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_42_listener() { return ctx.changeTab("visualization"); });
1268
+ i0.ɵɵelement(43, "i", 31);
1269
+ i0.ɵɵtext(44, " Visualization ");
1255
1270
  i0.ɵɵelementEnd();
1256
- i0.ɵɵelementStart(43, "button", 27);
1257
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_43_listener() { return ctx.changeTab("analytics"); });
1258
- i0.ɵɵelement(44, "i", 30);
1259
- i0.ɵɵtext(45, " Analytics ");
1271
+ i0.ɵɵelementStart(45, "button", 29);
1272
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_45_listener() { return ctx.changeTab("analytics"); });
1273
+ i0.ɵɵelement(46, "i", 32);
1274
+ i0.ɵɵtext(47, " Analytics ");
1260
1275
  i0.ɵɵelementEnd();
1261
- i0.ɵɵelementStart(46, "button", 27);
1262
- i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_46_listener() { return ctx.changeTab("details"); });
1263
- i0.ɵɵelement(47, "i", 31);
1264
- i0.ɵɵtext(48, " Details ");
1276
+ i0.ɵɵelementStart(48, "button", 29);
1277
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_48_listener() { return ctx.changeTab("details"); });
1278
+ i0.ɵɵelement(49, "i", 33);
1279
+ i0.ɵɵtext(50, " Details ");
1265
1280
  i0.ɵɵelementEnd()();
1266
- i0.ɵɵelementStart(49, "div", 32);
1267
- i0.ɵɵtemplate(50, AIAgentRunFormComponentExtended_div_50_Template, 6, 9, "div", 33)(51, AIAgentRunFormComponentExtended_div_51_Template, 2, 1, "div", 33)(52, AIAgentRunFormComponentExtended_div_52_Template, 2, 1, "div", 33)(53, AIAgentRunFormComponentExtended_div_53_Template, 15, 7, "div", 34);
1281
+ i0.ɵɵelementStart(51, "div", 34);
1282
+ i0.ɵɵtemplate(52, AIAgentRunFormComponentExtended_div_52_Template, 6, 9, "div", 35)(53, AIAgentRunFormComponentExtended_div_53_Template, 2, 1, "div", 35)(54, AIAgentRunFormComponentExtended_div_54_Template, 2, 1, "div", 35)(55, AIAgentRunFormComponentExtended_div_55_Template, 15, 7, "div", 36);
1268
1283
  i0.ɵɵelementEnd()()();
1269
1284
  } if (rf & 2) {
1270
- i0.ɵɵadvance(11);
1285
+ i0.ɵɵadvance(6);
1286
+ i0.ɵɵproperty("ngIf", ctx.agent && ctx.agent.LogoURL);
1287
+ i0.ɵɵadvance();
1288
+ i0.ɵɵproperty("ngIf", ctx.agent && !ctx.agent.LogoURL && ctx.agent.IconClass);
1289
+ i0.ɵɵadvance();
1290
+ i0.ɵɵproperty("ngIf", !ctx.agent || !ctx.agent.LogoURL && !ctx.agent.IconClass);
1291
+ i0.ɵɵadvance(5);
1271
1292
  i0.ɵɵproperty("ngIf", ctx.agent);
1272
1293
  i0.ɵɵadvance(2);
1273
1294
  i0.ɵɵtextInterpolate(ctx.record.ID);
@@ -1280,7 +1301,7 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1280
1301
  i0.ɵɵadvance();
1281
1302
  i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
1282
1303
  i0.ɵɵadvance(9);
1283
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(28, 26, ctx.record.StartedAt, "medium"));
1304
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(30, 29, ctx.record.StartedAt, "medium"));
1284
1305
  i0.ɵɵadvance(2);
1285
1306
  i0.ɵɵproperty("ngIf", ctx.record.CompletedAt);
1286
1307
  i0.ɵɵadvance();
@@ -1311,7 +1332,7 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1311
1332
  i0.ɵɵproperty("ngIf", ctx.activeTab === "analytics");
1312
1333
  i0.ɵɵadvance();
1313
1334
  i0.ɵɵproperty("ngIf", ctx.activeTab === "details");
1314
- } }, dependencies: [i4.NgClass, i4.NgIf, i5.NgControlStatus, i5.NgModel, i6.PanelBarComponent, i6.PanelBarItemComponent, i6.PanelBarContentDirective, i6.SplitterComponent, i6.SplitterPaneComponent, i7.CodeEditorComponent, i8.DeepDiffComponent, i9.AIAgentRunTimelineComponent, i10.AIAgentRunAnalyticsComponent, i11.AIAgentRunVisualizationComponent, i12.AIAgentRunStepDetailComponent, i4.DecimalPipe, i4.DatePipe], styles: [".ai-agent-run-form[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.parent-run[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link[_ngcontent-%COMP%] {\n color: #ff6358;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link[_ngcontent-%COMP%]:hover {\n color: #ff4444;\n text-decoration: underline;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #495057;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n.status-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: #fff3cd;\n color: #856404;\n}\n\n.status-badge[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n\n\n.configuration-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid #e9ecef;\n margin-top: 16px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: #6c757d;\n width: 24px;\n text-align: center;\n}\n\n.config-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.config-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%] {\n color: #007bff;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%]:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n.stat[_ngcontent-%COMP%] .value.success[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.stat[_ngcontent-%COMP%] .value.error[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid #dee2e6;\n background: #f8f9fa;\n}\n\n.tab[_ngcontent-%COMP%] {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #6c757d;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: #495057;\n background: rgba(0,0,0,0.02);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n background: white;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n position: relative;\n height: calc(100vh - 390px);\n overflow: auto;\n background: white;\n}\n\n.tab-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n}\n\n\n\n.tab-content[ng-reflect-ng-if=\"true\"][_ngcontent-%COMP%] > kendo-panelbar[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6b7280;\n font-size: 14px;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: #6b7280;\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.08);\n color: #1976d2;\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container[_ngcontent-%COMP%] > .timeline[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] {\n transform: translateX(8px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: #f0f7ff;\n border-color: #2196f3;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n border: 3px solid #e9ecef;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"][_ngcontent-%COMP%] {\n border-color: #28a745;\n color: #28a745;\n}\n\n.timeline-marker[data-color=\"error\"][_ngcontent-%COMP%] {\n border-color: #dc3545;\n color: #dc3545;\n}\n\n.timeline-marker[data-color=\"info\"][_ngcontent-%COMP%] {\n border-color: #17a2b8;\n color: #17a2b8;\n}\n\n.timeline-marker[data-color=\"warning\"][_ngcontent-%COMP%] {\n border-color: #ffc107;\n color: #ffc107;\n}\n\n.timeline-marker[data-color=\"secondary\"][_ngcontent-%COMP%] {\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.timeline-marker.small[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n transition: all 0.2s ease;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.timeline-header[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n font-family: monospace;\n}\n\n.timeline-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #6c757d;\n margin-bottom: 8px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #6c757d;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #cce5ff;\n color: #004085;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.btn-expand[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 12px;\n}\n\n.btn-expand[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n\n\n.timeline-children[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.child-item[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.child-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n\n\n.sub-run-timeline[_ngcontent-%COMP%] {\n background: rgba(33, 150, 243, 0.02);\n border-left: 2px solid rgba(33, 150, 243, 0.2);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-marker[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n transition: all 0.2s ease;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #7c8798;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 20px;\n border-bottom: 1px solid #e0e6ed;\n flex-shrink: 0;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: #2196f3;\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: #f0f7ff;\n border: 1px solid #d0e5ff;\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: #e1f0ff;\n border-color: #b0d5ff;\n text-decoration: none;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n}\n\n.error-message[_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n \n .json-detail-pane[_ngcontent-%COMP%] {\n width: 100%;\n }\n \n .timeline[_ngcontent-%COMP%] {\n padding-left: 30px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content[_ngcontent-%COMP%] {\n margin-left: 10px;\n }\n}\n\n\n\n.entity-link[_ngcontent-%COMP%] {\n color: #2196f3;\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link[_ngcontent-%COMP%]:hover {\n color: #1976d2;\n border-bottom-color: #1976d2;\n}\n\n.entity-link[_ngcontent-%COMP%]:active {\n color: #0d47a1;\n}\n\n\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid #e0e6ed;\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: #6c757d;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: #495057;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.detail-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs[_ngcontent-%COMP%] {\n \n\n margin-top: 0;\n}\n\n\n\n.step-payload-diff[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] mj-deep-diff[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%]:not(.with-tabs) .json-viewer[_ngcontent-%COMP%] {\n margin-top: 16px;\n}"] }); }
1335
+ } }, dependencies: [i4.NgClass, i4.NgIf, i5.NgControlStatus, i5.NgModel, i6.PanelBarComponent, i6.PanelBarItemComponent, i6.PanelBarContentDirective, i6.SplitterComponent, i6.SplitterPaneComponent, i7.CodeEditorComponent, i8.DeepDiffComponent, i9.AIAgentRunTimelineComponent, i10.AIAgentRunAnalyticsComponent, i11.AIAgentRunVisualizationComponent, i12.AIAgentRunStepDetailComponent, i4.DecimalPipe, i4.DatePipe], styles: [".ai-agent-run-form[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.parent-run[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link[_ngcontent-%COMP%] {\n color: #ff6358;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link[_ngcontent-%COMP%]:hover {\n color: #ff4444;\n text-decoration: underline;\n}\n\n.agent-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #495057;\n}\n\n.run-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n.status-badge[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-badge[data-status=\"Cancelled\"][_ngcontent-%COMP%] {\n background: #fff3cd;\n color: #856404;\n}\n\n.status-badge[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.status-badge.small[_ngcontent-%COMP%] {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n\n\n.configuration-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid #e9ecef;\n margin-top: 16px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 1.2em;\n color: #6c757d;\n width: 24px;\n text-align: center;\n}\n\n.config-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.config-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%] {\n color: #007bff;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value[_ngcontent-%COMP%] .entity-link[_ngcontent-%COMP%]:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n.stat[_ngcontent-%COMP%] .value.success[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.stat[_ngcontent-%COMP%] .value.error[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid #dee2e6;\n background: #f8f9fa;\n}\n\n.tab[_ngcontent-%COMP%] {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #6c757d;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: #495057;\n background: rgba(0,0,0,0.02);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n background: white;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n position: relative;\n height: calc(100vh - 390px);\n overflow: auto;\n background: white;\n}\n\n.tab-content[_ngcontent-%COMP%] {\n height: 100%;\n overflow: auto;\n}\n\n\n\n.tab-content[ng-reflect-ng-if=\"true\"][_ngcontent-%COMP%] > kendo-panelbar[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6b7280;\n font-size: 14px;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n text-transform: uppercase;\n color: #6b7280;\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.08);\n color: #1976d2;\n}\n\n.json-viewer[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n}\n\n\n\n.timeline-container[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container[_ngcontent-%COMP%] > .timeline[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] {\n transform: translateX(8px);\n}\n\n.timeline-item.selected[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: #f0f7ff;\n border-color: #2196f3;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n border: 3px solid #e9ecef;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"][_ngcontent-%COMP%] {\n border-color: #28a745;\n color: #28a745;\n}\n\n.timeline-marker[data-color=\"error\"][_ngcontent-%COMP%] {\n border-color: #dc3545;\n color: #dc3545;\n}\n\n.timeline-marker[data-color=\"info\"][_ngcontent-%COMP%] {\n border-color: #17a2b8;\n color: #17a2b8;\n}\n\n.timeline-marker[data-color=\"warning\"][_ngcontent-%COMP%] {\n border-color: #ffc107;\n color: #ffc107;\n}\n\n.timeline-marker[data-color=\"secondary\"][_ngcontent-%COMP%] {\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.timeline-marker.small[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n transition: all 0.2s ease;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.timeline-header[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n font-family: monospace;\n}\n\n.timeline-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #6c757d;\n margin-bottom: 8px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #6c757d;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Completed\"][_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Failed\"][_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #cce5ff;\n color: #004085;\n}\n\n.timeline-meta[_ngcontent-%COMP%] .status[data-status=\"Paused\"][_ngcontent-%COMP%] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions[_ngcontent-%COMP%] {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.btn-expand[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 12px;\n}\n\n.btn-expand[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n\n\n.timeline-children[_ngcontent-%COMP%] {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.child-item[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.child-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n\n\n.sub-run-timeline[_ngcontent-%COMP%] {\n background: rgba(33, 150, 243, 0.02);\n border-left: 2px solid rgba(33, 150, 243, 0.2);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-marker[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.sub-run-item[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n transition: all 0.2s ease;\n}\n\n\n\n.json-detail-pane[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta[_ngcontent-%COMP%] .meta-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #7c8798;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link[_ngcontent-%COMP%] {\n padding: 12px 20px;\n border-bottom: 1px solid #e0e6ed;\n flex-shrink: 0;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: #2196f3;\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: #f0f7ff;\n border: 1px solid #d0e5ff;\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link[_ngcontent-%COMP%] .btn-link[_ngcontent-%COMP%]:hover {\n background: #e1f0ff;\n border-color: #b0d5ff;\n text-decoration: none;\n}\n\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #495057;\n}\n\n.error-message[_ngcontent-%COMP%] {\n background: #f8d7da;\n color: #721c24;\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%], \n.state-viewer[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n\n\n@media (max-width: 768px) {\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n \n .json-detail-pane[_ngcontent-%COMP%] {\n width: 100%;\n }\n \n .timeline[_ngcontent-%COMP%] {\n padding-left: 30px;\n }\n \n .timeline-marker[_ngcontent-%COMP%] {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content[_ngcontent-%COMP%] {\n margin-left: 10px;\n }\n}\n\n\n\n.entity-link[_ngcontent-%COMP%] {\n color: #2196f3;\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link[_ngcontent-%COMP%]:hover {\n color: #1976d2;\n border-bottom-color: #1976d2;\n}\n\n.entity-link[_ngcontent-%COMP%]:active {\n color: #0d47a1;\n}\n\n\n\n.detail-pane-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid #e0e6ed;\n padding: 0 16px;\n}\n\n.detail-tab[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: #6c757d;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab[_ngcontent-%COMP%]:hover {\n color: #495057;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.detail-tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.detail-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs[_ngcontent-%COMP%] {\n \n\n margin-top: 0;\n}\n\n\n\n.step-payload-diff[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff[_ngcontent-%COMP%] mj-deep-diff[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n}\n\n\n\n.detail-pane-content[_ngcontent-%COMP%]:not(.with-tabs) .json-viewer[_ngcontent-%COMP%] {\n margin-top: 16px;\n}"] }); }
1315
1336
  };
1316
1337
  AIAgentRunFormComponentExtended = __decorate([
1317
1338
  RegisterClass(BaseFormComponent, 'MJ: AI Agent Runs')
@@ -1319,7 +1340,7 @@ AIAgentRunFormComponentExtended = __decorate([
1319
1340
  export { AIAgentRunFormComponentExtended };
1320
1341
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunFormComponentExtended, [{
1321
1342
  type: Component,
1322
- args: [{ selector: 'mj-ai-agent-run-form', template: "<div class=\"record-form-container ai-agent-run-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <i class=\"fas fa-robot\"></i>\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n <span class=\"agent-name\" *ngIf=\"agent\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Agents', record.AgentID)\">\n {{ agent.Name }}\n </a>\n </span>\n <span class=\"run-id\">{{ record.ID }}</span>\n <span class=\"parent-run\" *ngIf=\"record.ParentRunID\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.Status\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon(record.Status || '')\"></i>\n {{ record.Status }}\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"refreshData()\" title=\"Refresh\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'medium' }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.CompletedAt\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.CompletedAt\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.Success !== null && record.CompletedAt !== null\">\n <span class=\"label\">Result</span>\n <span class=\"value\" [class.success]=\"record.Success\" [class.error]=\"!record.Success\">\n {{ record.Success ? 'Success' : 'Failed' }}\n </span>\n </div>\n <div class=\"stat\" *ngIf=\"costMetrics && (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) > 0\">\n <span class=\"label\">Tokens</span>\n <span class=\"value\" *ngIf=\"!costMetrics.isLoading\">{{ (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) | number:'1.0-0' }}</span>\n <span class=\"value loading\" *ngIf=\"costMetrics.isLoading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n </div>\n <div class=\"stat\" *ngIf=\"costMetrics && costMetrics.totalCost > 0\">\n <span class=\"label\">Cost</span>\n <span class=\"value\" *ngIf=\"!costMetrics.isLoading\">${{ costMetrics.totalCost | number:'1.2-4' }}</span>\n <span class=\"value loading\" *ngIf=\"costMetrics.isLoading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n </div>\n <div class=\"stat\" *ngIf=\"record.EffortLevel\">\n <span class=\"label\">Effort Level</span>\n <span class=\"value\">{{ record.EffortLevel }}</span>\n </div>\n </div>\n \n <!-- Configuration Bar (shown below header stats when ConfigurationID exists) -->\n <div class=\"configuration-bar\" *ngIf=\"record.ConfigurationID\">\n <div class=\"config-item\">\n <i class=\"fas fa-cog\"></i>\n <div class=\"config-content\">\n <div class=\"config-label\">Configuration</div>\n <div class=\"config-value\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"changeTab('timeline')\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'visualization'\" (click)=\"changeTab('visualization')\">\n <i class=\"fas fa-diagram-project\"></i> Visualization\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'analytics'\" (click)=\"changeTab('analytics')\">\n <i class=\"fas fa-chart-line\"></i> Analytics\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"content-area\">\n <!-- Timeline Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'timeline'\" style=\"height: 100%;\">\n <kendo-splitter style=\"height: 100%;\" orientation=\"horizontal\">\n <!-- Timeline Pane -->\n <kendo-splitter-pane [min]=\"'400px'\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n [autoRefresh]=\"record.Status === 'Running'\"\n [refreshInterval]=\"30000\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\"\n (agentRunCompleted)=\"onAgentRunCompleted($event)\">\n </mj-ai-agent-run-timeline>\n </kendo-splitter-pane>\n \n <!-- JSON Detail Pane -->\n <kendo-splitter-pane [size]=\"'45%'\" [min]=\"'300px'\" [collapsed]=\"!selectedTimelineItem\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedTimelineItem\"\n (closePanel)=\"closeJsonPanel()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n\n <!-- Visualization Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'visualization'\" style=\"height: 100%;\">\n <mj-ai-agent-run-visualization\n #visualizationComponent\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n *ngIf=\"visualizationLoaded\">\n </mj-ai-agent-run-visualization>\n </div>\n\n <!-- Analytics Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'analytics'\" style=\"height: 100%;\">\n <mj-ai-agent-run-analytics \n #analyticsComponent\n [agentRunId]=\"record.ID\"\n *ngIf=\"analyticsLoaded\">\n </mj-ai-agent-run-analytics>\n </div>\n\n <!-- Details Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'details'\">\n <kendo-panelbar [keepItemContent]=\"true\">\n <kendo-panelbar-item title=\"General Information\" [expanded]=\"true\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Agent</label>\n <span>\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Agents', record.AgentID)\">\n {{ agent?.Name || 'N/A' }}\n </a>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>\n <a *ngIf=\"record.ParentRunID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.ParentRunID)\">\n {{ record.ParentRunID }}\n </a>\n <span *ngIf=\"!record.ParentRunID\">None (Root)</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Last Run ID</label>\n <span>\n <a *ngIf=\"record.LastRunID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.LastRunID)\">\n {{ record.LastRunID }}\n </a>\n <span *ngIf=\"!record.LastRunID\">None</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>\n <a *ngIf=\"record.ConversationID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('Conversations', record.ConversationID)\">\n {{ record.ConversationID }}\n </a>\n <span *ngIf=\"!record.ConversationID\">N/A</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>\n <a *ngIf=\"record.UserID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('Users', record.UserID)\">\n {{ record.User || 'N/A' }}\n </a>\n <span *ngIf=\"!record.UserID\">N/A</span>\n </span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Settings\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Override Model</label>\n <span>\n <a *ngIf=\"record.OverrideModelID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Models', record.OverrideModelID)\">\n {{ record.OverrideModel || 'N/A' }}\n </a>\n <span *ngIf=\"!record.OverrideModelID\">N/A</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Override Vendor</label>\n <span>\n <a *ngIf=\"record.OverrideVendorID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Vendors', record.OverrideVendorID)\">\n {{ record.OverrideVendor || 'N/A' }}\n </a>\n <span *ngIf=\"!record.OverrideVendorID\">N/A</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Verbose Logging</label>\n <span>{{ record.Verbose ? 'Yes' : 'No' }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Status\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Status</label>\n <span class=\"status-badge\" [attr.data-status]=\"record.Status\">\n {{ record.Status }}\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Success</label>\n @if (record.Success === null) {\n <span>In Progress</span>\n }\n @else if (record.Success) {\n <span class=\"success\">Yes</span>\n }\n @else {\n <span class=\"error-message\">No</span>\n }\n </div>\n <div class=\"detail-item full-width\" *ngIf=\"record.Message\">\n <label>Message</label>\n <div class=\"message\">{{ record.Message }}</div>\n </div>\n <div class=\"detail-item full-width\" *ngIf=\"record.ErrorMessage\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Usage & Cost\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Total Tokens Used</label>\n <span>{{ record.TotalTokensUsed ? (record.TotalTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Prompt Tokens</label>\n <span>{{ record.TotalPromptTokensUsed ? (record.TotalPromptTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Completion Tokens</label>\n <span>{{ record.TotalCompletionTokensUsed ? (record.TotalCompletionTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Cost</label>\n <span>{{ record.TotalCost != null ? ('$' + (record.TotalCost | number:'1.2-4')) : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Prompt Iterations</label>\n <span>{{ record.TotalPromptIterations != null ? (record.TotalPromptIterations | number:'1.0-0') : 'N/A' }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Result\" *ngIf=\"record.Result\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading result data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Starting Payload\" *ngIf=\"record.StartingPayload\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedStartingPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Data\" *ngIf=\"record.Data\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedData\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading execution data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Final Payload\" *ngIf=\"record.FinalPayload\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedFinalPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading final payload data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Payload Diff\" *ngIf=\"showPayloadDiff\">\n <ng-template kendoPanelBarContent>\n <div style=\"padding: 20px; background: #f8f9fa;\">\n @if (isParsingComplete) {\n <mj-deep-diff\n [oldValue]=\"startingPayloadObject\"\n [newValue]=\"finalPayloadObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"10\"\n [maxStringLength]=\"200\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload diff...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n </kendo-panelbar>\n </div>\n </div>\n </div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n overflow: auto;\n}\n\n/* Header Styles */\n.header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: #ff6358;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: #ff4444;\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: #495057;\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: #d4edda;\n color: #155724;\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: #fff3cd;\n color: #856404;\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.status-badge.small {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.btn-icon:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n/* Configuration Bar */\n.configuration-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid #e9ecef;\n margin-top: 16px;\n}\n\n.config-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item > i {\n font-size: 1.2em;\n color: #6c757d;\n width: 24px;\n text-align: center;\n}\n\n.config-content {\n display: flex;\n flex-direction: column;\n}\n\n.config-label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value {\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.config-value .entity-link {\n color: #007bff;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value .entity-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n.stat .value.success {\n color: #28a745;\n}\n\n.stat .value.error {\n color: #dc3545;\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid #dee2e6;\n background: #f8f9fa;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #6c757d;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab:hover {\n color: #495057;\n background: rgba(0,0,0,0.02);\n}\n\n.tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n background: white;\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n height: calc(100vh - 390px);\n overflow: auto;\n background: white;\n}\n\n.tab-content {\n height: 100%;\n overflow: auto;\n}\n\n/* Details tab specific */\n.tab-content[ng-reflect-ng-if=\"true\"] > kendo-panelbar {\n height: 100%;\n overflow-y: auto;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header h3 i {\n color: #6b7280;\n font-size: 14px;\n}\n\n.json-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta .meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: #6b7280;\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link {\n margin-bottom: 12px;\n}\n\n.action-link .btn-link {\n background: none;\n border: none;\n color: #2196f3;\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link .btn-link:hover {\n background: rgba(33, 150, 243, 0.08);\n color: #1976d2;\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n}\n\n/* Timeline Styles */\n.timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container > .timeline {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.timeline-item {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected {\n transform: translateX(8px);\n}\n\n.timeline-item.selected .timeline-content {\n background: #f0f7ff;\n border-color: #2196f3;\n}\n\n.timeline-marker {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n border: 3px solid #e9ecef;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: #28a745;\n color: #28a745;\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: #dc3545;\n color: #dc3545;\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: #17a2b8;\n color: #17a2b8;\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: #ffc107;\n color: #ffc107;\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n transition: all 0.2s ease;\n}\n\n.timeline-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header h4 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.timeline-time {\n font-size: 12px;\n color: #6c757d;\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: #6c757d;\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #6c757d;\n}\n\n.timeline-meta .status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta .status[data-status=\"Completed\"] {\n background: #d4edda;\n color: #155724;\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: #cce5ff;\n color: #004085;\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link:hover {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 12px;\n}\n\n.btn-expand:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n/* Timeline Children */\n.timeline-children {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: rgba(33, 150, 243, 0.02);\n border-left: 2px solid rgba(33, 150, 243, 0.2);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item .timeline-marker {\n border-width: 2px;\n}\n\n.sub-run-item .timeline-content {\n transition: all 0.2s ease;\n}\n\n/* JSON Detail Pane (in splitter) */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px 20px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta label {\n font-size: 11px;\n color: #7c8798;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid #e0e6ed;\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: #2196f3;\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: #f0f7ff;\n border: 1px solid #d0e5ff;\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\n background: #e1f0ff;\n border-color: #b0d5ff;\n text-decoration: none;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n/* Details Tab */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width {\n grid-column: 1 / -1;\n}\n\n.detail-item label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: #495057;\n}\n\n.error-message {\n background: #f8d7da;\n color: #721c24;\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer,\n.state-viewer {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer mj-code-editor,\n.state-viewer mj-code-editor {\n flex: 1;\n min-height: 0;\n}\n\n/* Empty States */\n.empty-state,\n.loading-state,\n.error-state {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state i,\n.loading-state i,\n.error-state i {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .json-detail-pane {\n width: 100%;\n }\n \n .timeline {\n padding-left: 30px;\n }\n \n .timeline-marker {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content {\n margin-left: 10px;\n }\n}\n\n/* Entity Link Styles */\n.entity-link {\n color: #2196f3;\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link:hover {\n color: #1976d2;\n border-bottom-color: #1976d2;\n}\n\n.entity-link:active {\n color: #0d47a1;\n}\n\n/* Detail Pane Tabs */\n.detail-pane-tabs {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid #e0e6ed;\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: #6c757d;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: #495057;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.detail-tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.detail-tab i {\n font-size: 14px;\n}\n\n/* Detail Pane Content */\n.detail-pane-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs {\n /* When tabs are shown, content starts right after tabs */\n margin-top: 0;\n}\n\n/* Step Payload Diff */\n.step-payload-diff {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff mj-deep-diff {\n display: block;\n height: 100%;\n}\n\n/* JSON Viewer adjustments when no tabs */\n.detail-pane-content:not(.with-tabs) .json-viewer {\n margin-top: 16px;\n}"] }]
1343
+ args: [{ selector: 'mj-ai-agent-run-form', template: "<div class=\"record-form-container ai-agent-run-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <img *ngIf=\"agent && agent.LogoURL\" [src]=\"agent.LogoURL\" [alt]=\"agent.Name || 'Agent'\" class=\"agent-logo\" />\n <i *ngIf=\"agent && !agent.LogoURL && agent.IconClass\" class=\"fas\" [ngClass]=\"agent.IconClass\"></i>\n <i *ngIf=\"!agent || (!agent.LogoURL && !agent.IconClass)\" class=\"fas fa-robot\"></i>\n </div>\n <div class=\"header-info\">\n <h2>AI Agent Run</h2>\n <div class=\"meta-info\">\n <span class=\"agent-name\" *ngIf=\"agent\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Agents', record.AgentID)\">\n {{ agent.Name }}\n </a>\n </span>\n <span class=\"run-id\">{{ record.ID }}</span>\n <span class=\"parent-run\" *ngIf=\"record.ParentRunID\">\n <i class=\"fas fa-level-up-alt\"></i>\n <a (click)=\"navigateToParentRun()\" class=\"parent-link\">Parent Run</a>\n </span>\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.Status\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon(record.Status || '')\"></i>\n {{ record.Status }}\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"refreshData()\" title=\"Refresh\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'medium' }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.CompletedAt\">\n <span class=\"label\">Completed</span>\n <span class=\"value\">{{ record.CompletedAt | date:'medium' }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.CompletedAt\">\n <span class=\"label\">Duration</span>\n <span class=\"value\">{{ calculateDuration(record.StartedAt, record.CompletedAt) }}</span>\n </div>\n <div class=\"stat\" *ngIf=\"record.Success !== null && record.CompletedAt !== null\">\n <span class=\"label\">Result</span>\n <span class=\"value\" [class.success]=\"record.Success\" [class.error]=\"!record.Success\">\n {{ record.Success ? 'Success' : 'Failed' }}\n </span>\n </div>\n <div class=\"stat\" *ngIf=\"costMetrics && (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) > 0\">\n <span class=\"label\">Tokens</span>\n <span class=\"value\" *ngIf=\"!costMetrics.isLoading\">{{ (costMetrics.totalTokensInput + costMetrics.totalTokensOutput) | number:'1.0-0' }}</span>\n <span class=\"value loading\" *ngIf=\"costMetrics.isLoading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n </div>\n <div class=\"stat\" *ngIf=\"costMetrics && costMetrics.totalCost > 0\">\n <span class=\"label\">Cost</span>\n <span class=\"value\" *ngIf=\"!costMetrics.isLoading\">${{ costMetrics.totalCost | number:'1.2-4' }}</span>\n <span class=\"value loading\" *ngIf=\"costMetrics.isLoading\"><i class=\"fas fa-spinner fa-spin\"></i></span>\n </div>\n <div class=\"stat\" *ngIf=\"record.EffortLevel\">\n <span class=\"label\">Effort Level</span>\n <span class=\"value\">{{ record.EffortLevel }}</span>\n </div>\n </div>\n \n <!-- Configuration Bar (shown below header stats when ConfigurationID exists) -->\n <div class=\"configuration-bar\" *ngIf=\"record.ConfigurationID\">\n <div class=\"config-item\">\n <i class=\"fas fa-cog\"></i>\n <div class=\"config-content\">\n <div class=\"config-label\">Configuration</div>\n <div class=\"config-value\">\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Configurations', record.ConfigurationID)\">\n {{ record.Configuration || 'Unknown' }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'timeline'\" (click)=\"changeTab('timeline')\">\n <i class=\"fas fa-stream\"></i> Timeline\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'visualization'\" (click)=\"changeTab('visualization')\">\n <i class=\"fas fa-diagram-project\"></i> Visualization\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'analytics'\" (click)=\"changeTab('analytics')\">\n <i class=\"fas fa-chart-line\"></i> Analytics\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"content-area\">\n <!-- Timeline Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'timeline'\" style=\"height: 100%;\">\n <kendo-splitter style=\"height: 100%;\" orientation=\"horizontal\">\n <!-- Timeline Pane -->\n <kendo-splitter-pane [min]=\"'400px'\">\n <mj-ai-agent-run-timeline\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n [autoRefresh]=\"record.Status === 'Running'\"\n [refreshInterval]=\"30000\"\n (itemSelected)=\"selectTimelineItem($event)\"\n (navigateToEntity)=\"navigateToEntityRecord($event)\"\n (agentRunCompleted)=\"onAgentRunCompleted($event)\">\n </mj-ai-agent-run-timeline>\n </kendo-splitter-pane>\n \n <!-- JSON Detail Pane -->\n <kendo-splitter-pane [size]=\"'45%'\" [min]=\"'300px'\" [collapsed]=\"!selectedTimelineItem\">\n <mj-ai-agent-run-step-detail\n [selectedTimelineItem]=\"selectedTimelineItem\"\n (closePanel)=\"closeJsonPanel()\"\n (navigateToActionLog)=\"navigateToActionLog($event)\"\n (copyToClipboard)=\"copyToClipboard($event)\">\n </mj-ai-agent-run-step-detail>\n </kendo-splitter-pane>\n </kendo-splitter>\n </div>\n\n <!-- Visualization Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'visualization'\" style=\"height: 100%;\">\n <mj-ai-agent-run-visualization\n #visualizationComponent\n [aiAgentRunId]=\"record.ID\"\n [dataHelper]=\"dataHelper\"\n *ngIf=\"visualizationLoaded\">\n </mj-ai-agent-run-visualization>\n </div>\n\n <!-- Analytics Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'analytics'\" style=\"height: 100%;\">\n <mj-ai-agent-run-analytics \n #analyticsComponent\n [agentRunId]=\"record.ID\"\n *ngIf=\"analyticsLoaded\">\n </mj-ai-agent-run-analytics>\n </div>\n\n <!-- Details Tab -->\n <div class=\"tab-content\" *ngIf=\"activeTab === 'details'\">\n <kendo-panelbar [keepItemContent]=\"true\">\n <kendo-panelbar-item title=\"General Information\" [expanded]=\"true\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Agent</label>\n <span>\n <a href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Agents', record.AgentID)\">\n {{ agent?.Name || 'N/A' }}\n </a>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Parent Run ID</label>\n <span>\n <a *ngIf=\"record.ParentRunID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.ParentRunID)\">\n {{ record.ParentRunID }}\n </a>\n <span *ngIf=\"!record.ParentRunID\">None (Root)</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Last Run ID</label>\n <span>\n <a *ngIf=\"record.LastRunID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('MJ: AI Agent Runs', record.LastRunID)\">\n {{ record.LastRunID }}\n </a>\n <span *ngIf=\"!record.LastRunID\">None</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Conversation ID</label>\n <span>\n <a *ngIf=\"record.ConversationID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('Conversations', record.ConversationID)\">\n {{ record.ConversationID }}\n </a>\n <span *ngIf=\"!record.ConversationID\">N/A</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>User</label>\n <span>\n <a *ngIf=\"record.UserID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('Users', record.UserID)\">\n {{ record.User || 'N/A' }}\n </a>\n <span *ngIf=\"!record.UserID\">N/A</span>\n </span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Settings\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Override Model</label>\n <span>\n <a *ngIf=\"record.OverrideModelID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Models', record.OverrideModelID)\">\n {{ record.OverrideModel || 'N/A' }}\n </a>\n <span *ngIf=\"!record.OverrideModelID\">N/A</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Override Vendor</label>\n <span>\n <a *ngIf=\"record.OverrideVendorID\" href=\"javascript:void(0)\" class=\"entity-link\" (click)=\"openEntityRecord('AI Vendors', record.OverrideVendorID)\">\n {{ record.OverrideVendor || 'N/A' }}\n </a>\n <span *ngIf=\"!record.OverrideVendorID\">N/A</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Verbose Logging</label>\n <span>{{ record.Verbose ? 'Yes' : 'No' }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Status\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Status</label>\n <span class=\"status-badge\" [attr.data-status]=\"record.Status\">\n {{ record.Status }}\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Success</label>\n @if (record.Success === null) {\n <span>In Progress</span>\n }\n @else if (record.Success) {\n <span class=\"success\">Yes</span>\n }\n @else {\n <span class=\"error-message\">No</span>\n }\n </div>\n <div class=\"detail-item full-width\" *ngIf=\"record.Message\">\n <label>Message</label>\n <div class=\"message\">{{ record.Message }}</div>\n </div>\n <div class=\"detail-item full-width\" *ngIf=\"record.ErrorMessage\">\n <label>Error Message</label>\n <div class=\"error-message\">{{ record.ErrorMessage }}</div>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Usage & Cost\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Total Tokens Used</label>\n <span>{{ record.TotalTokensUsed ? (record.TotalTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Prompt Tokens</label>\n <span>{{ record.TotalPromptTokensUsed ? (record.TotalPromptTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Completion Tokens</label>\n <span>{{ record.TotalCompletionTokensUsed ? (record.TotalCompletionTokensUsed | number:'1.0-0') : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Cost</label>\n <span>{{ record.TotalCost != null ? ('$' + (record.TotalCost | number:'1.2-4')) : 'N/A' }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Total Prompt Iterations</label>\n <span>{{ record.TotalPromptIterations != null ? (record.TotalPromptIterations | number:'1.0-0') : 'N/A' }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Result\" *ngIf=\"record.Result\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading result data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Starting Payload\" *ngIf=\"record.StartingPayload\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedStartingPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Execution Data\" *ngIf=\"record.Data\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedData\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading execution data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Final Payload\" *ngIf=\"record.FinalPayload\">\n <ng-template kendoPanelBarContent>\n <div class=\"result-viewer\">\n @if (isParsingComplete) {\n <mj-code-editor\n [ngModel]=\"parsedFinalPayload\"\n [language]=\"'json'\"\n [readonly]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading final payload data...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n \n <kendo-panelbar-item title=\"Payload Diff\" *ngIf=\"showPayloadDiff\">\n <ng-template kendoPanelBarContent>\n <div style=\"padding: 20px; background: #f8f9fa;\">\n @if (isParsingComplete) {\n <mj-deep-diff\n [oldValue]=\"startingPayloadObject\"\n [newValue]=\"finalPayloadObject\"\n [title]=\"''\"\n [showSummary]=\"true\"\n [showUnchanged]=\"false\"\n [expandAll]=\"false\"\n [maxDepth]=\"10\"\n [maxStringLength]=\"200\"\n [treatNullAsUndefined]=\"true\">\n </mj-deep-diff>\n } @else {\n <div style=\"padding: 20px; text-align: center; color: #666;\">\n <i class=\"fas fa-spinner fa-spin\"></i> Loading payload diff...\n </div>\n }\n </div>\n </ng-template>\n </kendo-panelbar-item>\n </kendo-panelbar>\n </div>\n </div>\n </div>\n</div>", styles: [".ai-agent-run-form {\n height: 100%;\n overflow: auto;\n}\n\n/* Header Styles */\n.header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #2196f3, #1976d2);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n overflow: hidden;\n}\n\n.agent-logo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.parent-run {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.parent-link {\n color: #ff6358;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.parent-link:hover {\n color: #ff4444;\n text-decoration: underline;\n}\n\n.agent-name {\n font-weight: 500;\n color: #495057;\n}\n\n.run-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: #e3f2fd;\n color: #1976d2;\n}\n\n.status-badge[data-status=\"Completed\"] {\n background: #d4edda;\n color: #155724;\n}\n\n.status-badge[data-status=\"Failed\"] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-badge[data-status=\"Cancelled\"] {\n background: #fff3cd;\n color: #856404;\n}\n\n.status-badge[data-status=\"Paused\"] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.status-badge.small {\n padding: 4px 12px;\n font-size: 11px;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.btn-icon {\n width: 36px;\n height: 36px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.btn-icon:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n/* Configuration Bar */\n.configuration-bar {\n display: flex;\n gap: 24px;\n padding-top: 16px;\n border-top: 1px solid #e9ecef;\n margin-top: 16px;\n}\n\n.config-item {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-item > i {\n font-size: 1.2em;\n color: #6c757d;\n width: 24px;\n text-align: center;\n}\n\n.config-content {\n display: flex;\n flex-direction: column;\n}\n\n.config-label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.config-value {\n font-size: 14px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.config-value .entity-link {\n color: #007bff;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.2s;\n}\n\n.config-value .entity-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n.stat .value.success {\n color: #28a745;\n}\n\n.stat .value.error {\n color: #dc3545;\n}\n\n/* Tabs */\n.tabs {\n display: flex;\n border-bottom: 1px solid #dee2e6;\n background: #f8f9fa;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #6c757d;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n border-bottom: 3px solid transparent;\n}\n\n.tab:hover {\n color: #495057;\n background: rgba(0,0,0,0.02);\n}\n\n.tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n background: white;\n}\n\n/* Content Area */\n.content-area {\n position: relative;\n height: calc(100vh - 390px);\n overflow: auto;\n background: white;\n}\n\n.tab-content {\n height: 100%;\n overflow: auto;\n}\n\n/* Details tab specific */\n.tab-content[ng-reflect-ng-if=\"true\"] > kendo-panelbar {\n height: 100%;\n overflow-y: auto;\n}\n\n/* JSON Detail Pane */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: #f8f9fa;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e6ed;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.json-pane-header h3 i {\n color: #6b7280;\n font-size: 14px;\n}\n\n.json-pane-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n padding: 16px;\n}\n\n.json-meta {\n display: flex;\n gap: 20px;\n margin-bottom: 16px;\n flex-wrap: wrap;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta .meta-item label {\n font-size: 11px;\n text-transform: uppercase;\n color: #6b7280;\n font-weight: 600;\n letter-spacing: 0.5px;\n}\n\n.json-meta .meta-item span {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link {\n margin-bottom: 12px;\n}\n\n.action-link .btn-link {\n background: none;\n border: none;\n color: #2196f3;\n font-size: 14px;\n cursor: pointer;\n padding: 6px 12px;\n border-radius: 4px;\n transition: all 0.2s;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-link .btn-link:hover {\n background: rgba(33, 150, 243, 0.08);\n color: #1976d2;\n}\n\n.json-viewer {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e6ed;\n overflow: auto;\n padding: 20px;\n gap: 10px;\n min-height: 0;\n margin-bottom: 45px;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n padding: 8px 12px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n}\n\n/* Timeline Styles */\n.timeline-container {\n height: 100%;\n overflow-y: auto;\n padding: 20px;\n}\n\n.timeline-container > .timeline {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.timeline {\n position: relative;\n padding-left: 40px;\n}\n\n.timeline::before {\n content: '';\n position: absolute;\n left: 20px;\n top: 0;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.timeline-item {\n position: relative;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item:hover {\n transform: translateX(4px);\n}\n\n.timeline-item.selected {\n transform: translateX(8px);\n}\n\n.timeline-item.selected .timeline-content {\n background: #f0f7ff;\n border-color: #2196f3;\n}\n\n.timeline-marker {\n position: absolute;\n left: -30px;\n top: 0;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n border: 3px solid #e9ecef;\n z-index: 1;\n transition: all 0.2s ease;\n}\n\n.timeline-marker[data-color=\"success\"] {\n border-color: #28a745;\n color: #28a745;\n}\n\n.timeline-marker[data-color=\"error\"] {\n border-color: #dc3545;\n color: #dc3545;\n}\n\n.timeline-marker[data-color=\"info\"] {\n border-color: #17a2b8;\n color: #17a2b8;\n}\n\n.timeline-marker[data-color=\"warning\"] {\n border-color: #ffc107;\n color: #ffc107;\n}\n\n.timeline-marker[data-color=\"secondary\"] {\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.timeline-marker.small {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.timeline-content {\n background: white;\n border: 1px solid #e9ecef;\n border-radius: 12px;\n padding: 16px 20px;\n margin-left: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n transition: all 0.2s ease;\n}\n\n.timeline-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.timeline-header h4 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.timeline-header h5 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.timeline-time {\n font-size: 12px;\n color: #6c757d;\n font-family: monospace;\n}\n\n.timeline-subtitle {\n font-size: 13px;\n color: #6c757d;\n margin-bottom: 8px;\n}\n\n.timeline-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: #6c757d;\n}\n\n.timeline-meta .status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.timeline-meta .status[data-status=\"Completed\"] {\n background: #d4edda;\n color: #155724;\n}\n\n.timeline-meta .status[data-status=\"Failed\"] {\n background: #f8d7da;\n color: #721c24;\n}\n\n.timeline-meta .status[data-status=\"Running\"] {\n background: #cce5ff;\n color: #004085;\n}\n\n.timeline-meta .status[data-status=\"Paused\"] {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.timeline-actions {\n position: absolute;\n right: 20px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.btn-link:hover {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.btn-expand {\n width: 24px;\n height: 24px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n font-size: 12px;\n}\n\n.btn-expand:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n/* Timeline Children */\n.timeline-children {\n position: relative;\n margin-top: 12px;\n margin-bottom: 12px;\n}\n\n.timeline-children::before {\n content: '';\n position: absolute;\n left: -10px;\n top: -12px;\n bottom: 0;\n width: 2px;\n background: #e9ecef;\n}\n\n.child-item {\n margin-bottom: 12px;\n}\n\n.child-item .timeline-content {\n background: #f8f9fa;\n border-color: #e0e6ed;\n}\n\n/* Sub-run timeline styles */\n.sub-run-timeline {\n background: rgba(33, 150, 243, 0.02);\n border-left: 2px solid rgba(33, 150, 243, 0.2);\n margin-left: 20px;\n padding-left: 20px;\n margin-top: 8px;\n margin-bottom: 8px;\n}\n\n.sub-run-item .timeline-marker {\n border-width: 2px;\n}\n\n.sub-run-item .timeline-content {\n transition: all 0.2s ease;\n}\n\n/* JSON Detail Pane (in splitter) */\n.json-detail-pane {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: white;\n border-left: 1px solid #e0e6ed;\n}\n\n.json-pane-header {\n padding: 16px 20px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n\n.json-pane-header h3 {\n margin: 0;\n font-size: 16px;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 10px;\n font-weight: 600;\n}\n\n.json-pane-content {\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.json-meta {\n padding: 16px 20px;\n border-bottom: 1px solid #e0e6ed;\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.json-meta .meta-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.json-meta label {\n font-size: 11px;\n color: #7c8798;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.json-meta span {\n font-size: 14px;\n color: #2c3e50;\n font-weight: 500;\n}\n\n.action-link {\n padding: 12px 20px;\n border-bottom: 1px solid #e0e6ed;\n flex-shrink: 0;\n}\n\n.action-link .btn-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: #2196f3;\n text-decoration: none;\n font-size: 14px;\n padding: 8px 12px;\n background: #f0f7ff;\n border: 1px solid #d0e5ff;\n border-radius: 4px;\n transition: all 0.2s;\n cursor: pointer;\n}\n\n.action-link .btn-link:hover {\n background: #e1f0ff;\n border-color: #b0d5ff;\n text-decoration: none;\n}\n\n\n.json-toolbar {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n/* Details Tab */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item.full-width {\n grid-column: 1 / -1;\n}\n\n.detail-item label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.detail-item span {\n font-size: 14px;\n color: #495057;\n}\n\n.error-message {\n background: #f8d7da;\n color: #721c24;\n padding: 12px;\n border-radius: 8px;\n font-size: 13px;\n}\n\n.result-viewer,\n.state-viewer {\n padding: 20px;\n max-height: 450px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n}\n\n.result-viewer mj-code-editor,\n.state-viewer mj-code-editor {\n flex: 1;\n min-height: 0;\n}\n\n/* Empty States */\n.empty-state,\n.loading-state,\n.error-state {\n text-align: center;\n padding: 60px 20px;\n color: #6c757d;\n}\n\n.empty-state i,\n.loading-state i,\n.error-state i {\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .json-detail-pane {\n width: 100%;\n }\n \n .timeline {\n padding-left: 30px;\n }\n \n .timeline-marker {\n left: -25px;\n width: 32px;\n height: 32px;\n }\n \n .timeline-content {\n margin-left: 10px;\n }\n}\n\n/* Entity Link Styles */\n.entity-link {\n color: #2196f3;\n text-decoration: none;\n transition: all 0.2s ease;\n border-bottom: 1px solid transparent;\n display: inline-block;\n}\n\n.entity-link:hover {\n color: #1976d2;\n border-bottom-color: #1976d2;\n}\n\n.entity-link:active {\n color: #0d47a1;\n}\n\n/* Detail Pane Tabs */\n.detail-pane-tabs {\n display: flex;\n gap: 8px;\n margin: 8px 0 0 0;\n border-bottom: 1px solid #e0e6ed;\n padding: 0 16px;\n}\n\n.detail-tab {\n padding: 10px 16px;\n background: none;\n border: none;\n border-bottom: 3px solid transparent;\n color: #6c757d;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.detail-tab:hover {\n color: #495057;\n background: rgba(0, 0, 0, 0.02);\n}\n\n.detail-tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.detail-tab i {\n font-size: 14px;\n}\n\n/* Detail Pane Content */\n.detail-pane-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n margin-bottom: 35px;\n}\n\n.detail-pane-content.with-tabs {\n /* When tabs are shown, content starts right after tabs */\n margin-top: 0;\n}\n\n/* Step Payload Diff */\n.step-payload-diff {\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n}\n\n.step-payload-diff mj-deep-diff {\n display: block;\n height: 100%;\n}\n\n/* JSON Viewer adjustments when no tabs */\n.detail-pane-content:not(.with-tabs) .json-viewer {\n margin-top: 16px;\n}"] }]
1323
1344
  }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.AIAgentRunCostService }], { timelineComponent: [{
1324
1345
  type: ViewChild,
1325
1346
  args: [AIAgentRunTimelineComponent]