@memberjunction/ng-conversations 6.1.0-edge.6 → 6.1.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 (34) hide show
  1. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  2. package/dist/lib/components/dialogs/input-dialog.component.js +3 -3
  3. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  4. package/dist/lib/components/message/message-input.component.js +4 -4
  5. package/dist/lib/components/message/message-input.component.js.map +1 -1
  6. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +1 -1
  7. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
  8. package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
  9. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  10. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +16 -1
  11. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
  12. package/dist/lib/components/realtime/realtime-agent-picker.component.js +39 -7
  13. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
  14. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +2 -2
  15. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
  16. package/dist/lib/components/realtime/realtime-delegation-card.component.js +159 -107
  17. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  18. package/dist/lib/components/realtime/realtime-session-state.d.ts +9 -4
  19. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
  20. package/dist/lib/components/realtime/realtime-session-state.js +95 -19
  21. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
  22. package/dist/lib/services/delegation-result-parser.d.ts +5 -0
  23. package/dist/lib/services/delegation-result-parser.d.ts.map +1 -1
  24. package/dist/lib/services/delegation-result-parser.js +12 -0
  25. package/dist/lib/services/delegation-result-parser.js.map +1 -1
  26. package/dist/lib/services/realtime-session-review.service.d.ts +31 -1
  27. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  28. package/dist/lib/services/realtime-session-review.service.js +63 -8
  29. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  30. package/dist/lib/services/realtime-session.service.d.ts +15 -8
  31. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  32. package/dist/lib/services/realtime-session.service.js +62 -14
  33. package/dist/lib/services/realtime-session.service.js.map +1 -1
  34. package/package.json +31 -31
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-delegation-card.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-delegation-card.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AAGvE,OAAO,EAAE,wBAAwB,EAAqB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;;AAEnF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAOa,+BAA+B;IAC1C,yEAAyE;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAO;IAE9C,uFAAuF;IAC5D,IAAI,EAAG,wBAAwB,CAAC;IAE3D,wEAAwE;IAC/D,OAAO,UAAS;IAEzB,mFAAmF;IACzE,gBAAgB,uBAA8B;IAExD,+FAA+F;IACrF,qBAAqB,yCAAgD;IAE/E;;;;;;OAMG;IACO,eAAe,uBAA8B;IAEvD,6EAA6E;IACtE,QAAQ,UAAS;IAExB,6FAA6F;IAC7F,IAAW,SAAS,IAAI,wBAAwB,EAAE,CAEjD;IAED,iFAAiF;IAC1E,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAKhF,gFAAgF;IAChF,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,gEAAgE;IACzD,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOvC,oEAAoE;IAC7D,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAO1C,gFAAgF;IAChF,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;OAGG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED,mFAAmF;IACnF,IAAW,UAAU,IAAI,MAAM,CAI9B;IAED,wEAAwE;IACxE,IAAW,aAAa,IAAI,MAAM,CAIjC;IAED,mDAAmD;IACnD,IAAW,eAAe,IAAI,MAAM,CAGnC;yCA3FU,+BAA+B;2CAA/B,+BAA+B;CA4F3C"}
1
+ {"version":3,"file":"realtime-delegation-card.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-delegation-card.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AAGvE,OAAO,EAAE,wBAAwB,EAAqB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;;AAEnF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAOa,+BAA+B;IAC1C,yEAAyE;IACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAO;IAE9C,uFAAuF;IAC5D,IAAI,EAAG,wBAAwB,CAAC;IAE3D,wEAAwE;IAC/D,OAAO,UAAS;IAEzB,mFAAmF;IACzE,gBAAgB,uBAA8B;IAExD,+FAA+F;IACrF,qBAAqB,yCAAgD;IAE/E;;;;;;OAMG;IACO,eAAe,uBAA8B;IAEvD,6EAA6E;IACtE,QAAQ,UAAS;IAExB,4HAA4H;IAC5H,IAAW,SAAS,IAAI,wBAAwB,EAAE,CAEjD;IAED,iFAAiF;IAC1E,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAKhF,+GAA+G;IAC/G,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,gEAAgE;IACzD,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOvC,oEAAoE;IAC7D,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAO1C,gFAAgF;IAChF,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;OAGG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED,mFAAmF;IACnF,IAAW,UAAU,IAAI,MAAM,CAM9B;IAED,wEAAwE;IACxE,IAAW,aAAa,IAAI,MAAM,CAIjC;IAED,mDAAmD;IACnD,IAAW,eAAe,IAAI,MAAM,CAMnC;yCAhGU,+BAA+B;2CAA/B,+BAA+B;CAiG3C"}
@@ -6,110 +6,145 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  import * as i2 from "@memberjunction/ng-ui-components";
8
8
  const _forTrack0 = ($index, $item) => $item.ArtifactVersionID;
9
- function RealtimeDelegationCardComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
9
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelementStart(0, "div", 12);
11
+ i0.ɵɵelement(1, "i", 13);
12
+ i0.ɵɵelementEnd();
13
+ i0.ɵɵelementStart(2, "div", 14);
14
+ i0.ɵɵtext(3);
15
+ i0.ɵɵelementEnd();
16
+ } if (rf & 2) {
17
+ const ctx_r0 = i0.ɵɵnextContext(2);
18
+ i0.ɵɵadvance(3);
19
+ i0.ɵɵtextInterpolate(ctx_r0.Card.AgentName);
20
+ } }
21
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "div", 15);
23
+ i0.ɵɵtext(1);
24
+ i0.ɵɵelementEnd();
25
+ i0.ɵɵelementStart(2, "div", 14);
26
+ i0.ɵɵtext(3);
27
+ i0.ɵɵelementEnd();
28
+ } if (rf & 2) {
29
+ const ctx_r0 = i0.ɵɵnextContext(2);
30
+ i0.ɵɵadvance();
31
+ i0.ɵɵtextInterpolate(ctx_r0.Card.AgentName.charAt(0));
32
+ i0.ɵɵadvance(2);
33
+ i0.ɵɵtextInterpolate1("", ctx_r0.Card.AgentName, " is working\u2026");
34
+ } }
35
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_7_Template(rf, ctx) { if (rf & 1) {
10
36
  const _r2 = i0.ɵɵgetCurrentView();
11
- i0.ɵɵelementStart(0, "button", 15);
12
- i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_0_Conditional_9_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OpenRun($event)); });
13
- i0.ɵɵelement(1, "i", 16);
37
+ i0.ɵɵelementStart(0, "button", 16);
38
+ i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_0_Conditional_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.OpenRun($event)); });
39
+ i0.ɵɵelement(1, "i", 17);
14
40
  i0.ɵɵelementStart(2, "span");
15
41
  i0.ɵɵtext(3, "Open run");
16
42
  i0.ɵɵelementEnd()();
17
43
  } }
18
- function RealtimeDelegationCardComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "div", 11);
44
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
45
+ const _r3 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "button", 18);
47
+ i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_0_Conditional_8_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.CancelWork($event)); });
48
+ i0.ɵɵelement(1, "i", 19);
49
+ i0.ɵɵelementEnd();
50
+ } }
51
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_11_Template(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵelementStart(0, "div", 8);
20
53
  i0.ɵɵtext(1);
21
54
  i0.ɵɵelementEnd();
22
55
  } if (rf & 2) {
23
- const ctx_r2 = i0.ɵɵnextContext(2);
56
+ const ctx_r0 = i0.ɵɵnextContext(2);
24
57
  i0.ɵɵadvance();
25
- i0.ɵɵtextInterpolate(ctx_r2.Card.LatestMessage);
58
+ i0.ɵɵtextInterpolate(ctx_r0.Card.LatestMessage);
26
59
  } }
