@memberjunction/ng-core-entity-forms 2.129.0 → 2.130.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +44 -0
  2. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -0
  3. package/dist/lib/custom/Tests/entity-link-pill.component.js +124 -0
  4. package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -0
  5. package/dist/lib/custom/Tests/test-form.component.d.ts +96 -9
  6. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  7. package/dist/lib/custom/Tests/test-form.component.js +1529 -277
  8. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  9. package/dist/lib/custom/Tests/test-run-form.component.d.ts +50 -9
  10. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  11. package/dist/lib/custom/Tests/test-run-form.component.js +1079 -426
  12. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  13. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +228 -5
  14. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  15. package/dist/lib/custom/Tests/test-suite-form.component.js +3309 -201
  16. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  17. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +88 -3
  18. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  19. package/dist/lib/custom/Tests/test-suite-run-form.component.js +1976 -262
  20. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  21. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +9 -2
  22. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  23. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +275 -244
  24. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  25. package/dist/lib/custom/custom-forms.module.d.ts +27 -26
  26. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  27. package/dist/lib/custom/custom-forms.module.js +9 -3
  28. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  29. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.d.ts.map +1 -1
  30. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +154 -122
  31. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  32. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.d.ts +11 -0
  33. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.d.ts.map +1 -0
  34. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js +75 -0
  35. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js.map +1 -0
  36. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.d.ts +11 -0
  37. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.d.ts.map +1 -0
  38. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js +121 -0
  39. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js.map +1 -0
  40. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.d.ts.map +1 -1
  41. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +77 -41
  42. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
  43. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.d.ts +11 -0
  44. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.d.ts.map +1 -0
  45. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js +167 -0
  46. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js.map +1 -0
  47. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.d.ts.map +1 -1
  48. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +160 -102
  49. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  50. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.d.ts +11 -0
  51. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.d.ts.map +1 -0
  52. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js +73 -0
  53. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js.map +1 -0
  54. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.d.ts +11 -0
  55. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.d.ts.map +1 -0
  56. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js +89 -0
  57. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js.map +1 -0
  58. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.d.ts.map +1 -1
  59. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +27 -13
  60. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
  61. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.d.ts.map +1 -1
  62. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js +39 -21
  63. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js.map +1 -1
  64. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.d.ts +11 -0
  65. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.d.ts.map +1 -0
  66. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js +95 -0
  67. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js.map +1 -0
  68. package/dist/lib/generated/Entities/Entity/entity.form.component.d.ts.map +1 -1
  69. package/dist/lib/generated/Entities/Entity/entity.form.component.js +61 -43
  70. package/dist/lib/generated/Entities/Entity/entity.form.component.js.map +1 -1
  71. package/dist/lib/generated/Entities/File/file.form.component.d.ts.map +1 -1
  72. package/dist/lib/generated/Entities/File/file.form.component.js +22 -4
  73. package/dist/lib/generated/Entities/File/file.form.component.js.map +1 -1
  74. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.d.ts.map +1 -1
  75. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js +40 -4
  76. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js.map +1 -1
  77. package/dist/lib/generated/Entities/Test/test.form.component.js +17 -15
  78. package/dist/lib/generated/Entities/Test/test.form.component.js.map +1 -1
  79. package/dist/lib/generated/Entities/TestRun/testrun.form.component.d.ts.map +1 -1
  80. package/dist/lib/generated/Entities/TestRun/testrun.form.component.js +55 -43
  81. package/dist/lib/generated/Entities/TestRun/testrun.form.component.js.map +1 -1
  82. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.d.ts.map +1 -1
  83. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js +9 -15
  84. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js.map +1 -1
  85. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.d.ts.map +1 -1
  86. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js +39 -19
  87. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js.map +1 -1
  88. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.d.ts.map +1 -1
  89. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js +40 -16
  90. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js.map +1 -1
  91. package/dist/lib/generated/generated-forms.module.d.ts +145 -134
  92. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  93. package/dist/lib/generated/generated-forms.module.js +168 -87
  94. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  95. package/package.json +28 -27
@@ -20,33 +20,34 @@ import * as i0 from "@angular/core";
20
20
  import * as i1 from "@memberjunction/ng-shared";
21
21
  import * as i2 from "@angular/router";
22
22
  import * as i3 from "./ai-agent-run-cost.service";
23
- import * as i4 from "@angular/common";
24
- import * as i5 from "@angular/forms";
25
- import * as i6 from "@progress/kendo-angular-layout";
26
- import * as i7 from "@memberjunction/ng-code-editor";
27
- import * as i8 from "@memberjunction/ng-deep-diff";
28
- import * as i9 from "./ai-agent-run-timeline.component";
29
- import * as i10 from "./ai-agent-run-analytics.component";
30
- import * as i11 from "./ai-agent-run-visualization.component";
31
- import * as i12 from "./ai-agent-run-step-detail.component";
23
+ import * as i4 from "@memberjunction/ng-base-application";
24
+ import * as i5 from "@angular/common";
25
+ import * as i6 from "@angular/forms";
26
+ import * as i7 from "@progress/kendo-angular-layout";
27
+ import * as i8 from "@memberjunction/ng-code-editor";
28
+ import * as i9 from "@memberjunction/ng-deep-diff";
29
+ import * as i10 from "./ai-agent-run-timeline.component";
30
+ import * as i11 from "./ai-agent-run-analytics.component";
31
+ import * as i12 from "./ai-agent-run-visualization.component";
32
+ import * as i13 from "./ai-agent-run-step-detail.component";
32
33
  function AIAgentRunFormComponentExtended_img_6_Template(rf, ctx) { if (rf & 1) {
33
- i0.ɵɵelement(0, "img", 37);
34
+ i0.ɵɵelement(0, "img", 38);
34
35
  } if (rf & 2) {
35
36
  const ctx_r0 = i0.ɵɵnextContext();
36
37
  i0.ɵɵproperty("src", ctx_r0.agent.LogoURL, i0.ɵɵsanitizeUrl)("alt", ctx_r0.agent.Name || "Agent");
37
38
  } }
38
39
  function AIAgentRunFormComponentExtended_i_7_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelement(0, "i", 18);
40
+ i0.ɵɵelement(0, "i", 19);
40
41
  } if (rf & 2) {
41
42
  const ctx_r0 = i0.ɵɵnextContext();
42
43
  i0.ɵɵproperty("ngClass", ctx_r0.agent.IconClass);
43
44
  } }
44
45
  function AIAgentRunFormComponentExtended_i_8_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelement(0, "i", 38);
46
+ i0.ɵɵelement(0, "i", 39);
46
47
  } }
47
48
  function AIAgentRunFormComponentExtended_span_13_Template(rf, ctx) { if (rf & 1) {
48
49
  const _r2 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "span", 39)(1, "a", 40);
50
+ i0.ɵɵelementStart(0, "span", 40)(1, "a", 41);
50
51
  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)); });
51
52
  i0.ɵɵtext(2);
52
53
  i0.ɵɵelementEnd()();
@@ -57,18 +58,29 @@ function AIAgentRunFormComponentExtended_span_13_Template(rf, ctx) { if (rf & 1)
57
58
  } }
58
59
  function AIAgentRunFormComponentExtended_span_16_Template(rf, ctx) { if (rf & 1) {
59
60
  const _r3 = i0.ɵɵgetCurrentView();
60
- i0.ɵɵelementStart(0, "span", 41);
61
- i0.ɵɵelement(1, "i", 42);
62
- i0.ɵɵelementStart(2, "a", 43);
61
+ i0.ɵɵelementStart(0, "span", 42);
62
+ i0.ɵɵelement(1, "i", 43);
63
+ i0.ɵɵelementStart(2, "a", 44);
63
64
  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()); });
64
65
  i0.ɵɵtext(3, "Parent Run");
65
66
  i0.ɵɵelementEnd()();
66
67
  } }
67
- function AIAgentRunFormComponentExtended_div_31_Template(rf, ctx) { if (rf & 1) {
68
- i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
68
+ function AIAgentRunFormComponentExtended_span_17_Template(rf, ctx) { if (rf & 1) {
69
+ const _r4 = i0.ɵɵgetCurrentView();
70
+ i0.ɵɵelementStart(0, "span", 45);
71
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_span_17_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToConversation()); });
72
+ i0.ɵɵelement(1, "i", 46);
73
+ i0.ɵɵelementStart(2, "span");
74
+ i0.ɵɵtext(3, "Conversation");
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelement(4, "i", 47);
77
+ i0.ɵɵelementEnd();
78
+ } }
79
+ function AIAgentRunFormComponentExtended_div_32_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
69
81
  i0.ɵɵtext(2, "Completed");
