@memberjunction/ng-ai-test-harness 2.55.0 → 2.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/agent-execution-monitor.component.d.ts +9 -0
- package/dist/lib/agent-execution-monitor.component.d.ts.map +1 -1
- package/dist/lib/agent-execution-monitor.component.js +68 -10
- package/dist/lib/agent-execution-monitor.component.js.map +1 -1
- package/dist/lib/agent-execution-node.component.d.ts +1 -0
- package/dist/lib/agent-execution-node.component.d.ts.map +1 -1
- package/dist/lib/agent-execution-node.component.js +88 -39
- package/dist/lib/agent-execution-node.component.js.map +1 -1
- package/dist/lib/ai-test-harness-dialog.service.d.ts +7 -14
- package/dist/lib/ai-test-harness-dialog.service.d.ts.map +1 -1
- package/dist/lib/ai-test-harness-dialog.service.js +21 -95
- package/dist/lib/ai-test-harness-dialog.service.js.map +1 -1
- package/dist/lib/ai-test-harness-window.component.d.ts +37 -0
- package/dist/lib/ai-test-harness-window.component.d.ts.map +1 -0
- package/dist/lib/ai-test-harness-window.component.js +171 -0
- package/dist/lib/ai-test-harness-window.component.js.map +1 -0
- package/dist/lib/ai-test-harness.component.d.ts +26 -1
- package/dist/lib/ai-test-harness.component.d.ts.map +1 -1
- package/dist/lib/ai-test-harness.component.js +299 -219
- package/dist/lib/ai-test-harness.component.js.map +1 -1
- package/dist/lib/test-harness-custom-window.component.d.ts +78 -0
- package/dist/lib/test-harness-custom-window.component.d.ts.map +1 -0
- package/dist/lib/test-harness-custom-window.component.js +528 -0
- package/dist/lib/test-harness-custom-window.component.js.map +1 -0
- package/dist/lib/test-harness-window-manager.service.d.ts +59 -0
- package/dist/lib/test-harness-window-manager.service.d.ts.map +1 -0
- package/dist/lib/test-harness-window-manager.service.js +163 -0
- package/dist/lib/test-harness-window-manager.service.js.map +1 -0
- package/dist/lib/test-harness-window.service.d.ts +73 -0
- package/dist/lib/test-harness-window.service.d.ts.map +1 -0
- package/dist/lib/test-harness-window.service.js +164 -0
- package/dist/lib/test-harness-window.service.js.map +1 -0
- package/dist/lib/window-dock.service.d.ts +32 -0
- package/dist/lib/window-dock.service.d.ts.map +1 -0
- package/dist/lib/window-dock.service.js +125 -0
- package/dist/lib/window-dock.service.js.map +1 -0
- package/dist/module.d.ts +19 -17
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +23 -4
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +6 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +6 -1
- package/dist/public-api.js.map +1 -1
- package/package.json +8 -8
- package/dist/lib/test-harness-dialog.service.d.ts +0 -151
- package/dist/lib/test-harness-dialog.service.d.ts.map +0 -1
- package/dist/lib/test-harness-dialog.service.js +0 -234
- package/dist/lib/test-harness-dialog.service.js.map +0 -1
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
const _forTrack0 = ($index, $item) => $item.id;
|
|
5
5
|
function ExecutionNodeComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
6
6
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
7
|
-
i0.ɵɵelementStart(0, "i",
|
|
7
|
+
i0.ɵɵelementStart(0, "i", 17);
|
|
8
8
|
i0.ɵɵlistener("click", function ExecutionNodeComponent_Conditional_2_Template_i_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onToggleNode($event)); });
|
|
9
9
|
i0.ɵɵelementEnd();
|
|
10
10
|
} if (rf & 2) {
|
|
@@ -32,20 +32,50 @@ function ExecutionNodeComponent_Case_10_Template(rf, ctx) { if (rf & 1) {
|
|
|
32
32
|
function ExecutionNodeComponent_Case_11_Template(rf, ctx) { if (rf & 1) {
|
|
33
33
|
i0.ɵɵelement(0, "i", 11);
|
|
34
34
|
} }
|
|
35
|
+
function ExecutionNodeComponent_Case_12_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵelement(0, "i");
|
|
37
|
+
} if (rf & 2) {
|
|
38
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
39
|
+
i0.ɵɵclassMap(ctx_r1.node.actionIconClass);
|
|
40
|
+
} }
|
|
41
|
+
function ExecutionNodeComponent_Case_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelement(0, "i", 19);
|
|
43
|
+
} }
|
|
35
44
|
function ExecutionNodeComponent_Case_12_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
-
i0.ɵɵ
|
|
45
|
+
i0.ɵɵtemplate(0, ExecutionNodeComponent_Case_12_Conditional_0_Template, 1, 2, "i", 18)(1, ExecutionNodeComponent_Case_12_Conditional_1_Template, 1, 0, "i", 19);
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
48
|
+
i0.ɵɵconditional(ctx_r1.node.actionIconClass ? 0 : 1);
|
|
49
|
+
} }
|
|
50
|
+
function ExecutionNodeComponent_Case_13_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelement(0, "img", 20);
|
|
52
|
+
} if (rf & 2) {
|
|
53
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
54
|
+
i0.ɵɵproperty("src", ctx_r1.node.agentLogoURL, i0.ɵɵsanitizeUrl)("alt", ctx_r1.node.agentName || "Agent");
|
|
55
|
+
} }
|
|
56
|
+
function ExecutionNodeComponent_Case_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
57
|
+
i0.ɵɵelement(0, "i");
|
|
58
|
+
} if (rf & 2) {
|
|
59
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
60
|
+
i0.ɵɵclassMap(ctx_r1.node.agentIconClass);
|
|
61
|
+
} }
|
|
62
|
+
function ExecutionNodeComponent_Case_13_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelement(0, "i", 21);
|
|
37
64
|
} }
|
|
38
65
|
function ExecutionNodeComponent_Case_13_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
-
i0.ɵɵ
|
|
66
|
+
i0.ɵɵtemplate(0, ExecutionNodeComponent_Case_13_Conditional_0_Template, 1, 2, "img", 20)(1, ExecutionNodeComponent_Case_13_Conditional_1_Template, 1, 2, "i", 18)(2, ExecutionNodeComponent_Case_13_Conditional_2_Template, 1, 0, "i", 21);
|
|
67
|
+
} if (rf & 2) {
|
|
68
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
69
|
+
i0.ɵɵconditional(ctx_r1.node.agentLogoURL ? 0 : ctx_r1.node.agentIconClass ? 1 : 2);
|
|
40
70
|
} }
|
|
41
71
|
function ExecutionNodeComponent_Case_14_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
-
i0.ɵɵelement(0, "i",
|
|
72
|
+
i0.ɵɵelement(0, "i", 12);
|
|
43
73
|
} }
|
|
44
74
|
function ExecutionNodeComponent_Case_15_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
-
i0.ɵɵelement(0, "i",
|
|
75
|
+
i0.ɵɵelement(0, "i", 13);
|
|
46
76
|
} }
|
|
47
77
|
function ExecutionNodeComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
-
i0.ɵɵelementStart(0, "span",
|
|
78
|
+
i0.ɵɵelementStart(0, "span", 15);
|
|
49
79
|
i0.ɵɵtext(1);
|
|
50
80
|
i0.ɵɵelementEnd();
|
|
51
81
|
} if (rf & 2) {
|
|
@@ -54,7 +84,7 @@ function ExecutionNodeComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
|
54
84
|
i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.node.duration));
|
|
55
85
|
} }
|
|
56
86
|
function ExecutionNodeComponent_Conditional_19_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
57
|
-
i0.ɵɵelementStart(0, "span",
|
|
87
|
+
i0.ɵɵelementStart(0, "span", 22);
|
|
58
88
|
i0.ɵɵtext(1);
|
|
59
89
|
i0.ɵɵelementEnd();
|
|
60
90
|
} if (rf & 2) {
|
|
@@ -63,7 +93,7 @@ function ExecutionNodeComponent_Conditional_19_Conditional_1_Template(rf, ctx) {
|
|
|
63
93
|
i0.ɵɵtextInterpolate1("", ctx_r1.node.tokensUsed, " tokens");
|
|
64
94
|
} }
|
|
65
95
|
function ExecutionNodeComponent_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
-
i0.ɵɵelementStart(0, "span",
|
|
96
|
+
i0.ɵɵelementStart(0, "span", 23);
|
|
67
97
|
i0.ɵɵtext(1);
|
|
68
98
|
i0.ɵɵelementEnd();
|
|
69
99
|
} if (rf & 2) {
|
|
@@ -72,8 +102,8 @@ function ExecutionNodeComponent_Conditional_19_Conditional_2_Template(rf, ctx) {
|
|
|
72
102
|
i0.ɵɵtextInterpolate1("$", ctx_r1.node.cost.toFixed(4), "");
|
|
73
103
|
} }
|
|
74
104
|
function ExecutionNodeComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
75
|
-
i0.ɵɵelementStart(0, "span",
|
|
76
|
-
i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_19_Conditional_1_Template, 2, 1, "span",
|
|
105
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
106
|
+
i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_19_Conditional_1_Template, 2, 1, "span", 22)(2, ExecutionNodeComponent_Conditional_19_Conditional_2_Template, 2, 1, "span", 23);
|
|
77
107
|
i0.ɵɵelementEnd();
|
|
78
108
|
} if (rf & 2) {
|
|
79
109
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -83,7 +113,7 @@ function ExecutionNodeComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
|
83
113
|
i0.ɵɵconditional(ctx_r1.node.cost ? 2 : -1);
|
|
84
114
|
} }
|
|
85
115
|
function ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
-
i0.ɵɵelementStart(0, "div",
|
|
116
|
+
i0.ɵɵelementStart(0, "div", 26);
|
|
87
117
|
i0.ɵɵtext(1);
|
|
88
118
|
i0.ɵɵelementEnd();
|
|
89
119
|
} if (rf & 2) {
|
|
@@ -92,14 +122,14 @@ function ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_1_Templ
|
|
|
92
122
|
i0.ɵɵtextInterpolate(ctx_r1.node.name);
|
|
93
123
|
} }
|
|
94
124
|
function ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
-
i0.ɵɵelement(0, "div",
|
|
125
|
+
i0.ɵɵelement(0, "div", 27);
|
|
96
126
|
} if (rf & 2) {
|
|
97
127
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
98
128
|
i0.ɵɵproperty("innerHTML", ctx_r1.formatMarkdown(ctx_r1.node.detailsMarkdown), i0.ɵɵsanitizeHtml);
|
|
99
129
|
} }
|
|
100
130
|
function ExecutionNodeComponent_Conditional_20_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
-
i0.ɵɵelementStart(0, "div",
|
|
102
|
-
i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_1_Template, 2, 1, "div",
|
|
131
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
132
|
+
i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_1_Template, 2, 1, "div", 26)(2, ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_2_Template, 1, 1, "div", 27);
|
|
103
133
|
i0.ɵɵelementEnd();
|
|
104
134
|
} if (rf & 2) {
|
|
105
135
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -109,11 +139,11 @@ function ExecutionNodeComponent_Conditional_20_Conditional_0_Template(rf, ctx) {
|
|
|
109
139
|
i0.ɵɵconditional(ctx_r1.node.detailsMarkdown ? 2 : -1);
|
|
110
140
|
} }
|
|
111
141
|
function ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
-
i0.ɵɵelementStart(0, "div",
|
|
113
|
-
i0.ɵɵelement(2, "i",
|
|
142
|
+
i0.ɵɵelementStart(0, "div", 28)(1, "div", 30);
|
|
143
|
+
i0.ɵɵelement(2, "i", 31);
|
|
114
144
|
i0.ɵɵtext(3, " Error ");
|
|
115
145
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelementStart(4, "div",
|
|
146
|
+
i0.ɵɵelementStart(4, "div", 32);
|
|
117
147
|
i0.ɵɵtext(5);
|
|
118
148
|
i0.ɵɵelementEnd()();
|
|
119
149
|
} if (rf & 2) {
|
|
@@ -122,11 +152,11 @@ function ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_1_Templ
|
|
|
122
152
|
i0.ɵɵtextInterpolate(ctx_r1.node.error);
|
|
123
153
|
} }
|
|
124
154
|
function ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
-
i0.ɵɵelementStart(0, "div",
|
|
126
|
-
i0.ɵɵelement(2, "i",
|
|
155
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "div", 30);
|
|
156
|
+
i0.ɵɵelement(2, "i", 33);
|
|
127
157
|
i0.ɵɵtext(3, " Input ");
|
|
128
158
|
i0.ɵɵelementEnd();
|
|
129
|
-
i0.ɵɵelementStart(4, "div",
|
|
159
|
+
i0.ɵɵelementStart(4, "div", 32);
|
|
130
160
|
i0.ɵɵtext(5);
|
|
131
161
|
i0.ɵɵelementEnd()();
|
|
132
162
|
} if (rf & 2) {
|
|
@@ -135,11 +165,11 @@ function ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_2_Templ
|
|
|
135
165
|
i0.ɵɵtextInterpolate(ctx_r1.node.inputPreview);
|
|
136
166
|
} }
|
|
137
167
|
function ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
138
|
-
i0.ɵɵelementStart(0, "div",
|
|
139
|
-
i0.ɵɵelement(2, "i",
|
|
168
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "div", 30);
|
|
169
|
+
i0.ɵɵelement(2, "i", 34);
|
|
140
170
|
i0.ɵɵtext(3, " Output ");
|
|
141
171
|
i0.ɵɵelementEnd();
|
|
142
|
-
i0.ɵɵelementStart(4, "div",
|
|
172
|
+
i0.ɵɵelementStart(4, "div", 32);
|
|
143
173
|
i0.ɵɵtext(5);
|
|
144
174
|
i0.ɵɵelementEnd()();
|
|
145
175
|
} if (rf & 2) {
|
|
@@ -148,8 +178,8 @@ function ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_3_Templ
|
|
|
148
178
|
i0.ɵɵtextInterpolate(ctx_r1.node.outputPreview);
|
|
149
179
|
} }
|
|
150
180
|
function ExecutionNodeComponent_Conditional_20_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
151
|
-
i0.ɵɵelementStart(0, "div",
|
|
152
|
-
i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_1_Template, 6, 1, "div",
|
|
181
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
182
|
+
i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_1_Template, 6, 1, "div", 28)(2, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_2_Template, 6, 1, "div", 29)(3, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_3_Template, 6, 1, "div", 29);
|
|
153
183
|
i0.ɵɵelementEnd();
|
|
154
184
|
} if (rf & 2) {
|
|
155
185
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -161,7 +191,7 @@ function ExecutionNodeComponent_Conditional_20_Conditional_1_Template(rf, ctx) {
|
|
|
161
191
|
i0.ɵɵconditional(ctx_r1.node.outputPreview ? 3 : -1);
|
|
162
192
|
} }
|
|
163
193
|
function ExecutionNodeComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
-
i0.ɵɵtemplate(0, ExecutionNodeComponent_Conditional_20_Conditional_0_Template, 3, 2, "div",
|
|
194
|
+
i0.ɵɵtemplate(0, ExecutionNodeComponent_Conditional_20_Conditional_0_Template, 3, 2, "div", 24)(1, ExecutionNodeComponent_Conditional_20_Conditional_1_Template, 4, 3, "div", 25);
|
|
165
195
|
} if (rf & 2) {
|
|
166
196
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
167
197
|
i0.ɵɵconditional(ctx_r1.node.detailsMarkdown || ctx_r1.isNameTruncated() ? 0 : -1);
|
|
@@ -170,7 +200,7 @@ function ExecutionNodeComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
|
170
200
|
} }
|
|
171
201
|
function ExecutionNodeComponent_Conditional_21_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
172
202
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
173
|
-
i0.ɵɵelementStart(0, "mj-execution-node",
|
|
203
|
+
i0.ɵɵelementStart(0, "mj-execution-node", 36);
|
|
174
204
|
i0.ɵɵlistener("toggleNode", function ExecutionNodeComponent_Conditional_21_For_1_Template_mj_execution_node_toggleNode_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleNode.emit($event)); })("userInteracted", function ExecutionNodeComponent_Conditional_21_For_1_Template_mj_execution_node_userInteracted_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.userInteracted.emit()); });
|
|
175
205
|
i0.ɵɵelementEnd();
|
|
176
206
|
} if (rf & 2) {
|
|
@@ -178,7 +208,7 @@ function ExecutionNodeComponent_Conditional_21_For_1_Template(rf, ctx) { if (rf
|
|
|
178
208
|
i0.ɵɵproperty("node", child_r4);
|
|
179
209
|
} }
|
|
180
210
|
function ExecutionNodeComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
181
|
-
i0.ɵɵrepeaterCreate(0, ExecutionNodeComponent_Conditional_21_For_1_Template, 1, 1, "mj-execution-node",
|
|
211
|
+
i0.ɵɵrepeaterCreate(0, ExecutionNodeComponent_Conditional_21_For_1_Template, 1, 1, "mj-execution-node", 35, _forTrack0);
|
|
182
212
|
} if (rf & 2) {
|
|
183
213
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
184
214
|
i0.ɵɵrepeater(ctx_r1.node.children);
|
|
@@ -234,6 +264,15 @@ export class ExecutionNodeComponent {
|
|
|
234
264
|
const seconds = Math.floor((ms % 60000) / 1000);
|
|
235
265
|
return `${minutes}m ${seconds}s`;
|
|
236
266
|
}
|
|
267
|
+
getNodeTitle() {
|
|
268
|
+
if (this.node.type === 'sub-agent' && this.node.agentName) {
|
|
269
|
+
return `Sub-agent: ${this.node.agentName}`;
|
|
270
|
+
}
|
|
271
|
+
if (this.node.type === 'action' && this.node.actionName) {
|
|
272
|
+
return `Action: ${this.node.actionName}`;
|
|
273
|
+
}
|
|
274
|
+
return this.node.type;
|
|
275
|
+
}
|
|
237
276
|
formatMarkdown(markdown) {
|
|
238
277
|
// Basic markdown formatting
|
|
239
278
|
let html = markdown;
|
|
@@ -263,7 +302,7 @@ export class ExecutionNodeComponent {
|
|
|
263
302
|
return html;
|
|
264
303
|
}
|
|
265
304
|
static { this.ɵfac = function ExecutionNodeComponent_Factory(t) { return new (t || ExecutionNodeComponent)(); }; }
|
|
266
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExecutionNodeComponent, selectors: [["mj-execution-node"]], inputs: { node: "node" }, outputs: { toggleNode: "toggleNode", userInteracted: "userInteracted" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 22, vars: 15, consts: [[1, "tree-node"], [1, "node-header", 3, "dblclick"], [1, "expand-icon", "fa-solid", 3, "fa-chevron-down", "fa-chevron-right"], [1, "expand-spacer"], [1, "status-icon"], [1, "fa-regular", "fa-circle"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-times-circle"], [1, "type-icon", 3, "title"], [1, "fa-solid", "fa-shield-halved"], [1, "fa-solid", "fa-brain"], [1, "fa-solid", "fa-
|
|
305
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExecutionNodeComponent, selectors: [["mj-execution-node"]], inputs: { node: "node" }, outputs: { toggleNode: "toggleNode", userInteracted: "userInteracted" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 22, vars: 15, consts: [[1, "tree-node"], [1, "node-header", 3, "dblclick"], [1, "expand-icon", "fa-solid", 3, "fa-chevron-down", "fa-chevron-right"], [1, "expand-spacer"], [1, "status-icon"], [1, "fa-regular", "fa-circle"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-times-circle"], [1, "type-icon", 3, "title"], [1, "fa-solid", "fa-shield-halved"], [1, "fa-solid", "fa-brain"], [1, "fa-solid", "fa-code-branch"], [1, "fa-solid", "fa-comments"], [1, "node-name"], [1, "node-duration"], [1, "node-metrics"], [1, "expand-icon", "fa-solid", 3, "click"], [3, "class"], [1, "fa-solid", "fa-bolt"], [1, "agent-logo-icon", 3, "src", "alt"], [1, "fa-solid", "fa-sitemap"], [1, "tokens"], [1, "cost"], [1, "markdown-details"], [1, "node-details"], [1, "full-name"], [1, "detail-content", "markdown", 3, "innerHTML"], [1, "detail-section", "error"], [1, "detail-section"], [1, "detail-label"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "detail-content"], [1, "fa-solid", "fa-sign-in-alt"], [1, "fa-solid", "fa-sign-out-alt"], [3, "node"], [3, "toggleNode", "userInteracted", "node"]], template: function ExecutionNodeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
267
306
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
268
307
|
i0.ɵɵlistener("dblclick", function ExecutionNodeComponent_Template_div_dblclick_1_listener() { return ctx.onDoubleClick(); });
|
|
269
308
|
i0.ɵɵtemplate(2, ExecutionNodeComponent_Conditional_2_Template, 1, 4, "i", 2)(3, ExecutionNodeComponent_Conditional_3_Template, 1, 0, "span", 3);
|
|
@@ -271,12 +310,12 @@ export class ExecutionNodeComponent {
|
|
|
271
310
|
i0.ɵɵtemplate(5, ExecutionNodeComponent_Case_5_Template, 1, 0, "i", 5)(6, ExecutionNodeComponent_Case_6_Template, 1, 0, "i", 6)(7, ExecutionNodeComponent_Case_7_Template, 1, 0, "i", 7)(8, ExecutionNodeComponent_Case_8_Template, 1, 0, "i", 8);
|
|
272
311
|
i0.ɵɵelementEnd();
|
|
273
312
|
i0.ɵɵelementStart(9, "span", 9);
|
|
274
|
-
i0.ɵɵtemplate(10, ExecutionNodeComponent_Case_10_Template, 1, 0, "i", 10)(11, ExecutionNodeComponent_Case_11_Template, 1, 0, "i", 11)(12, ExecutionNodeComponent_Case_12_Template,
|
|
313
|
+
i0.ɵɵtemplate(10, ExecutionNodeComponent_Case_10_Template, 1, 0, "i", 10)(11, ExecutionNodeComponent_Case_11_Template, 1, 0, "i", 11)(12, ExecutionNodeComponent_Case_12_Template, 2, 1)(13, ExecutionNodeComponent_Case_13_Template, 3, 1)(14, ExecutionNodeComponent_Case_14_Template, 1, 0, "i", 12)(15, ExecutionNodeComponent_Case_15_Template, 1, 0, "i", 13);
|
|
275
314
|
i0.ɵɵelementEnd();
|
|
276
|
-
i0.ɵɵelementStart(16, "span",
|
|
315
|
+
i0.ɵɵelementStart(16, "span", 14);
|
|
277
316
|
i0.ɵɵtext(17);
|
|
278
317
|
i0.ɵɵelementEnd();
|
|
279
|
-
i0.ɵɵtemplate(18, ExecutionNodeComponent_Conditional_18_Template, 2, 1, "span",
|
|
318
|
+
i0.ɵɵtemplate(18, ExecutionNodeComponent_Conditional_18_Template, 2, 1, "span", 15)(19, ExecutionNodeComponent_Conditional_19_Template, 3, 2, "span", 16);
|
|
280
319
|
i0.ɵɵelementEnd();
|
|
281
320
|
i0.ɵɵtemplate(20, ExecutionNodeComponent_Conditional_20_Template, 2, 2)(21, ExecutionNodeComponent_Conditional_21_Template, 2, 0);
|
|
282
321
|
i0.ɵɵelementEnd();
|
|
@@ -292,7 +331,7 @@ export class ExecutionNodeComponent {
|
|
|
292
331
|
i0.ɵɵadvance();
|
|
293
332
|
i0.ɵɵconditional((tmp_4_0 = ctx.node.status) === "pending" ? 5 : tmp_4_0 === "running" ? 6 : tmp_4_0 === "completed" ? 7 : tmp_4_0 === "failed" ? 8 : -1);
|
|
294
333
|
i0.ɵɵadvance(4);
|
|
295
|
-
i0.ɵɵproperty("title", ctx.
|
|
334
|
+
i0.ɵɵproperty("title", ctx.getNodeTitle());
|
|
296
335
|
i0.ɵɵadvance();
|
|
297
336
|
i0.ɵɵconditional((tmp_6_0 = ctx.node.type) === "validation" ? 10 : tmp_6_0 === "prompt" ? 11 : tmp_6_0 === "action" ? 12 : tmp_6_0 === "sub-agent" ? 13 : tmp_6_0 === "decision" ? 14 : tmp_6_0 === "chat" ? 15 : -1);
|
|
298
337
|
i0.ɵɵadvance(7);
|
|
@@ -305,7 +344,7 @@ export class ExecutionNodeComponent {
|
|
|
305
344
|
i0.ɵɵconditional(ctx.node.expanded ? 20 : -1);
|
|
306
345
|
i0.ɵɵadvance();
|
|
307
346
|
i0.ɵɵconditional(ctx.node.expanded && ctx.node.children ? 21 : -1);
|
|
308
|
-
} }, dependencies: [ExecutionNodeComponent, CommonModule], styles: ["[_nghost-%COMP%] {\n display: block;\n width: 100%;\n }\n \n .tree-node[_ngcontent-%COMP%] {\n margin-bottom: 4px;\n }\n \n .node-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n transition: all 0.2s ease;\n user-select: none;\n }\n \n .node-header[_ngcontent-%COMP%]:hover {\n background: #e8f0fe;\n border-color: #2196f3;\n }\n \n .expand-icon[_ngcontent-%COMP%] {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: #666;\n font-size: 10px;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.2s ease;\n }\n \n .expand-icon[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #333;\n }\n \n .expand-spacer[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n }\n \n .status-icon[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n font-size: 14px;\n }\n \n .status-pending[_ngcontent-%COMP%] { color: #999; }\n .status-running[_ngcontent-%COMP%] { color: #2196f3; }\n .status-completed[_ngcontent-%COMP%] { color: #4caf50; }\n .status-failed[_ngcontent-%COMP%] { color: #f44336; }\n \n .type-icon[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n font-size: 14px;\n color: #666;\n }\n \n .node-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: #1a1a1a;\n }\n \n \n .node-duration[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n font-weight: 500;\n }\n \n .node-metrics[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n font-size: 12px;\n }\n \n .tokens[_ngcontent-%COMP%] {\n color: #666;\n }\n \n .cost[_ngcontent-%COMP%] {\n color: #2196f3;\n font-weight: 500;\n }\n \n .node-details[_ngcontent-%COMP%] {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f5f5f5;\n border-radius: 4px;\n font-size: 12px;\n }\n \n .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n \n .detail-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n }\n \n .detail-section.error[_ngcontent-%COMP%] {\n color: #d32f2f;\n }\n \n .detail-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n margin-bottom: 4px;\n color: #555;\n }\n \n .detail-content[_ngcontent-%COMP%] {\n white-space: pre-wrap;\n word-break: break-word;\n color: #333;\n line-height: 1.4;\n }\n \n .markdown-details[_ngcontent-%COMP%] {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f9f9f9;\n border-left: 3px solid #2196f3;\n border-radius: 0 4px 4px 0;\n font-size: 13px;\n }\n \n .markdown[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .markdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 8px 0 4px 0;\n color: #1a1a1a;\n }\n \n .markdown[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n \n .markdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n \n .markdown[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] {\n margin: 4px 0;\n padding-left: 20px;\n }\n \n .markdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin: 2px 0;\n }\n \n .markdown[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: #e8e8e8;\n padding: 1px 4px;\n border-radius: 3px;\n font-size: 12px;\n }\n \n .markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n background: #f5f5f5;\n padding: 8px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 4px 0;\n }\n \n .markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: none;\n padding: 0;\n }\n \n .markdown[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #1a1a1a;\n }\n \n .markdown[_ngcontent-%COMP%] em[_ngcontent-%COMP%] {\n font-style: italic;\n color: #555;\n }\n \n .full-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #1a1a1a;\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid #e0e0e0;\n word-wrap: break-word;\n }"] }); }
|
|
347
|
+
} }, dependencies: [ExecutionNodeComponent, CommonModule], styles: ["[_nghost-%COMP%] {\n display: block;\n width: 100%;\n }\n \n .tree-node[_ngcontent-%COMP%] {\n margin-bottom: 4px;\n }\n \n .node-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n transition: all 0.2s ease;\n user-select: none;\n }\n \n .node-header[_ngcontent-%COMP%]:hover {\n background: #e8f0fe;\n border-color: #2196f3;\n }\n \n .expand-icon[_ngcontent-%COMP%] {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: #666;\n font-size: 10px;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.2s ease;\n }\n \n .expand-icon[_ngcontent-%COMP%]:hover {\n background: #e0e0e0;\n color: #333;\n }\n \n .expand-spacer[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n }\n \n .status-icon[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n font-size: 14px;\n }\n \n .status-pending[_ngcontent-%COMP%] { color: #999; }\n .status-running[_ngcontent-%COMP%] { color: #2196f3; }\n .status-completed[_ngcontent-%COMP%] { color: #4caf50; }\n .status-failed[_ngcontent-%COMP%] { color: #f44336; }\n \n .type-icon[_ngcontent-%COMP%] {\n width: 20px;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n color: #666;\n }\n \n .agent-logo-icon[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n object-fit: cover;\n border-radius: 3px;\n }\n \n .node-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: #1a1a1a;\n }\n \n \n .node-duration[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n font-weight: 500;\n }\n \n .node-metrics[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n font-size: 12px;\n }\n \n .tokens[_ngcontent-%COMP%] {\n color: #666;\n }\n \n .cost[_ngcontent-%COMP%] {\n color: #2196f3;\n font-weight: 500;\n }\n \n .node-details[_ngcontent-%COMP%] {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f5f5f5;\n border-radius: 4px;\n font-size: 12px;\n }\n \n .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n \n .detail-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n }\n \n .detail-section.error[_ngcontent-%COMP%] {\n color: #d32f2f;\n }\n \n .detail-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n margin-bottom: 4px;\n color: #555;\n }\n \n .detail-content[_ngcontent-%COMP%] {\n white-space: pre-wrap;\n word-break: break-word;\n color: #333;\n line-height: 1.4;\n }\n \n .markdown-details[_ngcontent-%COMP%] {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f9f9f9;\n border-left: 3px solid #2196f3;\n border-radius: 0 4px 4px 0;\n font-size: 13px;\n }\n \n .markdown[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .markdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 8px 0 4px 0;\n color: #1a1a1a;\n }\n \n .markdown[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n \n .markdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n \n .markdown[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] {\n margin: 4px 0;\n padding-left: 20px;\n }\n \n .markdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin: 2px 0;\n }\n \n .markdown[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: #e8e8e8;\n padding: 1px 4px;\n border-radius: 3px;\n font-size: 12px;\n }\n \n .markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n background: #f5f5f5;\n padding: 8px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 4px 0;\n }\n \n .markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: none;\n padding: 0;\n }\n \n .markdown[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #1a1a1a;\n }\n \n .markdown[_ngcontent-%COMP%] em[_ngcontent-%COMP%] {\n font-style: italic;\n color: #555;\n }\n \n .full-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #1a1a1a;\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid #e0e0e0;\n word-wrap: break-word;\n }"] }); }
|
|
309
348
|
}
|
|
310
349
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExecutionNodeComponent, [{
|
|
311
350
|
type: Component,
|
|
@@ -345,7 +384,7 @@ export class ExecutionNodeComponent {
|
|
|
345
384
|
</span>
|
|
346
385
|
|
|
347
386
|
<!-- Type Icon -->
|
|
348
|
-
<span class="type-icon" [title]="
|
|
387
|
+
<span class="type-icon" [title]="getNodeTitle()">
|
|
349
388
|
@switch (node.type) {
|
|
350
389
|
@case ('validation') {
|
|
351
390
|
<i class="fa-solid fa-shield-halved"></i>
|
|
@@ -354,10 +393,20 @@ export class ExecutionNodeComponent {
|
|
|
354
393
|
<i class="fa-solid fa-brain"></i>
|
|
355
394
|
}
|
|
356
395
|
@case ('action') {
|
|
357
|
-
|
|
396
|
+
@if (node.actionIconClass) {
|
|
397
|
+
<i [class]="node.actionIconClass"></i>
|
|
398
|
+
} @else {
|
|
399
|
+
<i class="fa-solid fa-bolt"></i>
|
|
400
|
+
}
|
|
358
401
|
}
|
|
359
402
|
@case ('sub-agent') {
|
|
360
|
-
|
|
403
|
+
@if (node.agentLogoURL) {
|
|
404
|
+
<img [src]="node.agentLogoURL" [alt]="node.agentName || 'Agent'" class="agent-logo-icon">
|
|
405
|
+
} @else if (node.agentIconClass) {
|
|
406
|
+
<i [class]="node.agentIconClass"></i>
|
|
407
|
+
} @else {
|
|
408
|
+
<i class="fa-solid fa-sitemap"></i>
|
|
409
|
+
}
|
|
361
410
|
}
|
|
362
411
|
@case ('decision') {
|
|
363
412
|
<i class="fa-solid fa-code-branch"></i>
|
|
@@ -446,7 +495,7 @@ export class ExecutionNodeComponent {
|
|
|
446
495
|
}
|
|
447
496
|
}
|
|
448
497
|
</div>
|
|
449
|
-
`, styles: ["\n :host {\n display: block;\n width: 100%;\n }\n \n .tree-node {\n margin-bottom: 4px;\n }\n \n .node-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n transition: all 0.2s ease;\n user-select: none;\n }\n \n .node-header:hover {\n background: #e8f0fe;\n border-color: #2196f3;\n }\n \n .expand-icon {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: #666;\n font-size: 10px;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.2s ease;\n }\n \n .expand-icon:hover {\n background: #e0e0e0;\n color: #333;\n }\n \n .expand-spacer {\n width: 20px;\n text-align: center;\n }\n \n .status-icon {\n width: 20px;\n text-align: center;\n font-size: 14px;\n }\n \n .status-pending { color: #999; }\n .status-running { color: #2196f3; }\n .status-completed { color: #4caf50; }\n .status-failed { color: #f44336; }\n \n .type-icon {\n width: 20px;\n text-align: center;\n font-size: 14px;\n color: #666;\n }\n \n .node-name {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: #1a1a1a;\n }\n \n \n .node-duration {\n font-size: 12px;\n color: #666;\n font-weight: 500;\n }\n \n .node-metrics {\n display: flex;\n gap: 12px;\n font-size: 12px;\n }\n \n .tokens {\n color: #666;\n }\n \n .cost {\n color: #2196f3;\n font-weight: 500;\n }\n \n .node-details {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f5f5f5;\n border-radius: 4px;\n font-size: 12px;\n }\n \n .detail-section {\n margin-bottom: 8px;\n }\n \n .detail-section:last-child {\n margin-bottom: 0;\n }\n \n .detail-section.error {\n color: #d32f2f;\n }\n \n .detail-label {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n margin-bottom: 4px;\n color: #555;\n }\n \n .detail-content {\n white-space: pre-wrap;\n word-break: break-word;\n color: #333;\n line-height: 1.4;\n }\n \n .markdown-details {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f9f9f9;\n border-left: 3px solid #2196f3;\n border-radius: 0 4px 4px 0;\n font-size: 13px;\n }\n \n .markdown h3, .markdown h4 {\n margin: 8px 0 4px 0;\n color: #1a1a1a;\n }\n \n .markdown h3 {\n font-size: 14px;\n }\n \n .markdown h4 {\n font-size: 13px;\n }\n \n .markdown ul {\n margin: 4px 0;\n padding-left: 20px;\n }\n \n .markdown li {\n margin: 2px 0;\n }\n \n .markdown code {\n background: #e8e8e8;\n padding: 1px 4px;\n border-radius: 3px;\n font-size: 12px;\n }\n \n .markdown pre {\n background: #f5f5f5;\n padding: 8px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 4px 0;\n }\n \n .markdown pre code {\n background: none;\n padding: 0;\n }\n \n .markdown strong {\n font-weight: 600;\n color: #1a1a1a;\n }\n \n .markdown em {\n font-style: italic;\n color: #555;\n }\n \n .full-name {\n font-weight: 600;\n color: #1a1a1a;\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid #e0e0e0;\n word-wrap: break-word;\n }\n "] }]
|
|
498
|
+
`, styles: ["\n :host {\n display: block;\n width: 100%;\n }\n \n .tree-node {\n margin-bottom: 4px;\n }\n \n .node-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #f8f9fa;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n transition: all 0.2s ease;\n user-select: none;\n }\n \n .node-header:hover {\n background: #e8f0fe;\n border-color: #2196f3;\n }\n \n .expand-icon {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: #666;\n font-size: 10px;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.2s ease;\n }\n \n .expand-icon:hover {\n background: #e0e0e0;\n color: #333;\n }\n \n .expand-spacer {\n width: 20px;\n text-align: center;\n }\n \n .status-icon {\n width: 20px;\n text-align: center;\n font-size: 14px;\n }\n \n .status-pending { color: #999; }\n .status-running { color: #2196f3; }\n .status-completed { color: #4caf50; }\n .status-failed { color: #f44336; }\n \n .type-icon {\n width: 20px;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n color: #666;\n }\n \n .agent-logo-icon {\n width: 16px;\n height: 16px;\n object-fit: cover;\n border-radius: 3px;\n }\n \n .node-name {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: #1a1a1a;\n }\n \n \n .node-duration {\n font-size: 12px;\n color: #666;\n font-weight: 500;\n }\n \n .node-metrics {\n display: flex;\n gap: 12px;\n font-size: 12px;\n }\n \n .tokens {\n color: #666;\n }\n \n .cost {\n color: #2196f3;\n font-weight: 500;\n }\n \n .node-details {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f5f5f5;\n border-radius: 4px;\n font-size: 12px;\n }\n \n .detail-section {\n margin-bottom: 8px;\n }\n \n .detail-section:last-child {\n margin-bottom: 0;\n }\n \n .detail-section.error {\n color: #d32f2f;\n }\n \n .detail-label {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n margin-bottom: 4px;\n color: #555;\n }\n \n .detail-content {\n white-space: pre-wrap;\n word-break: break-word;\n color: #333;\n line-height: 1.4;\n }\n \n .markdown-details {\n margin: 8px 0 8px 44px;\n padding: 12px;\n background: #f9f9f9;\n border-left: 3px solid #2196f3;\n border-radius: 0 4px 4px 0;\n font-size: 13px;\n }\n \n .markdown h3, .markdown h4 {\n margin: 8px 0 4px 0;\n color: #1a1a1a;\n }\n \n .markdown h3 {\n font-size: 14px;\n }\n \n .markdown h4 {\n font-size: 13px;\n }\n \n .markdown ul {\n margin: 4px 0;\n padding-left: 20px;\n }\n \n .markdown li {\n margin: 2px 0;\n }\n \n .markdown code {\n background: #e8e8e8;\n padding: 1px 4px;\n border-radius: 3px;\n font-size: 12px;\n }\n \n .markdown pre {\n background: #f5f5f5;\n padding: 8px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 4px 0;\n }\n \n .markdown pre code {\n background: none;\n padding: 0;\n }\n \n .markdown strong {\n font-weight: 600;\n color: #1a1a1a;\n }\n \n .markdown em {\n font-style: italic;\n color: #555;\n }\n \n .full-name {\n font-weight: 600;\n color: #1a1a1a;\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid #e0e0e0;\n word-wrap: break-word;\n }\n "] }]
|
|
450
499
|
}], null, { node: [{
|
|
451
500
|
type: Input
|
|
452
501
|
}], toggleNode: [{
|
|
@@ -454,5 +503,5 @@ export class ExecutionNodeComponent {
|
|
|
454
503
|
}], userInteracted: [{
|
|
455
504
|
type: Output
|
|
456
505
|
}] }); })();
|
|
457
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExecutionNodeComponent, { className: "ExecutionNodeComponent", filePath: "lib/agent-execution-node.component.ts", lineNumber:
|
|
506
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExecutionNodeComponent, { className: "ExecutionNodeComponent", filePath: "lib/agent-execution-node.component.ts", lineNumber: 372 }); })();
|
|
458
507
|
//# sourceMappingURL=agent-execution-node.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-execution-node.component.js","sourceRoot":"","sources":["../../src/lib/agent-execution-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;;;;IAgB3B,6BAGkC;IAA/B,2LAAS,2BAAoB,KAAC;IAAC,iBAAI;;;IADnC,AADA,uDAAuC,2CACE;;;IAG5C,0BAAmC;;;IAO3B,uBAAoC;;;IAGpC,uBAA2C;;;IAG3C,uBAAwC;;;IAGxC,uBAAwC;;;IASxC,wBAAyC;;;IAGzC,wBAAiC;;;
|
|
1
|
+
{"version":3,"file":"agent-execution-node.component.js","sourceRoot":"","sources":["../../src/lib/agent-execution-node.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
import { ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import {
|
|
3
|
+
import { TestHarnessWindowManagerService } from './test-harness-window-manager.service';
|
|
4
|
+
import { TestResult } from './test-harness-window.service';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
|
-
export interface TestResult {
|
|
6
|
-
success: boolean;
|
|
7
|
-
result?: any;
|
|
8
|
-
error?: string;
|
|
9
|
-
executionTime?: number;
|
|
10
|
-
tokensUsed?: number;
|
|
11
|
-
cost?: number;
|
|
12
|
-
}
|
|
13
6
|
/**
|
|
14
|
-
* Service for opening AI test harness
|
|
15
|
-
* This service wraps the
|
|
7
|
+
* Service for opening AI test harness windows for agents and prompts.
|
|
8
|
+
* This service wraps the TestHarnessWindowManagerService to provide a simpler API
|
|
16
9
|
* that matches the expected interface in consuming components.
|
|
17
10
|
*/
|
|
18
11
|
export declare class AITestHarnessDialogService {
|
|
19
12
|
private testHarnessService;
|
|
20
|
-
constructor(testHarnessService:
|
|
13
|
+
constructor(testHarnessService: TestHarnessWindowManagerService);
|
|
21
14
|
/**
|
|
22
|
-
* Opens the test harness
|
|
15
|
+
* Opens the test harness window for an AI Agent
|
|
23
16
|
*/
|
|
24
17
|
openForAgent(agentId: string, viewContainerRef?: ViewContainerRef): Observable<TestResult>;
|
|
25
18
|
/**
|
|
26
|
-
* Opens the test harness
|
|
19
|
+
* Opens the test harness window for an AI Prompt
|
|
27
20
|
*/
|
|
28
21
|
openForPrompt(promptId: string, viewContainerRef?: ViewContainerRef): Observable<TestResult>;
|
|
29
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<AITestHarnessDialogService, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-test-harness-dialog.service.d.ts","sourceRoot":"","sources":["../../src/lib/ai-test-harness-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-test-harness-dialog.service.d.ts","sourceRoot":"","sources":["../../src/lib/ai-test-harness-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;;AAE3D;;;;GAIG;AACH,qBAGa,0BAA0B;IACzB,OAAO,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,+BAA+B;IAEvE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC;IAU1F;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC;yCAnBjF,0BAA0B;6CAA1B,0BAA0B;CA4BtC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./test-harness-
|
|
3
|
+
import * as i1 from "./test-harness-window-manager.service";
|
|
5
4
|
/**
|
|
6
|
-
* Service for opening AI test harness
|
|
7
|
-
* This service wraps the
|
|
5
|
+
* Service for opening AI test harness windows for agents and prompts.
|
|
6
|
+
* This service wraps the TestHarnessWindowManagerService to provide a simpler API
|
|
8
7
|
* that matches the expected interface in consuming components.
|
|
9
8
|
*/
|
|
10
9
|
export class AITestHarnessDialogService {
|
|
@@ -12,103 +11,30 @@ export class AITestHarnessDialogService {
|
|
|
12
11
|
this.testHarnessService = testHarnessService;
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
15
|
-
* Opens the test harness
|
|
14
|
+
* Opens the test harness window for an AI Agent
|
|
16
15
|
*/
|
|
17
16
|
openForAgent(agentId, viewContainerRef) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
// Convert dialog close to test result
|
|
27
|
-
dialogRef.result.subscribe({
|
|
28
|
-
next: (result) => {
|
|
29
|
-
if (result) {
|
|
30
|
-
resultSubject.next({
|
|
31
|
-
success: true,
|
|
32
|
-
result: result,
|
|
33
|
-
executionTime: 0
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
resultSubject.next({
|
|
38
|
-
success: false,
|
|
39
|
-
error: 'Test cancelled'
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
resultSubject.complete();
|
|
43
|
-
},
|
|
44
|
-
error: (error) => {
|
|
45
|
-
resultSubject.next({
|
|
46
|
-
success: false,
|
|
47
|
-
error: error.message || 'Test failed'
|
|
48
|
-
});
|
|
49
|
-
resultSubject.complete();
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
resultSubject.next({
|
|
55
|
-
success: false,
|
|
56
|
-
error: error.message || 'Failed to open test harness'
|
|
57
|
-
});
|
|
58
|
-
resultSubject.complete();
|
|
59
|
-
}
|
|
60
|
-
return resultSubject.asObservable();
|
|
17
|
+
return this.testHarnessService.openAgentTestHarness({
|
|
18
|
+
agentId: agentId,
|
|
19
|
+
// Don't pass title - let the window component generate it with the agent name
|
|
20
|
+
width: '80vw',
|
|
21
|
+
height: '80vh',
|
|
22
|
+
viewContainerRef: viewContainerRef
|
|
23
|
+
});
|
|
61
24
|
}
|
|
62
25
|
/**
|
|
63
|
-
* Opens the test harness
|
|
26
|
+
* Opens the test harness window for an AI Prompt
|
|
64
27
|
*/
|
|
65
28
|
openForPrompt(promptId, viewContainerRef) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
height: '80vh'
|
|
74
|
-
});
|
|
75
|
-
// Convert dialog close to test result
|
|
76
|
-
dialogRef.result.subscribe({
|
|
77
|
-
next: (result) => {
|
|
78
|
-
if (result) {
|
|
79
|
-
resultSubject.next({
|
|
80
|
-
success: true,
|
|
81
|
-
result: result,
|
|
82
|
-
executionTime: 0
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
resultSubject.next({
|
|
87
|
-
success: false,
|
|
88
|
-
error: 'Test cancelled'
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
resultSubject.complete();
|
|
92
|
-
},
|
|
93
|
-
error: (error) => {
|
|
94
|
-
resultSubject.next({
|
|
95
|
-
success: false,
|
|
96
|
-
error: error.message || 'Test failed'
|
|
97
|
-
});
|
|
98
|
-
resultSubject.complete();
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
resultSubject.next({
|
|
104
|
-
success: false,
|
|
105
|
-
error: error.message || 'Failed to open test harness'
|
|
106
|
-
});
|
|
107
|
-
resultSubject.complete();
|
|
108
|
-
}
|
|
109
|
-
return resultSubject.asObservable();
|
|
29
|
+
return this.testHarnessService.openPromptTestHarness({
|
|
30
|
+
promptId: promptId,
|
|
31
|
+
// Don't pass title - let the window component generate it with the prompt name
|
|
32
|
+
width: '80vw',
|
|
33
|
+
height: '80vh',
|
|
34
|
+
viewContainerRef: viewContainerRef
|
|
35
|
+
});
|
|
110
36
|
}
|
|
111
|
-
static { this.ɵfac = function AITestHarnessDialogService_Factory(t) { return new (t || AITestHarnessDialogService)(i0.ɵɵinject(i1.
|
|
37
|
+
static { this.ɵfac = function AITestHarnessDialogService_Factory(t) { return new (t || AITestHarnessDialogService)(i0.ɵɵinject(i1.TestHarnessWindowManagerService)); }; }
|
|
112
38
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AITestHarnessDialogService, factory: AITestHarnessDialogService.ɵfac, providedIn: 'root' }); }
|
|
113
39
|
}
|
|
114
40
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AITestHarnessDialogService, [{
|
|
@@ -116,5 +42,5 @@ export class AITestHarnessDialogService {
|
|
|
116
42
|
args: [{
|
|
117
43
|
providedIn: 'root'
|
|
118
44
|
}]
|
|
119
|
-
}], () => [{ type: i1.
|
|
45
|
+
}], () => [{ type: i1.TestHarnessWindowManagerService }], null); })();
|
|
120
46
|
//# sourceMappingURL=ai-test-harness-dialog.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-test-harness-dialog.service.js","sourceRoot":"","sources":["../../src/lib/ai-test-harness-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"ai-test-harness-dialog.service.js","sourceRoot":"","sources":["../../src/lib/ai-test-harness-dialog.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;;;AAK7D;;;;GAIG;AAIH,MAAM,OAAO,0BAA0B;IACrC,YAAoB,kBAAmD;QAAnD,uBAAkB,GAAlB,kBAAkB,CAAiC;IAAG,CAAC;IAE3E;;OAEG;IACH,YAAY,CAAC,OAAe,EAAE,gBAAmC;QAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC;YAClD,OAAO,EAAE,OAAO;YAChB,8EAA8E;YAC9E,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,gBAAgB,EAAE,gBAAgB;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB,EAAE,gBAAmC;QACjE,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;YACnD,QAAQ,EAAE,QAAQ;YAClB,+EAA+E;YAC/E,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,gBAAgB,EAAE,gBAAgB;SACnC,CAAC,CAAC;IACL,CAAC;2FA3BU,0BAA0B;uEAA1B,0BAA0B,WAA1B,0BAA0B,mBAFzB,MAAM;;iFAEP,0BAA0B;cAHtC,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { AIAgentEntity, AIPromptEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export interface AITestHarnessWindowData {
|
|
5
|
+
agentId?: string;
|
|
6
|
+
agent?: AIAgentEntity;
|
|
7
|
+
promptId?: string;
|
|
8
|
+
prompt?: AIPromptEntity;
|
|
9
|
+
title?: string;
|
|
10
|
+
width?: string | number;
|
|
11
|
+
height?: string | number;
|
|
12
|
+
initialDataContext?: Record<string, any>;
|
|
13
|
+
initialTemplateData?: Record<string, any>;
|
|
14
|
+
initialTemplateVariables?: Record<string, any>;
|
|
15
|
+
selectedModelId?: string;
|
|
16
|
+
mode?: 'agent' | 'prompt';
|
|
17
|
+
}
|
|
18
|
+
export declare class AITestHarnessWindowComponent implements OnInit {
|
|
19
|
+
data: AITestHarnessWindowData;
|
|
20
|
+
closeWindow: EventEmitter<void>;
|
|
21
|
+
windowTitle: string;
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
loading: boolean;
|
|
25
|
+
error: string;
|
|
26
|
+
agent?: AIAgentEntity;
|
|
27
|
+
prompt?: AIPromptEntity;
|
|
28
|
+
mode: 'agent' | 'prompt';
|
|
29
|
+
private metadata;
|
|
30
|
+
ngOnInit(): void;
|
|
31
|
+
loadEntity(): Promise<void>;
|
|
32
|
+
onClose(): void;
|
|
33
|
+
private convertToNumber;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AITestHarnessWindowComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AITestHarnessWindowComponent, "mj-ai-test-harness-window", never, { "data": { "alias": "data"; "required": false; }; }, { "closeWindow": "closeWindow"; }, never, never, false, never>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=ai-test-harness-window.component.d.ts.map
|