27
- function RealtimeDelegationCardComponent_Conditional_0_Conditional_16_Template(rf, ctx) { if (rf & 1) {
28
- i0.ɵɵelement(0, "div", 17);
60
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelement(0, "div", 20);
29
62
  } if (rf & 2) {
30
- const ctx_r2 = i0.ɵɵnextContext(2);
31
- i0.ɵɵstyleProp("width", ctx_r2.Card.Percentage, "%");
63
+ const ctx_r0 = i0.ɵɵnextContext(2);
64
+ i0.ɵɵstyleProp("width", ctx_r0.Card.Percentage, "%");
32
65
  } }
33
- function RealtimeDelegationCardComponent_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
34
- i0.ɵɵelement(0, "div", 14);
66
+ function RealtimeDelegationCardComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelement(0, "div", 11);
35
68
  } }
36
69
  function RealtimeDelegationCardComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
37
- const _r1 = i0.ɵɵgetCurrentView();
38
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 2)(2, "div", 3);
39
- i0.ɵɵtext(3);
70
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 2);
71
+ i0.ɵɵconditionalCreate(2, RealtimeDelegationCardComponent_Conditional_0_Conditional_2_Template, 4, 1)(3, RealtimeDelegationCardComponent_Conditional_0_Conditional_3_Template, 4, 2);
72
+ i0.ɵɵelementStart(4, "span", 3);
73
+ i0.ɵɵelement(5, "i", 4);
74
+ i0.ɵɵtext(6, " Running ");
40
75
  i0.ɵɵelementEnd();
41
- i0.ɵɵelementStart(4, "div", 4);
42
- i0.ɵɵtext(5);
76
+ i0.ɵɵconditionalCreate(7, RealtimeDelegationCardComponent_Conditional_0_Conditional_7_Template, 4, 0, "button", 5);
77
+ i0.ɵɵconditionalCreate(8, RealtimeDelegationCardComponent_Conditional_0_Conditional_8_Template, 2, 0, "button", 6);
43
78
  i0.ɵɵelementEnd();
44
- i0.ɵɵelementStart(6, "span", 5);
45
- i0.ɵɵelement(7, "i", 6);
46
- i0.ɵɵtext(8, " Running ");
47
- i0.ɵɵelementEnd();
48
- i0.ɵɵconditionalCreate(9, RealtimeDelegationCardComponent_Conditional_0_Conditional_9_Template, 4, 0, "button", 7);
49
- i0.ɵɵelementStart(10, "button", 8);
50
- i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_0_Template_button_click_10_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CancelWork($event)); });
51
- i0.ɵɵelement(11, "i", 9);
52
- i0.ɵɵelementEnd()();
53
- i0.ɵɵelementStart(12, "div", 10);
54
- i0.ɵɵtext(13);
79
+ i0.ɵɵelementStart(9, "div", 7);
80
+ i0.ɵɵtext(10);
55
81
  i0.ɵɵelementEnd();
56
- i0.ɵɵconditionalCreate(14, RealtimeDelegationCardComponent_Conditional_0_Conditional_14_Template, 2, 1, "div", 11);
57
- i0.ɵɵelementStart(15, "div", 12);
58
- i0.ɵɵconditionalCreate(16, RealtimeDelegationCardComponent_Conditional_0_Conditional_16_Template, 1, 2, "div", 13)(17, RealtimeDelegationCardComponent_Conditional_0_Conditional_17_Template, 1, 0, "div", 14);
82
+ i0.ɵɵconditionalCreate(11, RealtimeDelegationCardComponent_Conditional_0_Conditional_11_Template, 2, 1, "div", 8);
83
+ i0.ɵɵelementStart(12, "div", 9);
84
+ i0.ɵɵconditionalCreate(13, RealtimeDelegationCardComponent_Conditional_0_Conditional_13_Template, 1, 2, "div", 10)(14, RealtimeDelegationCardComponent_Conditional_0_Conditional_14_Template, 1, 0, "div", 11);
59
85
  i0.ɵɵelementEnd()();
60
86
  } if (rf & 2) {
61
- const ctx_r2 = i0.ɵɵnextContext();
62
- i0.ɵɵadvance(3);
63
- i0.ɵɵtextInterpolate(ctx_r2.Card.AgentName.charAt(0));
87
+ const ctx_r0 = i0.ɵɵnextContext();
64
88
  i0.ɵɵadvance(2);
65
- i0.ɵɵtextInterpolate1("", ctx_r2.Card.AgentName, " is working\u2026");
66
- i0.ɵɵadvance(4);
67
- i0.ɵɵconditional(ctx_r2.ShowOpenRun ? 9 : -1);
68
- i0.ɵɵadvance(4);
69
- i0.ɵɵtextInterpolate(ctx_r2.StepLabel);
89
+ i0.ɵɵconditional(ctx_r0.Card.Kind === "action" ? 2 : 3);
90
+ i0.ɵɵadvance(5);
91
+ i0.ɵɵconditional(ctx_r0.ShowOpenRun ? 7 : -1);
70
92
  i0.ɵɵadvance();
71
- i0.ɵɵconditional(ctx_r2.ShowDetailLine ? 14 : -1);
93
+ i0.ɵɵconditional(ctx_r0.Card.Kind !== "action" ? 8 : -1);
94
+ i0.ɵɵadvance(2);
95
+ i0.ɵɵtextInterpolate(ctx_r0.StepLabel);
96
+ i0.ɵɵadvance();
97
+ i0.ɵɵconditional(ctx_r0.ShowDetailLine ? 11 : -1);
72
98
  i0.ɵɵadvance();
73
- i0.ɵɵclassProp("work-progress--indeterminate", ctx_r2.Card.Percentage == null);
99
+ i0.ɵɵclassProp("work-progress--indeterminate", ctx_r0.Card.Percentage == null);
74
100
  i0.ɵɵadvance();
75
- i0.ɵɵconditional(ctx_r2.Card.Percentage != null ? 16 : 17);
101
+ i0.ɵɵconditional(ctx_r0.Card.Percentage != null ? 13 : 14);
102
+ } }
103
+ function RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
104
+ i0.ɵɵtext(0, " tool ");
105
+ } }
106
+ function RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
107
+ i0.ɵɵtext(0);
108
+ } if (rf & 2) {
109
+ const ctx_r0 = i0.ɵɵnextContext(3);
110
+ i0.ɵɵtextInterpolate1(" via ", ctx_r0.Card.AgentName, " ");
76
111
  } }
77
112
  function RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelement(0, "i", 22);
79
- i0.ɵɵelementStart(1, "span", 23);
113
+ i0.ɵɵelement(0, "i", 25);
114
+ i0.ɵɵelementStart(1, "span", 26);
80
115
  i0.ɵɵtext(2);
81
116
  i0.ɵɵelementEnd();
82
- i0.ɵɵelementStart(3, "span", 24);
117
+ i0.ɵɵelementStart(3, "span", 27);
83
118
  i0.ɵɵtext(4, "\u00B7");
84
119
  i0.ɵɵelementEnd();
85
- i0.ɵɵelementStart(5, "span", 25);
120
+ i0.ɵɵelementStart(5, "span", 28);
86
121
  i0.ɵɵtext(6);
87
122
  i0.ɵɵelementEnd();
88
- i0.ɵɵelementStart(7, "span", 26);
89
- i0.ɵɵelement(8, "i", 27);
90
- i0.ɵɵtext(9);
123
+ i0.ɵɵelementStart(7, "span", 29);
124
+ i0.ɵɵelement(8, "i", 30);
125
+ i0.ɵɵconditionalCreate(9, RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Conditional_9_Template, 1, 0)(10, RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Conditional_10_Template, 1, 1);
91
126
  i0.ɵɵelementEnd();