70
82
  i0.ɵɵelementEnd();
71
- i0.ɵɵelementStart(3, "span", 25);
83
+ i0.ɵɵelementStart(3, "span", 26);
72
84
  i0.ɵɵtext(4);
73
85
  i0.ɵɵpipe(5, "date");
74
86
  i0.ɵɵelementEnd()();
@@ -77,11 +89,11 @@ function AIAgentRunFormComponentExtended_div_31_Template(rf, ctx) { if (rf & 1)
77
89
  i0.ɵɵadvance(4);
78
90
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r0.record.CompletedAt, "medium"));
79
91
  } }
80
- function AIAgentRunFormComponentExtended_div_32_Template(rf, ctx) { if (rf & 1) {
81
- i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
92
+ function AIAgentRunFormComponentExtended_div_33_Template(rf, ctx) { if (rf & 1) {
93
+ i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
82
94
  i0.ɵɵtext(2, "Duration");
83
95
  i0.ɵɵelementEnd();
84
- i0.ɵɵelementStart(3, "span", 25);
96
+ i0.ɵɵelementStart(3, "span", 26);
85
97
  i0.ɵɵtext(4);
86
98
  i0.ɵɵelementEnd()();
87
99
  } if (rf & 2) {
@@ -89,11 +101,11 @@ function AIAgentRunFormComponentExtended_div_32_Template(rf, ctx) { if (rf & 1)
89
101
  i0.ɵɵadvance(4);
90
102
  i0.ɵɵtextInterpolate(ctx_r0.calculateDuration(ctx_r0.record.StartedAt, ctx_r0.record.CompletedAt));
91
103
  } }
92
- function AIAgentRunFormComponentExtended_div_33_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
104
+ function AIAgentRunFormComponentExtended_div_34_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
94
106
  i0.ɵɵtext(2, "Result");
95
107
  i0.ɵɵelementEnd();
96
- i0.ɵɵelementStart(3, "span", 25);
108
+ i0.ɵɵelementStart(3, "span", 26);
97
109
  i0.ɵɵtext(4);
98
110
  i0.ɵɵelementEnd()();
99
111
  } if (rf & 2) {
@@ -103,8 +115,8 @@ function AIAgentRunFormComponentExtended_div_33_Template(rf, ctx) { if (rf & 1)
103
115
  i0.ɵɵadvance();
104
116
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Success ? "Success" : "Failed", " ");
105
117
  } }
106
- function AIAgentRunFormComponentExtended_div_34_span_3_Template(rf, ctx) { if (rf & 1) {
107
- i0.ɵɵelementStart(0, "span", 25);
118
+ function AIAgentRunFormComponentExtended_div_35_span_3_Template(rf, ctx) { if (rf & 1) {
119
+ i0.ɵɵelementStart(0, "span", 26);
108
120
  i0.ɵɵtext(1);
109
121
  i0.ɵɵpipe(2, "number");
110
122
  i0.ɵɵelementEnd();
@@ -113,16 +125,16 @@ function AIAgentRunFormComponentExtended_div_34_span_3_Template(rf, ctx) { if (r
113
125
  i0.ɵɵadvance();
114
126
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r0.costMetrics.totalTokensInput + ctx_r0.costMetrics.totalTokensOutput, "1.0-0"));
115
127
  } }
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);
128
+ function AIAgentRunFormComponentExtended_div_35_span_4_Template(rf, ctx) { if (rf & 1) {
129
+ i0.ɵɵelementStart(0, "span", 50);
130
+ i0.ɵɵelement(1, "i", 51);
119
131
  i0.ɵɵelementEnd();
120
132
  } }
121
- function AIAgentRunFormComponentExtended_div_34_Template(rf, ctx) { if (rf & 1) {
122
- i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
133
+ function AIAgentRunFormComponentExtended_div_35_Template(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
123
135
  i0.ɵɵtext(2, "Tokens");
124
136
  i0.ɵɵelementEnd();
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);
137
+ i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_35_span_3_Template, 3, 4, "span", 48)(4, AIAgentRunFormComponentExtended_div_35_span_4_Template, 2, 0, "span", 49);
126
138
  i0.ɵɵelementEnd();
127
139
  } if (rf & 2) {
128
140
  const ctx_r0 = i0.ɵɵnextContext();
@@ -131,8 +143,8 @@ function AIAgentRunFormComponentExtended_div_34_Template(rf, ctx) { if (rf & 1)
131
143
  i0.ɵɵadvance();
132
144
  i0.ɵɵproperty("ngIf", ctx_r0.costMetrics.isLoading);
133
145
  } }
134
- function AIAgentRunFormComponentExtended_div_35_span_3_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵelementStart(0, "span", 25);
146
+ function AIAgentRunFormComponentExtended_div_36_span_3_Template(rf, ctx) { if (rf & 1) {
147
+ i0.ɵɵelementStart(0, "span", 26);
136
148
  i0.ɵɵtext(1);
137
149
  i0.ɵɵpipe(2, "number");
138
150
  i0.ɵɵelementEnd();
@@ -141,16 +153,16 @@ function AIAgentRunFormComponentExtended_div_35_span_3_Template(rf, ctx) { if (r
141
153
  i0.ɵɵadvance();
142
154
  i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(2, 1, ctx_r0.costMetrics.totalCost, "1.2-4"), "");
143
155
  } }
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);
156
+ function AIAgentRunFormComponentExtended_div_36_span_4_Template(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵelementStart(0, "span", 50);
158
+ i0.ɵɵelement(1, "i", 51);
147
159
  i0.ɵɵelementEnd();
148
160
  } }
149
- function AIAgentRunFormComponentExtended_div_35_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
161
+ function AIAgentRunFormComponentExtended_div_36_Template(rf, ctx) { if (rf & 1) {
162
+ i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
151
163
  i0.ɵɵtext(2, "Cost");
152
164
  i0.ɵɵelementEnd();
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);
165
+ i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_36_span_3_Template, 3, 4, "span", 48)(4, AIAgentRunFormComponentExtended_div_36_span_4_Template, 2, 0, "span", 49);
154
166
  i0.ɵɵelementEnd();
155
167
  } if (rf & 2) {
156
168
  const ctx_r0 = i0.ɵɵnextContext();
@@ -159,11 +171,11 @@ function AIAgentRunFormComponentExtended_div_35_Template(rf, ctx) { if (rf & 1)
159
171
  i0.ɵɵadvance();
160
172
  i0.ɵɵproperty("ngIf", ctx_r0.costMetrics.isLoading);
161
173
  } }
162
- function AIAgentRunFormComponentExtended_div_36_Template(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵelementStart(0, "div", 23)(1, "span", 24);
174
+ function AIAgentRunFormComponentExtended_div_37_Template(rf, ctx) { if (rf & 1) {
175
+ i0.ɵɵelementStart(0, "div", 24)(1, "span", 25);
164
176
  i0.ɵɵtext(2, "Effort Level");
165
177
  i0.ɵɵelementEnd();
166
- i0.ɵɵelementStart(3, "span", 25);
178
+ i0.ɵɵelementStart(3, "span", 26);
167
179
  i0.ɵɵtext(4);
168
180
  i0.ɵɵelementEnd()();
169
181
  } if (rf & 2) {
@@ -171,15 +183,15 @@ function AIAgentRunFormComponentExtended_div_36_Template(rf, ctx) { if (rf & 1)
171
183
  i0.ɵɵadvance(4);
172
184
  i0.ɵɵtextInterpolate(ctx_r0.record.EffortLevel);
173
185
  } }
174
- function AIAgentRunFormComponentExtended_div_37_Template(rf, ctx) { if (rf & 1) {
175
- const _r4 = i0.ɵɵgetCurrentView();
176
- i0.ɵɵelementStart(0, "div", 48)(1, "div", 49);
177
- i0.ɵɵelement(2, "i", 50);
178
- i0.ɵɵelementStart(3, "div", 51)(4, "div", 52);
186
+ function AIAgentRunFormComponentExtended_div_38_Template(rf, ctx) { if (rf & 1) {
187
+ const _r5 = i0.ɵɵgetCurrentView();
188
+ i0.ɵɵelementStart(0, "div", 52)(1, "div", 53);
189
+ i0.ɵɵelement(2, "i", 54);
190
+ i0.ɵɵelementStart(3, "div", 55)(4, "div", 56);
179
191
  i0.ɵɵtext(5, "Configuration");
180
192
  i0.ɵɵelementEnd();
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)); });
193
+ i0.ɵɵelementStart(6, "div", 57)(7, "a", 41);
194
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_38_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Configurations", ctx_r0.record.ConfigurationID)); });
183
195
  i0.ɵɵtext(8);
184
196
  i0.ɵɵelementEnd()()()()();
185
197
  } if (rf & 2) {
@@ -187,13 +199,13 @@ function AIAgentRunFormComponentExtended_div_37_Template(rf, ctx) { if (rf & 1)
187
199
  i0.ɵɵadvance(8);
188
200
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.Configuration || "Unknown", " ");
189
201
  } }
