@memberjunction/ng-ai-test-harness 2.55.0 → 2.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/lib/agent-execution-monitor.component.d.ts +9 -0
  2. package/dist/lib/agent-execution-monitor.component.d.ts.map +1 -1
  3. package/dist/lib/agent-execution-monitor.component.js +68 -10
  4. package/dist/lib/agent-execution-monitor.component.js.map +1 -1
  5. package/dist/lib/agent-execution-node.component.d.ts +1 -0
  6. package/dist/lib/agent-execution-node.component.d.ts.map +1 -1
  7. package/dist/lib/agent-execution-node.component.js +88 -39
  8. package/dist/lib/agent-execution-node.component.js.map +1 -1
  9. package/dist/lib/ai-test-harness-dialog.service.d.ts +7 -14
  10. package/dist/lib/ai-test-harness-dialog.service.d.ts.map +1 -1
  11. package/dist/lib/ai-test-harness-dialog.service.js +21 -95
  12. package/dist/lib/ai-test-harness-dialog.service.js.map +1 -1
  13. package/dist/lib/ai-test-harness-window.component.d.ts +37 -0
  14. package/dist/lib/ai-test-harness-window.component.d.ts.map +1 -0
  15. package/dist/lib/ai-test-harness-window.component.js +171 -0
  16. package/dist/lib/ai-test-harness-window.component.js.map +1 -0
  17. package/dist/lib/ai-test-harness.component.d.ts +26 -1
  18. package/dist/lib/ai-test-harness.component.d.ts.map +1 -1
  19. package/dist/lib/ai-test-harness.component.js +303 -223
  20. package/dist/lib/ai-test-harness.component.js.map +1 -1
  21. package/dist/lib/test-harness-custom-window.component.d.ts +78 -0
  22. package/dist/lib/test-harness-custom-window.component.d.ts.map +1 -0
  23. package/dist/lib/test-harness-custom-window.component.js +528 -0
  24. package/dist/lib/test-harness-custom-window.component.js.map +1 -0
  25. package/dist/lib/test-harness-window-manager.service.d.ts +59 -0
  26. package/dist/lib/test-harness-window-manager.service.d.ts.map +1 -0
  27. package/dist/lib/test-harness-window-manager.service.js +163 -0
  28. package/dist/lib/test-harness-window-manager.service.js.map +1 -0
  29. package/dist/lib/test-harness-window.service.d.ts +73 -0
  30. package/dist/lib/test-harness-window.service.d.ts.map +1 -0
  31. package/dist/lib/test-harness-window.service.js +164 -0
  32. package/dist/lib/test-harness-window.service.js.map +1 -0
  33. package/dist/lib/window-dock.service.d.ts +32 -0
  34. package/dist/lib/window-dock.service.d.ts.map +1 -0
  35. package/dist/lib/window-dock.service.js +125 -0
  36. package/dist/lib/window-dock.service.js.map +1 -0
  37. package/dist/module.d.ts +19 -17
  38. package/dist/module.d.ts.map +1 -1
  39. package/dist/module.js +23 -4
  40. package/dist/module.js.map +1 -1
  41. package/dist/public-api.d.ts +6 -1
  42. package/dist/public-api.d.ts.map +1 -1
  43. package/dist/public-api.js +6 -1
  44. package/dist/public-api.js.map +1 -1
  45. package/package.json +8 -8
  46. package/dist/lib/test-harness-dialog.service.d.ts +0 -151
  47. package/dist/lib/test-harness-dialog.service.d.ts.map +0 -1
  48. package/dist/lib/test-harness-dialog.service.js +0 -234
  49. 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", 19);
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.ɵɵelement(0, "i", 12);
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.ɵɵelement(0, "i", 13);
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", 14);
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", 15);
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", 17);
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", 20);
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", 21);
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", 18);
76
- i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_19_Conditional_1_Template, 2, 1, "span", 20)(2, ExecutionNodeComponent_Conditional_19_Conditional_2_Template, 2, 1, "span", 21);
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", 24);
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", 25);
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", 22);
102
- i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_1_Template, 2, 1, "div", 24)(2, ExecutionNodeComponent_Conditional_20_Conditional_0_Conditional_2_Template, 1, 1, "div", 25);
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", 26)(1, "div", 28);
113
- i0.ɵɵelement(2, "i", 29);
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", 30);
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", 27)(1, "div", 28);
126
- i0.ɵɵelement(2, "i", 31);
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", 30);
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", 27)(1, "div", 28);
139
- i0.ɵɵelement(2, "i", 32);
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", 30);
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", 23);
152
- i0.ɵɵtemplate(1, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_1_Template, 6, 1, "div", 26)(2, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_2_Template, 6, 1, "div", 27)(3, ExecutionNodeComponent_Conditional_20_Conditional_1_Conditional_3_Template, 6, 1, "div", 27);
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", 22)(1, ExecutionNodeComponent_Conditional_20_Conditional_1_Template, 4, 3, "div", 23);
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", 34);
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", 33, _forTrack0);
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-bolt"], [1, "fa-solid", "fa-sitemap"], [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"], [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) {
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, 1, 0, "i", 12)(13, ExecutionNodeComponent_Case_13_Template, 1, 0, "i", 13)(14, ExecutionNodeComponent_Case_14_Template, 1, 0, "i", 14)(15, ExecutionNodeComponent_Case_15_Template, 1, 0, "i", 15);
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", 16);
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", 17)(19, ExecutionNodeComponent_Conditional_19_Template, 3, 2, "span", 18);
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.node.type);
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]="node.type">
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
- <i class="fa-solid fa-bolt"></i>
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
- <i class="fa-solid fa-sitemap"></i>
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: 352 }); })();
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":"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"}
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 { TestHarnessDialogService } from './test-harness-dialog.service';
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 dialogs for agents and prompts.
15
- * This service wraps the TestHarnessDialogService to provide a simpler API
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: TestHarnessDialogService);
13
+ constructor(testHarnessService: TestHarnessWindowManagerService);
21
14
  /**
22
- * Opens the test harness dialog for an AI Agent
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 dialog for an AI Prompt
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;AAE7D,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAEzE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAGa,0BAA0B;IACzB,OAAO,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,wBAAwB;IAEhE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC;IA+C1F;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC;yCAxDjF,0BAA0B;6CAA1B,0BAA0B;CAuGtC"}
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-dialog.service";
3
+ import * as i1 from "./test-harness-window-manager.service";
5
4
  /**
6
- * Service for opening AI test harness dialogs for agents and prompts.
7
- * This service wraps the TestHarnessDialogService to provide a simpler API
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 dialog for an AI Agent
14
+ * Opens the test harness window for an AI Agent
16
15
  */
17
16
  openForAgent(agentId, viewContainerRef) {
18
- const resultSubject = new Subject();
19
- try {
20
- const dialogRef = this.testHarnessService.openAgentTestHarness({
21
- agentId: agentId,
22
- title: 'Test AI Agent',
23
- width: '80vw',
24
- height: '80vh'
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 dialog for an AI Prompt
26
+ * Opens the test harness window for an AI Prompt
64
27
  */
65
28
  openForPrompt(promptId, viewContainerRef) {
66
- const resultSubject = new Subject();
67
- try {
68
- // Use the prompt-specific test harness method
69
- const dialogRef = this.testHarnessService.openPromptTestHarness({
70
- promptId: promptId,
71
- title: 'Test AI Prompt',
72
- width: '80vw',
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.TestHarnessDialogService)); }; }
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.TestHarnessDialogService }], null); })();
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":"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"}
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