92
127
  } if (rf & 2) {
93
- const ctx_r2 = i0.ɵɵnextContext(2);
94
- i0.ɵɵproperty("ngClass", ctx_r2.Card.Success ? "fa-check" : "fa-xmark");
128
+ const ctx_r0 = i0.ɵɵnextContext(2);
129
+ i0.ɵɵproperty("ngClass", ctx_r0.Card.Success ? "fa-check" : "fa-xmark");
95
130
  i0.ɵɵadvance(2);
96
- i0.ɵɵtextInterpolate(ctx_r2.Card.AgentName);
131
+ i0.ɵɵtextInterpolate(ctx_r0.Card.AgentName);
97
132
  i0.ɵɵadvance(4);
98
- i0.ɵɵtextInterpolate(ctx_r2.ResultPreview);
133
+ i0.ɵɵtextInterpolate(ctx_r0.ResultPreview);
99
134
  i0.ɵɵadvance(2);
100
- i0.ɵɵproperty("title", ctx_r2.ProvenanceTitle);
135
+ i0.ɵɵproperty("title", ctx_r0.ProvenanceTitle);
101
136
  i0.ɵɵadvance();
102
- i0.ɵɵtextInterpolate1(" via ", ctx_r2.Card.AgentName, " ");
137
+ i0.ɵɵconditional(ctx_r0.Card.Kind === "action" ? 9 : 10);
103
138
  } }
104
139
  function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_For_1_Template(rf, ctx) { if (rf & 1) {
105
140
  const _r5 = i0.ɵɵgetCurrentView();
106
- i0.ɵɵelementStart(0, "button", 29);
107
- i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_For_1_Template_button_click_0_listener($event) { const artifact_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OpenArtifact($event, artifact_r6)); });
108
- i0.ɵɵelement(1, "i", 30);
141
+ i0.ɵɵelementStart(0, "button", 32);
142
+ i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_For_1_Template_button_click_0_listener($event) { const artifact_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenArtifact($event, artifact_r6)); });
143
+ i0.ɵɵelement(1, "i", 33);
109
144
  i0.ɵɵelementStart(2, "span");
110
145
  i0.ɵɵtext(3, "View");
111
146
  i0.ɵɵelementEnd();
112
- i0.ɵɵelement(4, "i", 31);
147
+ i0.ɵɵelement(4, "i", 34);
113
148
  i0.ɵɵelementEnd();
114
149
  } if (rf & 2) {
115
150
  const artifact_r6 = ctx.$implicit;
@@ -117,31 +152,31 @@ function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_For_1_Templ
117
152
  } }
118
153
  function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
119
154
  const _r7 = i0.ɵɵgetCurrentView();
120
- i0.ɵɵelementStart(0, "button", 15);
121
- i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OpenRun($event)); });
122
- i0.ɵɵelement(1, "i", 16);
155
+ i0.ɵɵelementStart(0, "button", 16);
156
+ i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Conditional_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenRun($event)); });
157
+ i0.ɵɵelement(1, "i", 17);
123
158
  i0.ɵɵelementStart(2, "span");
124
159
  i0.ɵɵtext(3, "Open run");
125
160
  i0.ɵɵelementEnd()();
126
161
  } }
127
162
  function RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
128
- i0.ɵɵrepeaterCreate(0, RealtimeDelegationCardComponent_Conditional_1_ng_template_2_For_1_Template, 5, 1, "button", 28, _forTrack0);
129
- i0.ɵɵconditionalCreate(2, RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Conditional_2_Template, 4, 0, "button", 7);
163
+ i0.ɵɵrepeaterCreate(0, RealtimeDelegationCardComponent_Conditional_1_ng_template_2_For_1_Template, 5, 1, "button", 31, _forTrack0);
164
+ i0.ɵɵconditionalCreate(2, RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Conditional_2_Template, 4, 0, "button", 5);
130
165
  } if (rf & 2) {
131
- const ctx_r2 = i0.ɵɵnextContext(2);
132
- i0.ɵɵrepeater(ctx_r2.Artifacts);
166
+ const ctx_r0 = i0.ɵɵnextContext(2);
167
+ i0.ɵɵrepeater(ctx_r0.Artifacts);
133
168
  i0.ɵɵadvance(2);
134
- i0.ɵɵconditional(ctx_r2.ShowOpenRun ? 2 : -1);
169
+ i0.ɵɵconditional(ctx_r0.ShowOpenRun ? 2 : -1);
135
170
  } }
136
171
  function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_For_4_Template(rf, ctx) { if (rf & 1) {
137
172
  const _r8 = i0.ɵɵgetCurrentView();
138
- i0.ɵɵelementStart(0, "button", 36);
139
- i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_For_4_Template_button_click_0_listener($event) { const artifact_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OpenArtifact($event, artifact_r9)); });
140
- i0.ɵɵelement(1, "i", 30);
173
+ i0.ɵɵelementStart(0, "button", 39);
174
+ i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_For_4_Template_button_click_0_listener($event) { const artifact_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenArtifact($event, artifact_r9)); });
175
+ i0.ɵɵelement(1, "i", 33);
141
176
  i0.ɵɵelementStart(2, "span");
142
177
  i0.ɵɵtext(3);
143
178
  i0.ɵɵelementEnd();
144
- i0.ɵɵelement(4, "i", 31);
179
+ i0.ɵɵelement(4, "i", 34);
145
180
  i0.ɵɵelementEnd();
146
181
  } if (rf & 2) {
147
182
  const artifact_r9 = ctx.$implicit;
@@ -149,57 +184,69 @@ function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_For_4_Templ
149
184
  i0.ɵɵadvance(3);
150
185
  i0.ɵɵtextInterpolate(artifact_r9.Name);
151
186
  } }
152
- function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
187
+ function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
188
+ i0.ɵɵelementStart(0, "div", 38);
189
+ i0.ɵɵelement(1, "i", 30);
190
+ i0.ɵɵtext(2);
191
+ i0.ɵɵelementEnd();
192
+ } if (rf & 2) {
193
+ const ctx_r0 = i0.ɵɵnextContext(3);
194
+ i0.ɵɵadvance();
195
+ i0.ɵɵproperty("title", ctx_r0.ProvenanceTitle);
196
+ i0.ɵɵadvance();
197
+ i0.ɵɵtextInterpolate1(" Direct action \u00B7 ", ctx_r0.Card.AgentName, " ");
198
+ } }
199
+ function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
153
200
  const _r10 = i0.ɵɵgetCurrentView();
154
- i0.ɵɵelementStart(0, "button", 38);
155
- i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Conditional_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.OpenRun($event)); });
156
- i0.ɵɵelement(1, "i", 16);
201
+ i0.ɵɵelementStart(0, "button", 41);
202
+ i0.ɵɵlistener("click", function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_6_Conditional_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.OpenRun($event)); });
203
+ i0.ɵɵelement(1, "i", 17);
157
204
  i0.ɵɵelementStart(2, "span");
158
205
  i0.ɵɵtext(3, "Open run");
159
206
  i0.ɵɵelementEnd()();
160
207
  } }
161
- function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
162
- i0.ɵɵelementStart(0, "div", 35);
163
- i0.ɵɵelement(1, "i", 27);
208
+ function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
209
+ i0.ɵɵelementStart(0, "div", 38);
210
+ i0.ɵɵelement(1, "i", 30);
164
211
  i0.ɵɵtext(2);
165
- i0.ɵɵconditionalCreate(3, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Conditional_3_Template, 4, 0, "button", 37);
212
+ i0.ɵɵconditionalCreate(3, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_6_Conditional_3_Template, 4, 0, "button", 40);
166
213
  i0.ɵɵelementEnd();