190
- function AIAgentRunFormComponentExtended_div_52_Template(rf, ctx) { if (rf & 1) {
191
- const _r5 = i0.ɵɵgetCurrentView();
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)); });
202
+ function AIAgentRunFormComponentExtended_div_53_Template(rf, ctx) { if (rf & 1) {
203
+ const _r6 = i0.ɵɵgetCurrentView();
204
+ i0.ɵɵelementStart(0, "div", 58)(1, "kendo-splitter", 59)(2, "kendo-splitter-pane", 60)(3, "mj-ai-agent-run-timeline", 61);
205
+ i0.ɵɵlistener("itemSelected", function AIAgentRunFormComponentExtended_div_53_Template_mj_ai_agent_run_timeline_itemSelected_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.selectTimelineItem($event)); })("navigateToEntity", function AIAgentRunFormComponentExtended_div_53_Template_mj_ai_agent_run_timeline_navigateToEntity_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToEntityRecord($event)); })("agentRunCompleted", function AIAgentRunFormComponentExtended_div_53_Template_mj_ai_agent_run_timeline_agentRunCompleted_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onAgentRunCompleted($event)); });
194
206
  i0.ɵɵelementEnd()();
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)); });
207
+ i0.ɵɵelementStart(4, "kendo-splitter-pane", 62)(5, "mj-ai-agent-run-step-detail", 63);
208
+ i0.ɵɵlistener("closePanel", function AIAgentRunFormComponentExtended_div_53_Template_mj_ai_agent_run_step_detail_closePanel_5_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeJsonPanel()); })("navigateToActionLog", function AIAgentRunFormComponentExtended_div_53_Template_mj_ai_agent_run_step_detail_navigateToActionLog_5_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToActionLog($event)); })("copyToClipboard", function AIAgentRunFormComponentExtended_div_53_Template_mj_ai_agent_run_step_detail_copyToClipboard_5_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.copyToClipboard($event)); });
197
209
  i0.ɵɵelementEnd()()()();
198
210
  } if (rf & 2) {
199
211
  const ctx_r0 = i0.ɵɵnextContext();
@@ -206,40 +218,40 @@ function AIAgentRunFormComponentExtended_div_52_Template(rf, ctx) { if (rf & 1)
206
218
  i0.ɵɵadvance();
207
219
  i0.ɵɵproperty("selectedTimelineItem", ctx_r0.selectedTimelineItem);
208
220
  } }
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);
221
+ function AIAgentRunFormComponentExtended_div_54_mj_ai_agent_run_visualization_1_Template(rf, ctx) { if (rf & 1) {
222
+ i0.ɵɵelement(0, "mj-ai-agent-run-visualization", 65, 0);
211
223
  } if (rf & 2) {
212
224
  const ctx_r0 = i0.ɵɵnextContext(2);
213
225
  i0.ɵɵproperty("aiAgentRunId", ctx_r0.record.ID)("dataHelper", ctx_r0.dataHelper);
214
226
  } }
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);
227
+ function AIAgentRunFormComponentExtended_div_54_Template(rf, ctx) { if (rf & 1) {
228
+ i0.ɵɵelementStart(0, "div", 58);
229
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_54_mj_ai_agent_run_visualization_1_Template, 2, 2, "mj-ai-agent-run-visualization", 64);
218
230
  i0.ɵɵelementEnd();
219
231
  } if (rf & 2) {
220
232
  const ctx_r0 = i0.ɵɵnextContext();
221
233
  i0.ɵɵadvance();
222
234
  i0.ɵɵproperty("ngIf", ctx_r0.visualizationLoaded);
223
235
  } }
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);
236
+ function AIAgentRunFormComponentExtended_div_55_mj_ai_agent_run_analytics_1_Template(rf, ctx) { if (rf & 1) {
237
+ i0.ɵɵelement(0, "mj-ai-agent-run-analytics", 67, 1);
226
238
  } if (rf & 2) {
227
239
  const ctx_r0 = i0.ɵɵnextContext(2);
228
240
  i0.ɵɵproperty("agentRunId", ctx_r0.record.ID);
229
241
  } }
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);
242
+ function AIAgentRunFormComponentExtended_div_55_Template(rf, ctx) { if (rf & 1) {
243
+ i0.ɵɵelementStart(0, "div", 58);
244
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_55_mj_ai_agent_run_analytics_1_Template, 2, 1, "mj-ai-agent-run-analytics", 66);
233
245
  i0.ɵɵelementEnd();
234
246
  } if (rf & 2) {
235
247
  const ctx_r0 = i0.ɵɵnextContext();
236
248
  i0.ɵɵadvance();
237
249
  i0.ɵɵproperty("ngIf", ctx_r0.analyticsLoaded);
238
250
  } }
239
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_11_Template(rf, ctx) { if (rf & 1) {
240
- const _r7 = i0.ɵɵgetCurrentView();
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)); });
251
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_11_Template(rf, ctx) { if (rf & 1) {
252
+ const _r8 = i0.ɵɵgetCurrentView();
253
+ i0.ɵɵelementStart(0, "a", 41);
254
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_11_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.ParentRunID)); });
243
255
  i0.ɵɵtext(1);
244
256
  i0.ɵɵelementEnd();
245
257
  } if (rf & 2) {
@@ -247,15 +259,15 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_11_Template(rf,
247
259
  i0.ɵɵadvance();
248
260
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.ParentRunID, " ");
249
261
  } }
250
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_12_Template(rf, ctx) { if (rf & 1) {
262
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_span_12_Template(rf, ctx) { if (rf & 1) {
251
263
  i0.ɵɵelementStart(0, "span");
252
264
  i0.ɵɵtext(1, "None (Root)");
253
265
  i0.ɵɵelementEnd();
254
266
  } }
255
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_17_Template(rf, ctx) { if (rf & 1) {
256
- const _r8 = i0.ɵɵgetCurrentView();
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)); });
267
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_17_Template(rf, ctx) { if (rf & 1) {
268
+ const _r9 = i0.ɵɵgetCurrentView();
269
+ i0.ɵɵelementStart(0, "a", 41);
270
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_17_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("MJ: AI Agent Runs", ctx_r0.record.LastRunID)); });
259
271
  i0.ɵɵtext(1);
260
272
  i0.ɵɵelementEnd();
261
273
  } if (rf & 2) {
@@ -263,15 +275,15 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_17_Template(rf,
263
275
  i0.ɵɵadvance();
264
276
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.LastRunID, " ");
265
277
  } }
266
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_18_Template(rf, ctx) { if (rf & 1) {
278
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_span_18_Template(rf, ctx) { if (rf & 1) {
267
279
  i0.ɵɵelementStart(0, "span");
268
280
  i0.ɵɵtext(1, "None");
269
281
  i0.ɵɵelementEnd();
270
282
  } }
271
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_23_Template(rf, ctx) { if (rf & 1) {
272
- const _r9 = i0.ɵɵgetCurrentView();
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)); });
283
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_23_Template(rf, ctx) { if (rf & 1) {
284
+ const _r10 = i0.ɵɵgetCurrentView();
285
+ i0.ɵɵelementStart(0, "a", 41);
286
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_23_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("Conversations", ctx_r0.record.ConversationID)); });
275
287
  i0.ɵɵtext(1);
276
288
  i0.ɵɵelementEnd();
277
289
  } if (rf & 2) {
@@ -279,15 +291,15 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_23_Template(rf,
279
291
  i0.ɵɵadvance();
280
292
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.ConversationID, " ");
281
293
  } }