167
214
  } if (rf & 2) {
168
- const ctx_r2 = i0.ɵɵnextContext(3);
215
+ const ctx_r0 = i0.ɵɵnextContext(3);
169
216
  i0.ɵɵadvance();
170
- i0.ɵɵproperty("title", ctx_r2.ProvenanceTitle);
217
+ i0.ɵɵproperty("title", ctx_r0.ProvenanceTitle);
171
218
  i0.ɵɵadvance();
172
- i0.ɵɵtextInterpolate2(" via ", ctx_r2.Card.AgentName, " \u00B7 run ", ctx_r2.Card.RunRef, " ");
219
+ i0.ɵɵtextInterpolate2(" via ", ctx_r0.Card.AgentName, " \u00B7 run ", ctx_r0.Card.RunRef, " ");
173
220
  i0.ɵɵadvance();
174
- i0.ɵɵconditional(ctx_r2.ShowOpenRun ? 3 : -1);
221
+ i0.ɵɵconditional(ctx_r0.ShowOpenRun ? 3 : -1);
175
222
  } }
176
223
  function RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
177
- i0.ɵɵelementStart(0, "div", 32)(1, "div", 33);
224
+ i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
178
225
  i0.ɵɵtext(2);
179
226
  i0.ɵɵelementEnd();
180
- i0.ɵɵrepeaterCreate(3, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_For_4_Template, 5, 2, "button", 34, _forTrack0);
181
- i0.ɵɵconditionalCreate(5, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Template, 4, 4, "div", 35);
227
+ i0.ɵɵrepeaterCreate(3, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_For_4_Template, 5, 2, "button", 37, _forTrack0);
228
+ i0.ɵɵconditionalCreate(5, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_5_Template, 3, 2, "div", 38)(6, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Conditional_6_Template, 4, 4, "div", 38);
182
229
  i0.ɵɵelementEnd();
183
230
  } if (rf & 2) {
184
- const ctx_r2 = i0.ɵɵnextContext(2);
231
+ const ctx_r0 = i0.ɵɵnextContext(2);
185
232
  i0.ɵɵadvance(2);
186
- i0.ɵɵtextInterpolate(ctx_r2.ResultText);
233
+ i0.ɵɵtextInterpolate(ctx_r0.ResultText);
187
234
  i0.ɵɵadvance();
188
- i0.ɵɵrepeater(ctx_r2.Artifacts);
235
+ i0.ɵɵrepeater(ctx_r0.Artifacts);
189
236
  i0.ɵɵadvance(2);
190
- i0.ɵɵconditional(ctx_r2.Card.RunRef ? 5 : -1);
237
+ i0.ɵɵconditional(ctx_r0.Card.Kind === "action" ? 5 : ctx_r0.Card.RunRef ? 6 : -1);
191
238
  } }
192
239
  function RealtimeDelegationCardComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
193
240
  const _r4 = i0.ɵɵgetCurrentView();
194
- i0.ɵɵelementStart(0, "mj-accordion-panel", 18);
195
- i0.ɵɵtwoWayListener("ExpandedChange", function RealtimeDelegationCardComponent_Conditional_1_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.Expanded, $event) || (ctx_r2.Expanded = $event); return i0.ɵɵresetView($event); });
196
- i0.ɵɵtemplate(1, RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Template, 10, 5, "ng-template", 19)(2, RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Template, 3, 1, "ng-template", 20)(3, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Template, 6, 2, "ng-template", 21);
241
+ i0.ɵɵelementStart(0, "mj-accordion-panel", 21);
242
+ i0.ɵɵtwoWayListener("ExpandedChange", function RealtimeDelegationCardComponent_Conditional_1_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.Expanded, $event) || (ctx_r0.Expanded = $event); return i0.ɵɵresetView($event); });
243
+ i0.ɵɵtemplate(1, RealtimeDelegationCardComponent_Conditional_1_ng_template_1_Template, 11, 5, "ng-template", 22)(2, RealtimeDelegationCardComponent_Conditional_1_ng_template_2_Template, 3, 1, "ng-template", 23)(3, RealtimeDelegationCardComponent_Conditional_1_ng_template_3_Template, 7, 2, "ng-template", 24);
197
244
  i0.ɵɵelementEnd();
198
245
  } if (rf & 2) {
199
- const ctx_r2 = i0.ɵɵnextContext();
200
- i0.ɵɵclassProp("done-accordion--failed", !ctx_r2.Card.Success);
246
+ const ctx_r0 = i0.ɵɵnextContext();
247
+ i0.ɵɵclassProp("done-accordion--failed", !ctx_r0.Card.Success);
201
248
  i0.ɵɵproperty("FlushBody", true);
202
- i0.ɵɵtwoWayProperty("Expanded", ctx_r2.Expanded);
249
+ i0.ɵɵtwoWayProperty("Expanded", ctx_r0.Expanded);
203
250
  } }
204
251
  /**
205
252
  * Renders a single delegation in the live session thread:
@@ -239,18 +286,18 @@ export class RealtimeDelegationCardComponent {
239
286
  CancelRequested = new EventEmitter();
240
287
  /** Whether the done chip is expanded inline to show the full result text. */
241
288
  Expanded = false;
242
- /** The artifacts this (done) delegation produced (empty array while running / when none). */
289
+ /** The artifacts this (done) delegation produced (empty array while running / when none). Suppressed for direct actions. */
243
290
  get Artifacts() {
244
- return this.Card.Done && this.Card.Artifacts ? this.Card.Artifacts : [];
291
+ return this.Card.Done && this.Card.Kind !== 'action' && this.Card.Artifacts ? this.Card.Artifacts : [];
245
292
  }
246
293
  /** Emits the open-artifact request for one of this card's produced artifacts. */
247
294
  OpenArtifact(event, artifact) {
248
295
  event.stopPropagation();
249
296
  this.OpenArtifactRequested.emit(artifact);
250
297
  }
251
- /** True when the dev "Open run" link should render (gear on + run id known). */
298
+ /** True when the dev "Open run" link should render (gear on + run id known). Suppressed for direct actions. */
252
299
  get ShowOpenRun() {
253
- return this.DevMode && !!this.Card.RunID;
300
+ return this.DevMode && this.Card.Kind !== 'action' && !!this.Card.RunID;
254
301
  }
255
302
  /** Emits the open-run request for this card's delegated run. */
256
303
  OpenRun(event) {
@@ -281,7 +328,9 @@ export class RealtimeDelegationCardComponent {
281
328
  get ResultText() {
282
329
  return this.Card.Result
283
330
  || this.Card.LatestMessage
284
- || `${this.Card.AgentName} completed the delegated work.`;
331
+ || (this.Card.Kind === 'action'
332
+ ? `${this.Card.AgentName} executed.`
333
+ : `${this.Card.AgentName} completed the delegated work.`);
285
334
  }
286
335
  /** One-line, ~120-char preview of the result for the collapsed chip. */
287
336
  get ResultPreview() {
@@ -291,19 +340,22 @@ export class RealtimeDelegationCardComponent {
291
340
  }
292
341
  /** Tooltip text for the provenance shield icon. */
293
342
  get ProvenanceTitle() {
343
+ if (this.Card.Kind === 'action') {
344
+ return `Result produced directly by the ${this.Card.AgentName} action.`;
345
+ }
294
346
  const run = this.Card.RunRef ? ` (run ${this.Card.RunRef})` : '';
295
347
  return `Result produced by ${this.Card.AgentName}'s own agent run${run} — not invented by the voice co-agent.`;
296
348
  }
297
349
  static ɵfac = function RealtimeDelegationCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RealtimeDelegationCardComponent)(); };
298
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RealtimeDelegationCardComponent, selectors: [["mj-realtime-delegation-card"]], inputs: { Card: "Card", DevMode: "DevMode" }, outputs: { OpenRunRequested: "OpenRunRequested", OpenArtifactRequested: "OpenArtifactRequested", CancelRequested: "CancelRequested" }, decls: 2, vars: 1, consts: [["role", "status", "aria-live", "polite", 1, "work-card"], ["Size", "sm", 1, "done-accordion", 3, "done-accordion--failed", "FlushBody", "Expanded"], [1, "work-card__head"], ["aria-hidden", "true", 1, "avatar"], [1, "work-card__title"], [1, "pill", "pill--running"], ["aria-hidden", "true", 1, "fa-solid", "fa-spinner", "spin"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link"], ["type", "button", "title", "Cancel this work", "aria-label", "Cancel this work", 1, "cancel-work", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-xmark"], [1, "work-card__step"], [1, "work-card__detail"], [1, "work-progress"], [1, "work-progress__fill", 3, "width"], [1, "work-progress__fill", "work-progress__fill--slide"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "work-progress__fill"], ["Size", "sm", 1, "done-accordion", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionActions", ""], ["mjAccordionBody", ""], ["aria-hidden", "true", 1, "fa-solid", "done-chip__mark", 3, "ngClass"], [1, "done-chip__agent"], ["aria-hidden", "true", 1, "done-chip__sep"], [1, "done-chip__preview"], [1, "via-badge"], ["aria-hidden", "true", 1, "fa-solid", "fa-shield-halved", 3, "title"], ["type", "button", 1, "artifact-link", 3, "title"], ["type", "button", 1, "artifact-link", 3, "click", "title"], ["aria-hidden", "true", 1, "fa-solid", "fa-file-lines"], ["aria-hidden", "true", 1, "fa-solid", "fa-arrow-right"], [1, "done-detail"], [1, "done-detail__body"], ["type", "button", 1, "artifact-link", "artifact-link--detail", 3, "title"], [1, "done-detail__meta"], ["type", "button", 1, "artifact-link", "artifact-link--detail", 3, "click", "title"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link", "dev-link--inline"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link", "dev-link--inline", 3, "click"]], template: function RealtimeDelegationCardComponent_Template(rf, ctx) { if (rf & 1) {
299
- i0.ɵɵconditionalCreate(0, RealtimeDelegationCardComponent_Conditional_0_Template, 18, 8, "div", 0)(1, RealtimeDelegationCardComponent_Conditional_1_Template, 4, 4, "mj-accordion-panel", 1);
350
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RealtimeDelegationCardComponent, selectors: [["mj-realtime-delegation-card"]], inputs: { Card: "Card", DevMode: "DevMode" }, outputs: { OpenRunRequested: "OpenRunRequested", OpenArtifactRequested: "OpenArtifactRequested", CancelRequested: "CancelRequested" }, decls: 2, vars: 1, consts: [["role", "status", "aria-live", "polite", 1, "work-card"], ["Size", "sm", 1, "done-accordion", 3, "done-accordion--failed", "FlushBody", "Expanded"], [1, "work-card__head"], [1, "pill", "pill--running"], ["aria-hidden", "true", 1, "fa-solid", "fa-spinner", "spin"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link"], ["type", "button", "title", "Cancel this work", "aria-label", "Cancel this work", 1, "cancel-work"], [1, "work-card__step"], [1, "work-card__detail"], [1, "work-progress"], [1, "work-progress__fill", 3, "width"], [1, "work-progress__fill", "work-progress__fill--slide"], ["aria-hidden", "true", 1, "avatar", "avatar--action"], [1, "fa-solid", "fa-wrench"], [1, "work-card__title"], ["aria-hidden", "true", 1, "avatar"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-arrow-up-right-from-square"], ["type", "button", "title", "Cancel this work", "aria-label", "Cancel this work", 1, "cancel-work", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-xmark"], [1, "work-progress__fill"], ["Size", "sm", 1, "done-accordion", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionActions", ""], ["mjAccordionBody", ""], ["aria-hidden", "true", 1, "fa-solid", "done-chip__mark", 3, "ngClass"], [1, "done-chip__agent"], ["aria-hidden", "true", 1, "done-chip__sep"], [1, "done-chip__preview"], [1, "via-badge"], ["aria-hidden", "true", 1, "fa-solid", "fa-shield-halved", 3, "title"], ["type", "button", 1, "artifact-link", 3, "title"], ["type", "button", 1, "artifact-link", 3, "click", "title"], ["aria-hidden", "true", 1, "fa-solid", "fa-file-lines"], ["aria-hidden", "true", 1, "fa-solid", "fa-arrow-right"], [1, "done-detail"], [1, "done-detail__body"], ["type", "button", 1, "artifact-link", "artifact-link--detail", 3, "title"], [1, "done-detail__meta"], ["type", "button", 1, "artifact-link", "artifact-link--detail", 3, "click", "title"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link", "dev-link--inline"], ["type", "button", "title", "Open the delegated agent run record", 1, "dev-link", "dev-link--inline", 3, "click"]], template: function RealtimeDelegationCardComponent_Template(rf, ctx) { if (rf & 1) {
351
+ i0.ɵɵconditionalCreate(0, RealtimeDelegationCardComponent_Conditional_0_Template, 15, 8, "div", 0)(1, RealtimeDelegationCardComponent_Conditional_1_Template, 4, 4, "mj-accordion-panel", 1);
300
352
  } if (rf & 2) {
301
353
  i0.ɵɵconditional(!ctx.Card.Done ? 0 : 1);
302
- } }, dependencies: [CommonModule, i1.NgClass, MJAccordionModule, i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i2.MJAccordionActionsDirective, i2.MJAccordionBodyDirective], styles: ["[_nghost-%COMP%] {\n display: block;\n \n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 12%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 40%, transparent);\n}\n\n.avatar[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: grid;\n place-items: center;\n font-weight: 600;\n font-size: 11px;\n flex-shrink: 0;\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-primary));\n border: 1px solid var(--sage-border);\n}\n\n\n.work-card[_ngcontent-%COMP%] {\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n border-radius: var(--mj-radius-lg, 12px);\n padding: 10px 14px;\n max-width: 560px;\n}\n.work-card__head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.work-card__title[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: 13px;\n color: var(--mj-text-primary);\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.work-card__step[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.work-card__detail[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding-left: 14px;\n margin-top: 3px;\n border-left: 2px solid var(--sage-border);\n}\n\n.pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n font-size: 10.5px;\n font-weight: 700;\n flex-shrink: 0;\n line-height: 1.5;\n}\n.pill--running[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n.spin[_ngcontent-%COMP%] { animation: _ngcontent-%COMP%_rt-spin 1.1s linear infinite; }\n\n\n.work-progress[_ngcontent-%COMP%] {\n height: 3px;\n border-radius: var(--mj-radius-full, 9999px);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n overflow: hidden;\n margin-top: 9px;\n position: relative;\n}\n.work-progress__fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: var(--mj-radius-full, 9999px);\n background: var(--sage);\n transition: width 240ms ease;\n}\n.work-progress__fill--slide[_ngcontent-%COMP%] {\n position: absolute;\n width: 35%;\n animation: _ngcontent-%COMP%_rt-slide 1.6s ease-in-out infinite;\n}\n\n\n\n.done-accordion[_ngcontent-%COMP%] {\n display: block;\n max-width: 560px;\n}\n\n\n\n\n.dev-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.dev-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.dev-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n.dev-link--inline[_ngcontent-%COMP%] {\n margin-left: 8px;\n}\n\n\n.artifact-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.artifact-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.artifact-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n.artifact-link--detail[_ngcontent-%COMP%] {\n margin-top: 8px;\n max-width: 100%;\n}\n.artifact-link--detail[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n\n\n.done-chip__mark[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-status-success);\n flex-shrink: 0;\n}\n.done-accordion--failed[_ngcontent-%COMP%] .done-chip__mark[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.done-chip__agent[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-text-primary);\n flex-shrink: 0;\n}\n.done-chip__sep[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n.done-chip__preview[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-secondary);\n}\n.via-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-color-violet-300, var(--mj-text-muted));\n flex-shrink: 0;\n}\n.via-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n cursor: help;\n}\n\n\n\n.done-detail[_ngcontent-%COMP%] {\n margin-top: 6px;\n margin-left: 12px;\n padding: 10px 14px;\n border-left: 2px solid var(--sage);\n background: var(--mj-bg-surface);\n border-radius: 0 var(--mj-radius-lg, 12px) var(--mj-radius-lg, 12px) 0;\n border-top: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-right: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n}\n.done-detail__body[_ngcontent-%COMP%] {\n font-size: 13px;\n line-height: 1.55;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n}\n.done-detail__meta[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.done-detail__meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n cursor: help;\n}\n\n@keyframes _ngcontent-%COMP%_rt-spin {\n to { transform: rotate(360deg); }\n}\n@keyframes _ngcontent-%COMP%_rt-slide {\n 0% { left: -35%; }\n 100% { left: 100%; }\n}\n\n\n.cancel-work[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid transparent;\n background: transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n}\n.cancel-work[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n border-color: var(--mj-status-error-border, var(--mj-status-error));\n background: color-mix(in srgb, var(--mj-status-error) 8%, transparent);\n}\n.cancel-work[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}"] });
354
+ } }, dependencies: [CommonModule, i1.NgClass, MJAccordionModule, i2.MJAccordionPanelComponent, i2.MJAccordionTitleDirective, i2.MJAccordionActionsDirective, i2.MJAccordionBodyDirective], styles: ["[_nghost-%COMP%] {\n display: block;\n \n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 12%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 40%, transparent);\n}\n\n.avatar[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: grid;\n place-items: center;\n font-weight: 600;\n font-size: 11px;\n flex-shrink: 0;\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-primary));\n border: 1px solid var(--sage-border);\n}\n.avatar--action[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n.work-card[_ngcontent-%COMP%] {\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n border-radius: var(--mj-radius-lg, 12px);\n padding: 10px 14px;\n max-width: 560px;\n}\n.work-card__head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.work-card__title[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: 13px;\n color: var(--mj-text-primary);\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.work-card__step[_ngcontent-%COMP%] {\n font-size: 12.5px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.work-card__detail[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding-left: 14px;\n margin-top: 3px;\n border-left: 2px solid var(--sage-border);\n}\n\n.pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n font-size: 10.5px;\n font-weight: 700;\n flex-shrink: 0;\n line-height: 1.5;\n}\n.pill--running[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n.spin[_ngcontent-%COMP%] { animation: _ngcontent-%COMP%_rt-spin 1.1s linear infinite; }\n\n\n.work-progress[_ngcontent-%COMP%] {\n height: 3px;\n border-radius: var(--mj-radius-full, 9999px);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n overflow: hidden;\n margin-top: 9px;\n position: relative;\n}\n.work-progress__fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: var(--mj-radius-full, 9999px);\n background: var(--sage);\n transition: width 240ms ease;\n}\n.work-progress__fill--slide[_ngcontent-%COMP%] {\n position: absolute;\n width: 35%;\n animation: _ngcontent-%COMP%_rt-slide 1.6s ease-in-out infinite;\n}\n\n\n\n.done-accordion[_ngcontent-%COMP%] {\n display: block;\n max-width: 560px;\n}\n\n\n\n\n.dev-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.dev-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.dev-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n.dev-link--inline[_ngcontent-%COMP%] {\n margin-left: 8px;\n}\n\n\n.artifact-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.artifact-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.artifact-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n.artifact-link--detail[_ngcontent-%COMP%] {\n margin-top: 8px;\n max-width: 100%;\n}\n.artifact-link--detail[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n\n\n.done-chip__mark[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-status-success);\n flex-shrink: 0;\n}\n.done-accordion--failed[_ngcontent-%COMP%] .done-chip__mark[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.done-chip__agent[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-text-primary);\n flex-shrink: 0;\n}\n.done-chip__sep[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n.done-chip__preview[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-secondary);\n}\n.via-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-color-violet-300, var(--mj-text-muted));\n flex-shrink: 0;\n}\n.via-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n cursor: help;\n}\n\n\n\n.done-detail[_ngcontent-%COMP%] {\n margin-top: 6px;\n margin-left: 12px;\n padding: 10px 14px;\n border-left: 2px solid var(--sage);\n background: var(--mj-bg-surface);\n border-radius: 0 var(--mj-radius-lg, 12px) var(--mj-radius-lg, 12px) 0;\n border-top: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-right: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n}\n.done-detail__body[_ngcontent-%COMP%] {\n font-size: 13px;\n line-height: 1.55;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n}\n.done-detail__meta[_ngcontent-%COMP%] {\n margin-top: 8px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.done-detail__meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n cursor: help;\n}\n\n@keyframes _ngcontent-%COMP%_rt-spin {\n to { transform: rotate(360deg); }\n}\n@keyframes _ngcontent-%COMP%_rt-slide {\n 0% { left: -35%; }\n 100% { left: 100%; }\n}\n\n\n.cancel-work[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid transparent;\n background: transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n}\n.cancel-work[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n border-color: var(--mj-status-error-border, var(--mj-status-error));\n background: color-mix(in srgb, var(--mj-status-error) 8%, transparent);\n}\n.cancel-work[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}"] });
303
355
  }