282
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_24_Template(rf, ctx) { if (rf & 1) {
294
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_span_24_Template(rf, ctx) { if (rf & 1) {
283
295
  i0.ɵɵelementStart(0, "span");
284
296
  i0.ɵɵtext(1, "N/A");
285
297
  i0.ɵɵelementEnd();
286
298
  } }
287
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_29_Template(rf, ctx) { if (rf & 1) {
288
- const _r10 = i0.ɵɵgetCurrentView();
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)); });
299
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_29_Template(rf, ctx) { if (rf & 1) {
300
+ const _r11 = i0.ɵɵgetCurrentView();
301
+ i0.ɵɵelementStart(0, "a", 41);
302
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_3_a_29_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("Users", ctx_r0.record.UserID)); });
291
303
  i0.ɵɵtext(1);
292
304
  i0.ɵɵelementEnd();
293
305
  } if (rf & 2) {
@@ -295,43 +307,43 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_3_a_29_Template(rf,
295
307
  i0.ɵɵadvance();
296
308
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.User || "N/A", " ");
297
309
  } }
298
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_span_30_Template(rf, ctx) { if (rf & 1) {
310
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_span_30_Template(rf, ctx) { if (rf & 1) {
299
311
  i0.ɵɵelementStart(0, "span");
300
312
  i0.ɵɵtext(1, "N/A");
301
313
  i0.ɵɵelementEnd();
302
314
  } }
303
- function AIAgentRunFormComponentExtended_div_55_ng_template_3_Template(rf, ctx) { if (rf & 1) {
304
- const _r6 = i0.ɵɵgetCurrentView();
305
- i0.ɵɵelementStart(0, "div", 76)(1, "div", 77)(2, "label");
315
+ function AIAgentRunFormComponentExtended_div_56_ng_template_3_Template(rf, ctx) { if (rf & 1) {
316
+ const _r7 = i0.ɵɵgetCurrentView();
317
+ i0.ɵɵelementStart(0, "div", 80)(1, "div", 81)(2, "label");
306
318
  i0.ɵɵtext(3, "Agent");
307
319
  i0.ɵɵelementEnd();
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)); });
320
+ i0.ɵɵelementStart(4, "span")(5, "a", 41);
321
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_3_Template_a_click_5_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Agents", ctx_r0.record.AgentID)); });
310
322
  i0.ɵɵtext(6);
311
323
  i0.ɵɵelementEnd()()();
312
- i0.ɵɵelementStart(7, "div", 77)(8, "label");
324
+ i0.ɵɵelementStart(7, "div", 81)(8, "label");
313
325
  i0.ɵɵtext(9, "Parent Run ID");
314
326
  i0.ɵɵelementEnd();
315
327
  i0.ɵɵelementStart(10, "span");
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);
328
+ i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_div_56_ng_template_3_a_11_Template, 2, 1, "a", 82)(12, AIAgentRunFormComponentExtended_div_56_ng_template_3_span_12_Template, 2, 0, "span", 83);
317
329
  i0.ɵɵelementEnd()();
318
- i0.ɵɵelementStart(13, "div", 77)(14, "label");
330
+ i0.ɵɵelementStart(13, "div", 81)(14, "label");
319
331
  i0.ɵɵtext(15, "Last Run ID");
320
332
  i0.ɵɵelementEnd();
321
333
  i0.ɵɵelementStart(16, "span");
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);
334
+ i0.ɵɵtemplate(17, AIAgentRunFormComponentExtended_div_56_ng_template_3_a_17_Template, 2, 1, "a", 82)(18, AIAgentRunFormComponentExtended_div_56_ng_template_3_span_18_Template, 2, 0, "span", 83);
323
335
  i0.ɵɵelementEnd()();
324
- i0.ɵɵelementStart(19, "div", 77)(20, "label");
336
+ i0.ɵɵelementStart(19, "div", 81)(20, "label");
325
337
  i0.ɵɵtext(21, "Conversation ID");
326
338
  i0.ɵɵelementEnd();
327
339
  i0.ɵɵelementStart(22, "span");
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);
340
+ i0.ɵɵtemplate(23, AIAgentRunFormComponentExtended_div_56_ng_template_3_a_23_Template, 2, 1, "a", 82)(24, AIAgentRunFormComponentExtended_div_56_ng_template_3_span_24_Template, 2, 0, "span", 83);
329
341
  i0.ɵɵelementEnd()();
330
- i0.ɵɵelementStart(25, "div", 77)(26, "label");
342
+ i0.ɵɵelementStart(25, "div", 81)(26, "label");
331
343
  i0.ɵɵtext(27, "User");
332
344
  i0.ɵɵelementEnd();
333
345
  i0.ɵɵelementStart(28, "span");
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);
346
+ i0.ɵɵtemplate(29, AIAgentRunFormComponentExtended_div_56_ng_template_3_a_29_Template, 2, 1, "a", 82)(30, AIAgentRunFormComponentExtended_div_56_ng_template_3_span_30_Template, 2, 0, "span", 83);
335
347
  i0.ɵɵelementEnd()()();
336
348
  } if (rf & 2) {
337
349
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -354,10 +366,10 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_3_Template(rf, ctx)
354
366
  i0.ɵɵadvance();
355
367
  i0.ɵɵproperty("ngIf", !ctx_r0.record.UserID);
356
368
  } }
357
- function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_5_Template(rf, ctx) { if (rf & 1) {
358
- const _r11 = i0.ɵɵgetCurrentView();
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)); });
369
+ function AIAgentRunFormComponentExtended_div_56_ng_template_5_a_5_Template(rf, ctx) { if (rf & 1) {
370
+ const _r12 = i0.ɵɵgetCurrentView();
371
+ i0.ɵɵelementStart(0, "a", 41);
372
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_5_a_5_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Models", ctx_r0.record.OverrideModelID)); });
361
373
  i0.ɵɵtext(1);
362
374
  i0.ɵɵelementEnd();
363
375
  } if (rf & 2) {
@@ -365,15 +377,15 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_5_Template(rf, c
365
377
  i0.ɵɵadvance();
366
378
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.OverrideModel || "N/A", " ");
367
379
  } }
368
- function AIAgentRunFormComponentExtended_div_55_ng_template_5_span_6_Template(rf, ctx) { if (rf & 1) {
380
+ function AIAgentRunFormComponentExtended_div_56_ng_template_5_span_6_Template(rf, ctx) { if (rf & 1) {
369
381
  i0.ɵɵelementStart(0, "span");
370
382
  i0.ɵɵtext(1, "N/A");
371
383
  i0.ɵɵelementEnd();
372
384
  } }
373
- function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_11_Template(rf, ctx) { if (rf & 1) {
374
- const _r12 = i0.ɵɵgetCurrentView();
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)); });
385
+ function AIAgentRunFormComponentExtended_div_56_ng_template_5_a_11_Template(rf, ctx) { if (rf & 1) {
386
+ const _r13 = i0.ɵɵgetCurrentView();
387
+ i0.ɵɵelementStart(0, "a", 41);
388
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_div_56_ng_template_5_a_11_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord("AI Vendors", ctx_r0.record.OverrideVendorID)); });
377
389
  i0.ɵɵtext(1);
378
390
  i0.ɵɵelementEnd();
379
391
  } if (rf & 2) {
@@ -381,25 +393,25 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_5_a_11_Template(rf,
381
393
  i0.ɵɵadvance();
382
394
  i0.ɵɵtextInterpolate1(" ", ctx_r0.record.OverrideVendor || "N/A", " ");
383
395
  } }
384
- function AIAgentRunFormComponentExtended_div_55_ng_template_5_span_12_Template(rf, ctx) { if (rf & 1) {
396
+ function AIAgentRunFormComponentExtended_div_56_ng_template_5_span_12_Template(rf, ctx) { if (rf & 1) {
385
397
  i0.ɵɵelementStart(0, "span");
386
398
  i0.ɵɵtext(1, "N/A");
387
399
  i0.ɵɵelementEnd();
388
400
  } }
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");
401
+ function AIAgentRunFormComponentExtended_div_56_ng_template_5_Template(rf, ctx) { if (rf & 1) {
402
+ i0.ɵɵelementStart(0, "div", 80)(1, "div", 81)(2, "label");
391
403
  i0.ɵɵtext(3, "Override Model");
392
404
  i0.ɵɵelementEnd();
393
405
  i0.ɵɵelementStart(4, "span");
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);
406
+ i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_56_ng_template_5_a_5_Template, 2, 1, "a", 82)(6, AIAgentRunFormComponentExtended_div_56_ng_template_5_span_6_Template, 2, 0, "span", 83);
395
407
  i0.ɵɵelementEnd()();
396
- i0.ɵɵelementStart(7, "div", 77)(8, "label");
408
+ i0.ɵɵelementStart(7, "div", 81)(8, "label");
397
409
  i0.ɵɵtext(9, "Override Vendor");
398
410
  i0.ɵɵelementEnd();
399
411
  i0.ɵɵelementStart(10, "span");
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);
412
+ i0.ɵɵtemplate(11, AIAgentRunFormComponentExtended_div_56_ng_template_5_a_11_Template, 2, 1, "a", 82)(12, AIAgentRunFormComponentExtended_div_56_ng_template_5_span_12_Template, 2, 0, "span", 83);
401
413
  i0.ɵɵelementEnd()();
402
- i0.ɵɵelementStart(13, "div", 77)(14, "label");
414
+ i0.ɵɵelementStart(13, "div", 81)(14, "label");
403
415
  i0.ɵɵtext(15, "Verbose Logging");
404
416
  i0.ɵɵelementEnd();
405
417
  i0.ɵɵelementStart(16, "span");
@@ -418,26 +430,26 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_5_Template(rf, ctx)
418
430
  i0.ɵɵadvance(5);
419
431
  i0.ɵɵtextInterpolate(ctx_r0.record.Verbose ? "Yes" : "No");
420
432
  } }
421
- function AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
433
+ function AIAgentRunFormComponentExtended_div_56_ng_template_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
422
434
  i0.ɵɵelementStart(0, "span");
423
435
  i0.ɵɵtext(1, "In Progress");
424
436
  i0.ɵɵelementEnd();
425
437
  } }
426
- function AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
427
- i0.ɵɵelementStart(0, "span", 80);
438
+ function AIAgentRunFormComponentExtended_div_56_ng_template_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
439
+ i0.ɵɵelementStart(0, "span", 84);
428
440
  i0.ɵɵtext(1, "Yes");
429
441
  i0.ɵɵelementEnd();
430
442
  } }
431
- function AIAgentRunFormComponentExtended_div_55_ng_template_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
432
- i0.ɵɵelementStart(0, "span", 81);
443
+ function AIAgentRunFormComponentExtended_div_56_ng_template_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
444
+ i0.ɵɵelementStart(0, "span", 85);
433
445
  i0.ɵɵtext(1, "No");
434
446
  i0.ɵɵelementEnd();
435
447
  } }
436
- function AIAgentRunFormComponentExtended_div_55_ng_template_7_div_12_Template(rf, ctx) { if (rf & 1) {
437
- i0.ɵɵelementStart(0, "div", 83)(1, "label");
448
+ function AIAgentRunFormComponentExtended_div_56_ng_template_7_div_12_Template(rf, ctx) { if (rf & 1) {
449
+ i0.ɵɵelementStart(0, "div", 87)(1, "label");
438
450
  i0.ɵɵtext(2, "Message");
439
451
  i0.ɵɵelementEnd();
440
- i0.ɵɵelementStart(3, "div", 84);
452
+ i0.ɵɵelementStart(3, "div", 88);
441
453
  i0.ɵɵtext(4);
442
454
  i0.ɵɵelementEnd()();
443
455
  } if (rf & 2) {
@@ -445,11 +457,11 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_7_div_12_Template(rf
445
457
  i0.ɵɵadvance(4);
446
458
  i0.ɵɵtextInterpolate(ctx_r0.record.Message);
447
459
  } }
448
- function AIAgentRunFormComponentExtended_div_55_ng_template_7_div_13_Template(rf, ctx) { if (rf & 1) {
449
- i0.ɵɵelementStart(0, "div", 83)(1, "label");
460
+ function AIAgentRunFormComponentExtended_div_56_ng_template_7_div_13_Template(rf, ctx) { if (rf & 1) {
461
+ i0.ɵɵelementStart(0, "div", 87)(1, "label");
450
462
  i0.ɵɵtext(2, "Error Message");
451
463
  i0.ɵɵelementEnd();
452
- i0.ɵɵelementStart(3, "div", 81);
464
+ i0.ɵɵelementStart(3, "div", 85);
453
465
  i0.ɵɵtext(4);
454
466
  i0.ɵɵelementEnd()();
455
467
  } if (rf & 2) {
@@ -457,19 +469,19 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_7_div_13_Template(rf
457
469
  i0.ɵɵadvance(4);
458
470
  i0.ɵɵtextInterpolate(ctx_r0.record.ErrorMessage);
459
471
  } }
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");
472
+ function AIAgentRunFormComponentExtended_div_56_ng_template_7_Template(rf, ctx) { if (rf & 1) {
473
+ i0.ɵɵelementStart(0, "div", 80)(1, "div", 81)(2, "label");
462
474
  i0.ɵɵtext(3, "Status");
463
475
  i0.ɵɵelementEnd();
464
- i0.ɵɵelementStart(4, "span", 17);
476
+ i0.ɵɵelementStart(4, "span", 18);
465
477
  i0.ɵɵtext(5);
466
478
  i0.ɵɵelementEnd()();
467
- i0.ɵɵelementStart(6, "div", 77)(7, "label");
479
+ i0.ɵɵelementStart(6, "div", 81)(7, "label");
468
480
  i0.ɵɵtext(8, "Success");
469
481
  i0.ɵɵelementEnd();
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);
482
+ i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_56_ng_template_7_Conditional_9_Template, 2, 0, "span")(10, AIAgentRunFormComponentExtended_div_56_ng_template_7_Conditional_10_Template, 2, 0, "span", 84)(11, AIAgentRunFormComponentExtended_div_56_ng_template_7_Conditional_11_Template, 2, 0, "span", 85);
471
483
  i0.ɵɵelementEnd();
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);
484
+ i0.ɵɵtemplate(12, AIAgentRunFormComponentExtended_div_56_ng_template_7_div_12_Template, 5, 1, "div", 86)(13, AIAgentRunFormComponentExtended_div_56_ng_template_7_div_13_Template, 5, 1, "div", 86);
473
485
  i0.ɵɵelementEnd();
474
486
  } if (rf & 2) {
475
487
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -484,36 +496,36 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_7_Template(rf, ctx)
484
496
  i0.ɵɵadvance();
485
497
  i0.ɵɵproperty("ngIf", ctx_r0.record.ErrorMessage);
486
498
  } }
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");
499
+ function AIAgentRunFormComponentExtended_div_56_ng_template_9_Template(rf, ctx) { if (rf & 1) {
500
+ i0.ɵɵelementStart(0, "div", 80)(1, "div", 81)(2, "label");
489
501
  i0.ɵɵtext(3, "Total Tokens Used");
490
502
  i0.ɵɵelementEnd();
491
503
  i0.ɵɵelementStart(4, "span");
492
504
  i0.ɵɵtext(5);
493
505
  i0.ɵɵpipe(6, "number");
494
506
  i0.ɵɵelementEnd()();
495
- i0.ɵɵelementStart(7, "div", 77)(8, "label");
507
+ i0.ɵɵelementStart(7, "div", 81)(8, "label");
496
508
  i0.ɵɵtext(9, "Prompt Tokens");
497
509
  i0.ɵɵelementEnd();
498
510
  i0.ɵɵelementStart(10, "span");
499
511
  i0.ɵɵtext(11);
500
512
  i0.ɵɵpipe(12, "number");
501
513
  i0.ɵɵelementEnd()();
502
- i0.ɵɵelementStart(13, "div", 77)(14, "label");
514
+ i0.ɵɵelementStart(13, "div", 81)(14, "label");
503
515
  i0.ɵɵtext(15, "Completion Tokens");
504
516
  i0.ɵɵelementEnd();
505
517
  i0.ɵɵelementStart(16, "span");
506
518
  i0.ɵɵtext(17);
507
519
  i0.ɵɵpipe(18, "number");
508
520
  i0.ɵɵelementEnd()();
509
- i0.ɵɵelementStart(19, "div", 77)(20, "label");
521
+ i0.ɵɵelementStart(19, "div", 81)(20, "label");
510
522
  i0.ɵɵtext(21, "Total Cost");
511
523
  i0.ɵɵelementEnd();
512
524
  i0.ɵɵelementStart(22, "span");
513
525
  i0.ɵɵtext(23);
514
526
  i0.ɵɵpipe(24, "number");
515
527
  i0.ɵɵelementEnd()();
516
- i0.ɵɵelementStart(25, "div", 77)(26, "label");
528
+ i0.ɵɵelementStart(25, "div", 81)(26, "label");
517
529
  i0.ɵɵtext(27, "Total Prompt Iterations");
518
530
  i0.ɵɵelementEnd();
519
531
  i0.ɵɵelementStart(28, "span");
@@ -533,150 +545,150 @@ function AIAgentRunFormComponentExtended_div_55_ng_template_9_Template(rf, ctx)
533
545
  i0.ɵɵadvance(6);
534
546
  i0.ɵɵtextInterpolate(ctx_r0.record.TotalPromptIterations != null ? i0.ɵɵpipeBind2(30, 17, ctx_r0.record.TotalPromptIterations, "1.0-0") : "N/A");
535
547
  } }
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);
548
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
549
+ i0.ɵɵelement(0, "mj-code-editor", 91);
538
550
  } if (rf & 2) {
539
551
  const ctx_r0 = i0.ɵɵnextContext(4);
540
552
  i0.ɵɵproperty("ngModel", ctx_r0.parsedResult)("language", "json")("readonly", true);
541
553
  } }
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);
554
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
555
+ i0.ɵɵelementStart(0, "div", 92);
556
+ i0.ɵɵelement(1, "i", 51);
545
557
  i0.ɵɵtext(2, " Loading result data... ");