304
356
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RealtimeDelegationCardComponent, [{
305
357
  type: Component,
306
- args: [{ standalone: true, selector: 'mj-realtime-delegation-card', imports: [CommonModule, MJAccordionModule], template: "@if (!Card.Done) {\n <!-- WORKING \u2014 compact live card -->\n <div class=\"work-card\" role=\"status\" aria-live=\"polite\">\n <div class=\"work-card__head\">\n <div class=\"avatar\" aria-hidden=\"true\">{{ Card.AgentName.charAt(0) }}</div>\n <div class=\"work-card__title\">{{ Card.AgentName }} is working\u2026</div>\n <span class=\"pill pill--running\">\n <i class=\"fa-solid fa-spinner spin\" aria-hidden=\"true\"></i> Running\n </span>\n @if (ShowOpenRun) {\n <button type=\"button\" class=\"dev-link\" (click)=\"OpenRun($event)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n <button type=\"button\" class=\"cancel-work\" (click)=\"CancelWork($event)\"\n title=\"Cancel this work\" aria-label=\"Cancel this work\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n <div class=\"work-card__step\">{{ StepLabel }}</div>\n @if (ShowDetailLine) {\n <div class=\"work-card__detail\">{{ Card.LatestMessage }}</div>\n }\n <div class=\"work-progress\" [class.work-progress--indeterminate]=\"Card.Percentage == null\">\n @if (Card.Percentage != null) {\n <div class=\"work-progress__fill\" [style.width.%]=\"Card.Percentage\"></div>\n } @else {\n <div class=\"work-progress__fill work-progress__fill--slide\"></div>\n }\n </div>\n </div>\n} @else {\n <!-- DONE / FAILED \u2014 collapsed single-line chip, expandable inline.\n Migrated from a bespoke done-chip button + chevron + @if(Expanded) detail to\n mj-accordion-panel: title = result chip (mark/agent/preview/via-badge),\n actions = artifact \"View\" + dev \"Open run\" chips, body = full result detail.\n Failed state is carried via .done-accordion--failed on the panel. -->\n <mj-accordion-panel class=\"done-accordion\" [class.done-accordion--failed]=\"!Card.Success\"\n Size=\"sm\" [FlushBody]=\"true\" [(Expanded)]=\"Expanded\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid done-chip__mark\" [ngClass]=\"Card.Success ? 'fa-check' : 'fa-xmark'\" aria-hidden=\"true\"></i>\n <span class=\"done-chip__agent\">{{ Card.AgentName }}</span>\n <span class=\"done-chip__sep\" aria-hidden=\"true\">\u00B7</span>\n <span class=\"done-chip__preview\">{{ ResultPreview }}</span>\n <span class=\"via-badge\">\n <i class=\"fa-solid fa-shield-halved\" [title]=\"ProvenanceTitle\" aria-hidden=\"true\"></i>\n via {{ Card.AgentName }}\n </span>\n </ng-template>\n <ng-template mjAccordionActions>\n @for (artifact of Artifacts; track artifact.ArtifactVersionID) {\n <button type=\"button\" class=\"artifact-link\" (click)=\"OpenArtifact($event, artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>View</span>\n <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowOpenRun) {\n <button type=\"button\" class=\"dev-link\" (click)=\"OpenRun($event)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"done-detail\">\n <div class=\"done-detail__body\">{{ ResultText }}</div>\n @for (artifact of Artifacts; track artifact.ArtifactVersionID) {\n <button type=\"button\" class=\"artifact-link artifact-link--detail\" (click)=\"OpenArtifact($event, artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>{{ artifact.Name }}</span>\n <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (Card.RunRef) {\n <div class=\"done-detail__meta\">\n <i class=\"fa-solid fa-shield-halved\" [title]=\"ProvenanceTitle\" aria-hidden=\"true\"></i>\n via {{ Card.AgentName }} \u00B7 run {{ Card.RunRef }}\n @if (ShowOpenRun) {\n <button type=\"button\" class=\"dev-link dev-link--inline\" (click)=\"OpenRun($event)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n}\n", styles: [":host {\n display: block;\n /* sage / delegated-agent accent (distinct from the co-agent brand blue) */\n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 12%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 40%, transparent);\n}\n\n.avatar {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: grid;\n place-items: center;\n font-weight: 600;\n font-size: 11px;\n flex-shrink: 0;\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-primary));\n border: 1px solid var(--sage-border);\n}\n\n/* ---------- Working card (compact) ---------- */\n.work-card {\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n border-radius: var(--mj-radius-lg, 12px);\n padding: 10px 14px;\n max-width: 560px;\n}\n.work-card__head {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.work-card__title {\n font-weight: 700;\n font-size: 13px;\n color: var(--mj-text-primary);\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.work-card__step {\n font-size: 12.5px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.work-card__detail {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding-left: 14px;\n margin-top: 3px;\n border-left: 2px solid var(--sage-border);\n}\n\n.pill {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n font-size: 10.5px;\n font-weight: 700;\n flex-shrink: 0;\n line-height: 1.5;\n}\n.pill--running {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.pill i { font-size: 9px; }\n.spin { animation: rt-spin 1.1s linear infinite; }\n\n/* Thin progress bar \u2014 determinate (server %) or indeterminate slide */\n.work-progress {\n height: 3px;\n border-radius: var(--mj-radius-full, 9999px);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n overflow: hidden;\n margin-top: 9px;\n position: relative;\n}\n.work-progress__fill {\n height: 100%;\n border-radius: var(--mj-radius-full, 9999px);\n background: var(--sage);\n transition: width 240ms ease;\n}\n.work-progress__fill--slide {\n position: absolute;\n width: 35%;\n animation: rt-slide 1.6s ease-in-out infinite;\n}\n\n/* ---------- Done state (collapsed single line) ---------- */\n/* Width constraint preserved on the migrated accordion panel. */\n.done-accordion {\n display: block;\n max-width: 560px;\n}\n/* Removed bespoke .done / .done-row / .done-row .done-chip layout chrome \u2014 the header\n row layout is now owned by mj-accordion-panel (header-row + actions slot). */\n\n/* ---------- Developer link (gear-gated \"Open run\") ---------- */\n.dev-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.dev-link:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.dev-link i {\n font-size: 9px;\n}\n.dev-link--inline {\n margin-left: 8px;\n}\n\n/* ---------- \"View \u2192\" artifact chip (focuses the artifact's surface tab) ---------- */\n.artifact-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.artifact-link:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.artifact-link i {\n font-size: 9px;\n}\n.artifact-link--detail {\n margin-top: 8px;\n max-width: 100%;\n}\n.artifact-link--detail span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* Removed bespoke .done-chip button chrome (background/border/radius/hover) \u2014 the\n clickable header is now the mj-accordion-panel toggle. The chip's inner content\n styling (mark/agent/sep/preview/via-badge) is retained as accordion title content. */\n.done-chip__mark {\n font-size: 11px;\n color: var(--mj-status-success);\n flex-shrink: 0;\n}\n.done-accordion--failed .done-chip__mark {\n color: var(--mj-status-error);\n}\n.done-chip__agent {\n font-weight: 700;\n color: var(--mj-text-primary);\n flex-shrink: 0;\n}\n.done-chip__sep {\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n.done-chip__preview {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-secondary);\n}\n.via-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-color-violet-300, var(--mj-text-muted));\n flex-shrink: 0;\n}\n.via-badge i {\n font-size: 9px;\n cursor: help;\n}\n/* Removed .done-chip__chev \u2014 mj-accordion-panel provides its own chevron. */\n\n/* ---------- Expanded result detail ---------- */\n.done-detail {\n margin-top: 6px;\n margin-left: 12px;\n padding: 10px 14px;\n border-left: 2px solid var(--sage);\n background: var(--mj-bg-surface);\n border-radius: 0 var(--mj-radius-lg, 12px) var(--mj-radius-lg, 12px) 0;\n border-top: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-right: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n}\n.done-detail__body {\n font-size: 13px;\n line-height: 1.55;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n}\n.done-detail__meta {\n margin-top: 8px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.done-detail__meta i {\n cursor: help;\n}\n\n@keyframes rt-spin {\n to { transform: rotate(360deg); }\n}\n@keyframes rt-slide {\n 0% { left: -35%; }\n 100% { left: 100%; }\n}\n\n/* ---------- \u2715 cancel affordance on the WORKING card (explicit user cancel) ---------- */\n.cancel-work {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid transparent;\n background: transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n}\n.cancel-work:hover {\n color: var(--mj-status-error);\n border-color: var(--mj-status-error-border, var(--mj-status-error));\n background: color-mix(in srgb, var(--mj-status-error) 8%, transparent);\n}\n.cancel-work i {\n font-size: 11px;\n}\n"] }]
358
+ args: [{ standalone: true, selector: 'mj-realtime-delegation-card', imports: [CommonModule, MJAccordionModule], template: "@if (!Card.Done) {\n <!-- WORKING \u2014 compact live card -->\n <div class=\"work-card\" role=\"status\" aria-live=\"polite\">\n <div class=\"work-card__head\">\n @if (Card.Kind === 'action') {\n <div class=\"avatar avatar--action\" aria-hidden=\"true\"><i class=\"fa-solid fa-wrench\"></i></div>\n <div class=\"work-card__title\">{{ Card.AgentName }}</div>\n } @else {\n <div class=\"avatar\" aria-hidden=\"true\">{{ Card.AgentName.charAt(0) }}</div>\n <div class=\"work-card__title\">{{ Card.AgentName }} is working\u2026</div>\n }\n <span class=\"pill pill--running\">\n <i class=\"fa-solid fa-spinner spin\" aria-hidden=\"true\"></i> Running\n </span>\n @if (ShowOpenRun) {\n <button type=\"button\" class=\"dev-link\" (click)=\"OpenRun($event)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n @if (Card.Kind !== 'action') {\n <button type=\"button\" class=\"cancel-work\" (click)=\"CancelWork($event)\"\n title=\"Cancel this work\" aria-label=\"Cancel this work\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n <div class=\"work-card__step\">{{ StepLabel }}</div>\n @if (ShowDetailLine) {\n <div class=\"work-card__detail\">{{ Card.LatestMessage }}</div>\n }\n <div class=\"work-progress\" [class.work-progress--indeterminate]=\"Card.Percentage == null\">\n @if (Card.Percentage != null) {\n <div class=\"work-progress__fill\" [style.width.%]=\"Card.Percentage\"></div>\n } @else {\n <div class=\"work-progress__fill work-progress__fill--slide\"></div>\n }\n </div>\n </div>\n} @else {\n <!-- DONE / FAILED \u2014 collapsed single-line chip, expandable inline.\n Migrated from a bespoke done-chip button + chevron + @if(Expanded) detail to\n mj-accordion-panel: title = result chip (mark/agent/preview/via-badge),\n actions = artifact \"View\" + dev \"Open run\" chips, body = full result detail.\n Failed state is carried via .done-accordion--failed on the panel. -->\n <mj-accordion-panel class=\"done-accordion\" [class.done-accordion--failed]=\"!Card.Success\"\n Size=\"sm\" [FlushBody]=\"true\" [(Expanded)]=\"Expanded\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid done-chip__mark\" [ngClass]=\"Card.Success ? 'fa-check' : 'fa-xmark'\" aria-hidden=\"true\"></i>\n <span class=\"done-chip__agent\">{{ Card.AgentName }}</span>\n <span class=\"done-chip__sep\" aria-hidden=\"true\">\u00B7</span>\n <span class=\"done-chip__preview\">{{ ResultPreview }}</span>\n <span class=\"via-badge\">\n <i class=\"fa-solid fa-shield-halved\" [title]=\"ProvenanceTitle\" aria-hidden=\"true\"></i>\n @if (Card.Kind === 'action') {\n tool\n } @else {\n via {{ Card.AgentName }}\n }\n </span>\n </ng-template>\n <ng-template mjAccordionActions>\n @for (artifact of Artifacts; track artifact.ArtifactVersionID) {\n <button type=\"button\" class=\"artifact-link\" (click)=\"OpenArtifact($event, artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>View</span>\n <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowOpenRun) {\n <button type=\"button\" class=\"dev-link\" (click)=\"OpenRun($event)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"done-detail\">\n <div class=\"done-detail__body\">{{ ResultText }}</div>\n @for (artifact of Artifacts; track artifact.ArtifactVersionID) {\n <button type=\"button\" class=\"artifact-link artifact-link--detail\" (click)=\"OpenArtifact($event, artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>{{ artifact.Name }}</span>\n <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (Card.Kind === 'action') {\n <div class=\"done-detail__meta\">\n <i class=\"fa-solid fa-shield-halved\" [title]=\"ProvenanceTitle\" aria-hidden=\"true\"></i>\n Direct action \u00B7 {{ Card.AgentName }}\n </div>\n } @else if (Card.RunRef) {\n <div class=\"done-detail__meta\">\n <i class=\"fa-solid fa-shield-halved\" [title]=\"ProvenanceTitle\" aria-hidden=\"true\"></i>\n via {{ Card.AgentName }} \u00B7 run {{ Card.RunRef }}\n @if (ShowOpenRun) {\n <button type=\"button\" class=\"dev-link dev-link--inline\" (click)=\"OpenRun($event)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n}\n", styles: [":host {\n display: block;\n /* sage / delegated-agent accent (distinct from the co-agent brand blue) */\n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 12%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 40%, transparent);\n}\n\n.avatar {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n display: grid;\n place-items: center;\n font-weight: 600;\n font-size: 11px;\n flex-shrink: 0;\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-primary));\n border: 1px solid var(--sage-border);\n}\n.avatar--action i {\n font-size: 10px;\n}\n\n/* ---------- Working card (compact) ---------- */\n.work-card {\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n border-radius: var(--mj-radius-lg, 12px);\n padding: 10px 14px;\n max-width: 560px;\n}\n.work-card__head {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n.work-card__title {\n font-weight: 700;\n font-size: 13px;\n color: var(--mj-text-primary);\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.work-card__step {\n font-size: 12.5px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.work-card__detail {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding-left: 14px;\n margin-top: 3px;\n border-left: 2px solid var(--sage-border);\n}\n\n.pill {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n font-size: 10.5px;\n font-weight: 700;\n flex-shrink: 0;\n line-height: 1.5;\n}\n.pill--running {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.pill i { font-size: 9px; }\n.spin { animation: rt-spin 1.1s linear infinite; }\n\n/* Thin progress bar \u2014 determinate (server %) or indeterminate slide */\n.work-progress {\n height: 3px;\n border-radius: var(--mj-radius-full, 9999px);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n overflow: hidden;\n margin-top: 9px;\n position: relative;\n}\n.work-progress__fill {\n height: 100%;\n border-radius: var(--mj-radius-full, 9999px);\n background: var(--sage);\n transition: width 240ms ease;\n}\n.work-progress__fill--slide {\n position: absolute;\n width: 35%;\n animation: rt-slide 1.6s ease-in-out infinite;\n}\n\n/* ---------- Done state (collapsed single line) ---------- */\n/* Width constraint preserved on the migrated accordion panel. */\n.done-accordion {\n display: block;\n max-width: 560px;\n}\n/* Removed bespoke .done / .done-row / .done-row .done-chip layout chrome \u2014 the header\n row layout is now owned by mj-accordion-panel (header-row + actions slot). */\n\n/* ---------- Developer link (gear-gated \"Open run\") ---------- */\n.dev-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.dev-link:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.dev-link i {\n font-size: 9px;\n}\n.dev-link--inline {\n margin-left: 8px;\n}\n\n/* ---------- \"View \u2192\" artifact chip (focuses the artifact's surface tab) ---------- */\n.artifact-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10.5px;\n font-weight: 700;\n white-space: nowrap;\n flex-shrink: 0;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.artifact-link:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.artifact-link i {\n font-size: 9px;\n}\n.artifact-link--detail {\n margin-top: 8px;\n max-width: 100%;\n}\n.artifact-link--detail span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* Removed bespoke .done-chip button chrome (background/border/radius/hover) \u2014 the\n clickable header is now the mj-accordion-panel toggle. The chip's inner content\n styling (mark/agent/sep/preview/via-badge) is retained as accordion title content. */\n.done-chip__mark {\n font-size: 11px;\n color: var(--mj-status-success);\n flex-shrink: 0;\n}\n.done-accordion--failed .done-chip__mark {\n color: var(--mj-status-error);\n}\n.done-chip__agent {\n font-weight: 700;\n color: var(--mj-text-primary);\n flex-shrink: 0;\n}\n.done-chip__sep {\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n.done-chip__preview {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--mj-text-secondary);\n}\n.via-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-color-violet-300, var(--mj-text-muted));\n flex-shrink: 0;\n}\n.via-badge i {\n font-size: 9px;\n cursor: help;\n}\n/* Removed .done-chip__chev \u2014 mj-accordion-panel provides its own chevron. */\n\n/* ---------- Expanded result detail ---------- */\n.done-detail {\n margin-top: 6px;\n margin-left: 12px;\n padding: 10px 14px;\n border-left: 2px solid var(--sage);\n background: var(--mj-bg-surface);\n border-radius: 0 var(--mj-radius-lg, 12px) var(--mj-radius-lg, 12px) 0;\n border-top: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-right: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n}\n.done-detail__body {\n font-size: 13px;\n line-height: 1.55;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n}\n.done-detail__meta {\n margin-top: 8px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.done-detail__meta i {\n cursor: help;\n}\n\n@keyframes rt-spin {\n to { transform: rotate(360deg); }\n}\n@keyframes rt-slide {\n 0% { left: -35%; }\n 100% { left: 100%; }\n}\n\n/* ---------- \u2715 cancel affordance on the WORKING card (explicit user cancel) ---------- */\n.cancel-work {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid transparent;\n background: transparent;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n}\n.cancel-work:hover {\n color: var(--mj-status-error);\n border-color: var(--mj-status-error-border, var(--mj-status-error));\n background: color-mix(in srgb, var(--mj-status-error) 8%, transparent);\n}\n.cancel-work i {\n font-size: 11px;\n}\n"] }]
307
359
  }], null, { Card: [{
308
360
  type: Input,
309
361
  args: [{ required: true }]