546
558
  i0.ɵɵelementEnd();
547
559
  } }
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);
560
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_ng_template_1_Template(rf, ctx) { if (rf & 1) {
561
+ i0.ɵɵelementStart(0, "div", 90);
562
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 91)(2, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_ng_template_1_Conditional_2_Template, 3, 0, "div", 92);
551
563
  i0.ɵɵelementEnd();
552
564
  } if (rf & 2) {
553
565
  const ctx_r0 = i0.ɵɵnextContext(3);
554
566
  i0.ɵɵadvance();
555
567
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
556
568
  } }
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);
569
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_Template(rf, ctx) { if (rf & 1) {
570
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 89);
571
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_ng_template_1_Template, 3, 1, "ng-template", 71);
560
572
  i0.ɵɵelementEnd();
561
573
  } }
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);
574
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
575
+ i0.ɵɵelement(0, "mj-code-editor", 91);
564
576
  } if (rf & 2) {
565
577
  const ctx_r0 = i0.ɵɵnextContext(4);
566
578
  i0.ɵɵproperty("ngModel", ctx_r0.parsedStartingPayload)("language", "json")("readonly", true);
567
579
  } }
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);
580
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
581
+ i0.ɵɵelementStart(0, "div", 92);
582
+ i0.ɵɵelement(1, "i", 51);
571
583
  i0.ɵɵtext(2, " Loading payload data... ");
572
584
  i0.ɵɵelementEnd();
573
585
  } }
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);
586
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_ng_template_1_Template(rf, ctx) { if (rf & 1) {
587
+ i0.ɵɵelementStart(0, "div", 90);
588
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 91)(2, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_ng_template_1_Conditional_2_Template, 3, 0, "div", 92);
577
589
  i0.ɵɵelementEnd();
578
590
  } if (rf & 2) {
579
591
  const ctx_r0 = i0.ɵɵnextContext(3);
580
592
  i0.ɵɵadvance();
581
593
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
582
594
  } }
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);
595
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_Template(rf, ctx) { if (rf & 1) {
596
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 93);
597
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_ng_template_1_Template, 3, 1, "ng-template", 71);
586
598
  i0.ɵɵelementEnd();
587
599
  } }
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);
600
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
601
+ i0.ɵɵelement(0, "mj-code-editor", 91);
590
602
  } if (rf & 2) {
591
603
  const ctx_r0 = i0.ɵɵnextContext(4);
592
604
  i0.ɵɵproperty("ngModel", ctx_r0.parsedData)("language", "json")("readonly", true);
593
605
  } }
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);
606
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
607
+ i0.ɵɵelementStart(0, "div", 92);
608
+ i0.ɵɵelement(1, "i", 51);
597
609
  i0.ɵɵtext(2, " Loading execution data... ");
598
610
  i0.ɵɵelementEnd();
599
611
  } }
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);
612
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_ng_template_1_Template(rf, ctx) { if (rf & 1) {
613
+ i0.ɵɵelementStart(0, "div", 90);
614
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 91)(2, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_ng_template_1_Conditional_2_Template, 3, 0, "div", 92);
603
615
  i0.ɵɵelementEnd();
604
616
  } if (rf & 2) {
605
617
  const ctx_r0 = i0.ɵɵnextContext(3);
606
618
  i0.ɵɵadvance();
607
619
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
608
620
  } }
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);
621
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_Template(rf, ctx) { if (rf & 1) {
622
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 94);
623
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_ng_template_1_Template, 3, 1, "ng-template", 71);
612
624
  i0.ɵɵelementEnd();
613
625
  } }
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);
626
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
627
+ i0.ɵɵelement(0, "mj-code-editor", 91);
616
628
  } if (rf & 2) {
617
629
  const ctx_r0 = i0.ɵɵnextContext(4);
618
630
  i0.ɵɵproperty("ngModel", ctx_r0.parsedFinalPayload)("language", "json")("readonly", true);
619
631
  } }
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);
632
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
633
+ i0.ɵɵelementStart(0, "div", 92);
634
+ i0.ɵɵelement(1, "i", 51);
623
635
  i0.ɵɵtext(2, " Loading final payload data... ");
624
636
  i0.ɵɵelementEnd();
625
637
  } }
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);
638
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_ng_template_1_Template(rf, ctx) { if (rf & 1) {
639
+ i0.ɵɵelementStart(0, "div", 90);
640
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_ng_template_1_Conditional_1_Template, 1, 3, "mj-code-editor", 91)(2, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_ng_template_1_Conditional_2_Template, 3, 0, "div", 92);
629
641
  i0.ɵɵelementEnd();
630
642
  } if (rf & 2) {
631
643
  const ctx_r0 = i0.ɵɵnextContext(3);
632
644
  i0.ɵɵadvance();
633
645
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
634
646
  } }
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);
647
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_Template(rf, ctx) { if (rf & 1) {
648
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 95);
649
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_ng_template_1_Template, 3, 1, "ng-template", 71);
638
650
  i0.ɵɵelementEnd();
639
651
  } }
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);
652
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_ng_template_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
653
+ i0.ɵɵelement(0, "mj-deep-diff", 98);
642
654
  } if (rf & 2) {
643
655
  const ctx_r0 = i0.ɵɵnextContext(4);
644
656
  i0.ɵɵproperty("oldValue", ctx_r0.startingPayloadObject)("newValue", ctx_r0.finalPayloadObject)("title", "")("showSummary", true)("showUnchanged", false)("expandAll", false)("maxDepth", 10)("maxStringLength", 200)("treatNullAsUndefined", true);
645
657
  } }
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);
658
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_ng_template_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
659
+ i0.ɵɵelementStart(0, "div", 92);
660
+ i0.ɵɵelement(1, "i", 51);
649
661
  i0.ɵɵtext(2, " Loading payload diff... ");
650
662
  i0.ɵɵelementEnd();
651
663
  } }
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);
664
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_ng_template_1_Template(rf, ctx) { if (rf & 1) {
665
+ i0.ɵɵelementStart(0, "div", 97);
666
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_ng_template_1_Conditional_1_Template, 1, 9, "mj-deep-diff", 98)(2, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_ng_template_1_Conditional_2_Template, 3, 0, "div", 92);
655
667
  i0.ɵɵelementEnd();
656
668
  } if (rf & 2) {
657
669
  const ctx_r0 = i0.ɵɵnextContext(3);
658
670
  i0.ɵɵadvance();
659
671
  i0.ɵɵconditional(ctx_r0.isParsingComplete ? 1 : 2);
660
672
  } }
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);
673
+ function AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_Template(rf, ctx) { if (rf & 1) {
674
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 96);
675
+ i0.ɵɵtemplate(1, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_ng_template_1_Template, 3, 1, "ng-template", 71);
664
676
  i0.ɵɵelementEnd();
665
677
  } }
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);
678
+ function AIAgentRunFormComponentExtended_div_56_Template(rf, ctx) { if (rf & 1) {
679
+ i0.ɵɵelementStart(0, "div", 68)(1, "kendo-panelbar", 69)(2, "kendo-panelbar-item", 70);
680
+ i0.ɵɵtemplate(3, AIAgentRunFormComponentExtended_div_56_ng_template_3_Template, 31, 9, "ng-template", 71);
669
681
  i0.ɵɵelementEnd();
670
- i0.ɵɵelementStart(4, "kendo-panelbar-item", 68);
671
- i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_55_ng_template_5_Template, 18, 5, "ng-template", 67);
682
+ i0.ɵɵelementStart(4, "kendo-panelbar-item", 72);
683
+ i0.ɵɵtemplate(5, AIAgentRunFormComponentExtended_div_56_ng_template_5_Template, 18, 5, "ng-template", 71);
672
684
  i0.ɵɵelementEnd();
673
- i0.ɵɵelementStart(6, "kendo-panelbar-item", 69);
674
- i0.ɵɵtemplate(7, AIAgentRunFormComponentExtended_div_55_ng_template_7_Template, 14, 5, "ng-template", 67);
685
+ i0.ɵɵelementStart(6, "kendo-panelbar-item", 73);
686
+ i0.ɵɵtemplate(7, AIAgentRunFormComponentExtended_div_56_ng_template_7_Template, 14, 5, "ng-template", 71);
675
687
  i0.ɵɵelementEnd();
676
- i0.ɵɵelementStart(8, "kendo-panelbar-item", 70);
677
- i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_55_ng_template_9_Template, 31, 20, "ng-template", 67);
688
+ i0.ɵɵelementStart(8, "kendo-panelbar-item", 74);
689
+ i0.ɵɵtemplate(9, AIAgentRunFormComponentExtended_div_56_ng_template_9_Template, 31, 20, "ng-template", 71);
678
690
  i0.ɵɵelementEnd();
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);
691
+ i0.ɵɵtemplate(10, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_10_Template, 2, 0, "kendo-panelbar-item", 75)(11, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_11_Template, 2, 0, "kendo-panelbar-item", 76)(12, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_12_Template, 2, 0, "kendo-panelbar-item", 77)(13, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_13_Template, 2, 0, "kendo-panelbar-item", 78)(14, AIAgentRunFormComponentExtended_div_56_kendo_panelbar_item_14_Template, 2, 0, "kendo-panelbar-item", 79);
680
692
  i0.ɵɵelementEnd()();
681
693
  } if (rf & 2) {
682
694
  const ctx_r0 = i0.ɵɵnextContext();
@@ -696,10 +708,12 @@ function AIAgentRunFormComponentExtended_div_55_Template(rf, ctx) { if (rf & 1)
696
708
  i0.ɵɵproperty("ngIf", ctx_r0.showPayloadDiff);
697
709
  } }
698
710
  let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended extends AIAgentRunFormComponent {
699
- constructor(elementRef, sharedService, router, route, cdr, costService) {
711
+ constructor(elementRef, sharedService, router, route, cdr, costService, navigationService, appManager) {
700
712
  super(elementRef, sharedService, router, route, cdr);
701
713
  this.router = router;
702
714
  this.costService = costService;
715
+ this.navigationService = navigationService;
716
+ this.appManager = appManager;
703
717
  this.destroy$ = new Subject();
704
718
  // UI state
705
719
  this.activeTab = 'timeline';
@@ -825,6 +839,21 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
825
839
  navigateToEntityRecord(event) {
826
840
  SharedService.Instance.OpenEntityRecord(event.entityName, CompositeKey.FromID(event.recordId));
827
841
  }
842
+ /**
843
+ * Navigate to the conversation in the Chat application
844
+ */
845
+ navigateToConversation() {
846
+ if (!this.record?.ConversationID)
847
+ return;
848
+ // Find the Chat app
849
+ const chatApp = this.appManager.GetAllApps().find(app => app.Name === 'Chat');
850
+ if (!chatApp) {
851
+ console.warn('Chat application not found');
852
+ return;
853
+ }
854
+ // Navigate to the Conversations nav item with the conversationId parameter
855
+ this.navigationService.OpenNavItemByName('Conversations', { conversationId: this.record.ConversationID }, chatApp.ID);
856
+ }
828
857
  refreshData() {
829
858
  // Reload the agent run record to get latest status
830
859
  if (this.record?.ID) {
@@ -1215,7 +1244,7 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1215
1244
  return null;
1216
1245
  }
1217
1246
  }
1218
- static { this.ɵfac = function AIAgentRunFormComponentExtended_Factory(t) { return new (t || AIAgentRunFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.AIAgentRunCostService)); }; }
1247
+ static { this.ɵfac = function AIAgentRunFormComponentExtended_Factory(t) { return new (t || AIAgentRunFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.AIAgentRunCostService), i0.ɵɵdirectiveInject(i1.NavigationService), i0.ɵɵdirectiveInject(i4.ApplicationManager)); }; }
1219
1248
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAgentRunFormComponentExtended, selectors: [["mj-ai-agent-run-form"]], viewQuery: function AIAgentRunFormComponentExtended_Query(rf, ctx) { if (rf & 1) {
1220
1249
  i0.ɵɵviewQuery(AIAgentRunTimelineComponent, 5);
1221
1250
  i0.ɵɵviewQuery(AIAgentRunAnalyticsComponent, 5);
@@ -1225,7 +1254,7 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1225
1254
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineComponent = _t.first);
1226
1255
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analyticsComponent = _t.first);
1227
1256
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.visualizationComponent = _t.first);
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) {
1257
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 57, vars: 33, 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"], ["class", "conversation-pill", "title", "Open conversation in Chat app", 3, "click", 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"], ["title", "Open conversation in Chat app", 1, "conversation-pill", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-external-link-alt", "pill-action"], ["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) {
1229
1258
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "div", 6)(5, "div", 7);
1230
1259
  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);
1231
1260
  i0.ɵɵelementEnd();
@@ -1237,49 +1266,49 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1237
1266
  i0.ɵɵelementStart(14, "span", 14);
1238
1267
  i0.ɵɵtext(15);
1239
1268
  i0.ɵɵelementEnd();
1240
- i0.ɵɵtemplate(16, AIAgentRunFormComponentExtended_span_16_Template, 4, 0, "span", 15);
1269
+ i0.ɵɵtemplate(16, AIAgentRunFormComponentExtended_span_16_Template, 4, 0, "span", 15)(17, AIAgentRunFormComponentExtended_span_17_Template, 5, 0, "span", 16);
1241
1270
  i0.ɵɵelementEnd()()();
1242
- i0.ɵɵelementStart(17, "div", 16)(18, "div", 17);
1243
- i0.ɵɵelement(19, "i", 18);
1244
- i0.ɵɵtext(20);
1271
+ i0.ɵɵelementStart(18, "div", 17)(19, "div", 18);
1272
+ i0.ɵɵelement(20, "i", 19);
1273
+ i0.ɵɵtext(21);
1245
1274
  i0.ɵɵelementEnd();
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);
1275
+ i0.ɵɵelementStart(22, "div", 20)(23, "button", 21);
1276
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_23_listener() { return ctx.refreshData(); });
1277
+ i0.ɵɵelement(24, "i", 22);
1249
1278
  i0.ɵɵelementEnd()()()();
1250
- i0.ɵɵelementStart(24, "div", 22)(25, "div", 23)(26, "span", 24);
1251
- i0.ɵɵtext(27, "Started");
1279
+ i0.ɵɵelementStart(25, "div", 23)(26, "div", 24)(27, "span", 25);
1280
+ i0.ɵɵtext(28, "Started");
1252
1281
  i0.ɵɵelementEnd();
1253
- i0.ɵɵelementStart(28, "span", 25);
1254
- i0.ɵɵtext(29);
1255
- i0.ɵɵpipe(30, "date");
1282
+ i0.ɵɵelementStart(29, "span", 26);
1283
+ i0.ɵɵtext(30);
1284
+ i0.ɵɵpipe(31, "date");
1256
1285
  i0.ɵɵelementEnd()();
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);
1286
+ i0.ɵɵtemplate(32, AIAgentRunFormComponentExtended_div_32_Template, 6, 4, "div", 27)(33, AIAgentRunFormComponentExtended_div_33_Template, 5, 1, "div", 27)(34, AIAgentRunFormComponentExtended_div_34_Template, 5, 5, "div", 27)(35, AIAgentRunFormComponentExtended_div_35_Template, 5, 2, "div", 27)(36, AIAgentRunFormComponentExtended_div_36_Template, 5, 2, "div", 27)(37, AIAgentRunFormComponentExtended_div_37_Template, 5, 1, "div", 27);
1258
1287
  i0.ɵɵelementEnd();
1259
- i0.ɵɵtemplate(37, AIAgentRunFormComponentExtended_div_37_Template, 9, 1, "div", 27);
1288
+ i0.ɵɵtemplate(38, AIAgentRunFormComponentExtended_div_38_Template, 9, 1, "div", 28);
1260
1289
  i0.ɵɵelementEnd();
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 ");
1290
+ i0.ɵɵelementStart(39, "div", 29)(40, "button", 30);
1291
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_40_listener() { return ctx.changeTab("timeline"); });
1292
+ i0.ɵɵelement(41, "i", 31);
1293
+ i0.ɵɵtext(42, " Timeline ");
1265
1294
  i0.ɵɵelementEnd();
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 ");
1295
+ i0.ɵɵelementStart(43, "button", 30);
1296
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_43_listener() { return ctx.changeTab("visualization"); });
1297
+ i0.ɵɵelement(44, "i", 32);
1298
+ i0.ɵɵtext(45, " Visualization ");
1270
1299
  i0.ɵɵelementEnd();
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 ");
1300
+ i0.ɵɵelementStart(46, "button", 30);
1301
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_46_listener() { return ctx.changeTab("analytics"); });
1302
+ i0.ɵɵelement(47, "i", 33);
1303
+ i0.ɵɵtext(48, " Analytics ");
1275
1304
  i0.ɵɵelementEnd();
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 ");
1305
+ i0.ɵɵelementStart(49, "button", 30);
1306
+ i0.ɵɵlistener("click", function AIAgentRunFormComponentExtended_Template_button_click_49_listener() { return ctx.changeTab("details"); });
1307
+ i0.ɵɵelement(50, "i", 34);
1308
+ i0.ɵɵtext(51, " Details ");
1280
1309
  i0.ɵɵelementEnd()();
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);
1310
+ i0.ɵɵelementStart(52, "div", 35);
1311
+ i0.ɵɵtemplate(53, AIAgentRunFormComponentExtended_div_53_Template, 6, 9, "div", 36)(54, AIAgentRunFormComponentExtended_div_54_Template, 2, 1, "div", 36)(55, AIAgentRunFormComponentExtended_div_55_Template, 2, 1, "div", 36)(56, AIAgentRunFormComponentExtended_div_56_Template, 15, 7, "div", 37);
1283
1312
  i0.ɵɵelementEnd()()();
1284
1313
  } if (rf & 2) {
1285
1314
  i0.ɵɵadvance(6);
@@ -1294,6 +1323,8 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1294
1323
  i0.ɵɵtextInterpolate(ctx.record.ID);
1295
1324
  i0.ɵɵadvance();
1296
1325
  i0.ɵɵproperty("ngIf", ctx.record.ParentRunID);
1326
+ i0.ɵɵadvance();
1327
+ i0.ɵɵproperty("ngIf", ctx.record.ConversationID);
1297
1328
  i0.ɵɵadvance(2);
1298
1329
  i0.ɵɵattribute("data-status", ctx.record.Status);
1299
1330
  i0.ɵɵadvance();
@@ -1301,7 +1332,7 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1301
1332
  i0.ɵɵadvance();
1302
1333
  i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
1303
1334
  i0.ɵɵadvance(9);
1304
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(30, 29, ctx.record.StartedAt, "medium"));
1335
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(31, 30, ctx.record.StartedAt, "medium"));
1305
1336
  i0.ɵɵadvance(2);
1306
1337
  i0.ɵɵproperty("ngIf", ctx.record.CompletedAt);
1307
1338
  i0.ɵɵadvance();
@@ -1332,7 +1363,7 @@ let AIAgentRunFormComponentExtended = class AIAgentRunFormComponentExtended exte
1332
1363
  i0.ɵɵproperty("ngIf", ctx.activeTab === "analytics");
1333
1364
  i0.ɵɵadvance();
1334
1365
  i0.ɵɵproperty("ngIf", ctx.activeTab === "details");
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}"] }); }
1366
+ } }, dependencies: [i5.NgClass, i5.NgIf, i6.NgControlStatus, i6.NgModel, i7.PanelBarComponent, i7.PanelBarItemComponent, i7.PanelBarContentDirective, i7.SplitterComponent, i7.SplitterPaneComponent, i8.CodeEditorComponent, i9.DeepDiffComponent, i10.AIAgentRunTimelineComponent, i11.AIAgentRunAnalyticsComponent, i12.AIAgentRunVisualizationComponent, i13.AIAgentRunStepDetailComponent, i5.DecimalPipe, i5.DatePipe], styles: [".ai-agent-run-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form[_ngcontent-%COMP%] > .record-form[_ngcontent-%COMP%], \n.ai-agent-run-form[_ngcontent-%COMP%] > .record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: 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 flex-shrink: 0;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: 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\n\n.conversation-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.08), rgba(171, 71, 188, 0.08));\n border: 1px solid rgba(156, 39, 176, 0.2);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: #9c27b0;\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.15), rgba(171, 71, 188, 0.15));\n border-color: rgba(156, 39, 176, 0.4);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(156, 39, 176, 0.15);\n}\n\n.conversation-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill[_ngcontent-%COMP%] .pill-action[_ngcontent-%COMP%] {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill[_ngcontent-%COMP%]:hover .pill-action[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"][_ngcontent-%COMP%] {\n background: #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 flex-shrink: 0;\n}\n\n.tab[_ngcontent-%COMP%] {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #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 flex: 1;\n min-height: 0;\n overflow: auto;\n background: white;\n}\n\n.tab-content[_ngcontent-%COMP%] {\n height: 100%;\n min-height: 0;\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}"] }); }
1336
1367
  };
1337
1368
  AIAgentRunFormComponentExtended = __decorate([
1338
1369
  RegisterClass(BaseFormComponent, 'MJ: AI Agent Runs')
@@ -1340,8 +1371,8 @@ AIAgentRunFormComponentExtended = __decorate([
1340
1371
  export { AIAgentRunFormComponentExtended };
1341
1372
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAgentRunFormComponentExtended, [{
1342
1373
  type: Component,
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}"] }]
1344
- }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.AIAgentRunCostService }], { timelineComponent: [{
1374
+ 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 <!-- Conversation Link Pill -->\n <span class=\"conversation-pill\" *ngIf=\"record.ConversationID\" (click)=\"navigateToConversation()\" title=\"Open conversation in Chat app\">\n <i class=\"fas fa-comments\"></i>\n <span>Conversation</span>\n <i class=\"fas fa-external-link-alt pill-action\"></i>\n </span>\n </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 display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.record-form-container.ai-agent-run-form > .record-form,\n.ai-agent-run-form > .record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Header Styles */\n.header {\n background: 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 flex-shrink: 0;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: 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/* Conversation Link Pill */\n.conversation-pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.08), rgba(171, 71, 188, 0.08));\n border: 1px solid rgba(156, 39, 176, 0.2);\n border-radius: 16px;\n font-size: 12px;\n font-weight: 500;\n color: #9c27b0;\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.conversation-pill:hover {\n background: linear-gradient(135deg, rgba(156, 39, 176, 0.15), rgba(171, 71, 188, 0.15));\n border-color: rgba(156, 39, 176, 0.4);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(156, 39, 176, 0.15);\n}\n\n.conversation-pill i:first-child {\n font-size: 11px;\n opacity: 0.9;\n}\n\n.conversation-pill .pill-action {\n font-size: 9px;\n opacity: 0.6;\n transition: opacity 0.2s ease;\n}\n\n.conversation-pill:hover .pill-action {\n opacity: 1;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.status-badge[data-status=\"Running\"] {\n background: #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 flex-shrink: 0;\n}\n\n.tab {\n padding: 12px 24px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: #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 flex: 1;\n min-height: 0;\n overflow: auto;\n background: white;\n}\n\n.tab-content {\n height: 100%;\n min-height: 0;\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}"] }]
1375
+ }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.AIAgentRunCostService }, { type: i1.NavigationService }, { type: i4.ApplicationManager }], { timelineComponent: [{
1345
1376
  type: ViewChild,
1346
1377
  args: [AIAgentRunTimelineComponent]
1347
1378
  }], analyticsComponent: [{
@@ -1351,7 +1382,7 @@ export { AIAgentRunFormComponentExtended };
1351
1382
  type: ViewChild,
1352
1383
  args: [AIAgentRunVisualizationComponent]
1353
1384
  }] }); })();
1354
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunFormComponentExtended, { className: "AIAgentRunFormComponentExtended", filePath: "src/lib/custom/ai-agent-run/ai-agent-run.component.ts", lineNumber: 23 }); })();
1385
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAgentRunFormComponentExtended, { className: "AIAgentRunFormComponentExtended", filePath: "src/lib/custom/ai-agent-run/ai-agent-run.component.ts", lineNumber: 24 }); })();
1355
1386
  // Loader function for AIAgentRunFormComponent
1356
1387
  export function LoadAIAgentRunFormComponent() {
1357
1388
  // This function is called to ensure the form is loaded