@mstar-harness/dsh 3.8.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +2 -2
- package/README.md +126 -188
- package/README.zh.md +13 -11
- package/bundle/README.md +83 -171
- package/dist/client/index.d.ts +17 -8
- package/dist/client/panel/MstarPanelTitle.d.ts +13 -0
- package/dist/client/panel/PanelView.d.ts +56 -52
- package/dist/client/panel/TabNav.d.ts +17 -14
- package/dist/client/panel/definition.d.ts +23 -0
- package/dist/client/panel/graph/project-graph.d.ts +9 -51
- package/dist/client/panel/graph/schema.d.ts +1 -2
- package/dist/client/panel/locale.d.ts +1 -1
- package/dist/client/panel/mstar-glyph.d.ts +22 -0
- package/dist/client/panel/pages/AgentListPage.d.ts +71 -0
- package/dist/client/panel/pages/EventLogPage.d.ts +7 -4
- package/dist/client/panel/pages/IterationInfoSection.d.ts +16 -13
- package/dist/client/panel/pages/IterationTaskPage.d.ts +13 -14
- package/dist/client/panel/panel-store.d.ts +28 -0
- package/dist/client/panel/sidebar.d.ts +10 -5
- package/dist/client/panel/use-mstar-engine-status.d.ts +11 -10
- package/dist/client/panel/zones/Legend.d.ts +5 -3
- package/dist/client/panel/zones/TaskBoard.d.ts +13 -9
- package/dist/client.js +697 -1199
- package/dist/gates/catalog.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/types.d.ts +14 -7
- package/harness-skills/mstar-host/references/dsh.md +91 -225
- package/package.json +65 -63
- package/dist/client/panel/pages/AgentCanvasPage.d.ts +0 -345
package/dist/client.js
CHANGED
|
@@ -72,6 +72,41 @@ __export(exports_client, {
|
|
|
72
72
|
});
|
|
73
73
|
module.exports = __toCommonJS(exports_client);
|
|
74
74
|
|
|
75
|
+
// src/client/panel/mstar-glyph.tsx
|
|
76
|
+
var jsx_runtime = require("react/jsx-runtime");
|
|
77
|
+
function MstarGlyph({ size = 16, className }) {
|
|
78
|
+
return /* @__PURE__ */ jsx_runtime.jsx("svg", {
|
|
79
|
+
className,
|
|
80
|
+
width: size,
|
|
81
|
+
height: size,
|
|
82
|
+
viewBox: "0 0 512 512",
|
|
83
|
+
"aria-hidden": "true",
|
|
84
|
+
children: /* @__PURE__ */ jsx_runtime.jsx("path", {
|
|
85
|
+
fill: "currentColor",
|
|
86
|
+
d: "M256 72l36 140 140 36-140 36-36 156-36-156-140-36 140-36 36-140z"
|
|
87
|
+
})
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// src/client/panel/definition.ts
|
|
92
|
+
var MSTAR_PANEL_ID = "@mstar-harness/dsh";
|
|
93
|
+
var MSTAR_PANEL_KIND = "mstar-workflow";
|
|
94
|
+
var MSTAR_GUIDE_ORDER = 20;
|
|
95
|
+
function mstarPanelDefinition(t) {
|
|
96
|
+
const title = () => t("view.mstar-workflow");
|
|
97
|
+
return {
|
|
98
|
+
id: MSTAR_PANEL_ID,
|
|
99
|
+
kind: MSTAR_PANEL_KIND,
|
|
100
|
+
title,
|
|
101
|
+
guide: [{
|
|
102
|
+
order: MSTAR_GUIDE_ORDER,
|
|
103
|
+
title,
|
|
104
|
+
description: () => t("guide.description"),
|
|
105
|
+
icon: MstarGlyph
|
|
106
|
+
}]
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
75
110
|
// src/engine-status-wire.ts
|
|
76
111
|
var ENGINE_STATUS_CHANNEL = "/api";
|
|
77
112
|
var ENGINE_STATUS_ENDPOINT = "mstar/engineStatus";
|
|
@@ -288,10 +323,28 @@ class MstarEngineStatusClient {
|
|
|
288
323
|
}
|
|
289
324
|
}
|
|
290
325
|
|
|
326
|
+
// src/client/panel/MstarPanelTitle.tsx
|
|
327
|
+
var jsx_runtime2 = require("react/jsx-runtime");
|
|
328
|
+
function MstarPanelTitle({ useTabInfo }) {
|
|
329
|
+
const { tab } = useTabInfo();
|
|
330
|
+
return /* @__PURE__ */ jsx_runtime2.jsxs("span", {
|
|
331
|
+
style: { display: "inline-flex", alignItems: "center", gap: "var(--mstar-space-1, 4px)" },
|
|
332
|
+
children: [
|
|
333
|
+
/* @__PURE__ */ jsx_runtime2.jsx(MstarGlyph, {
|
|
334
|
+
size: 14
|
|
335
|
+
}),
|
|
336
|
+
/* @__PURE__ */ jsx_runtime2.jsx("span", {
|
|
337
|
+
children: tab.title
|
|
338
|
+
})
|
|
339
|
+
]
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
|
|
291
343
|
// src/client/panel/locale.ts
|
|
292
344
|
var NS = "mstar-panel";
|
|
293
345
|
var zh = {
|
|
294
|
-
"view.mstar-workflow": "
|
|
346
|
+
"view.mstar-workflow": "启明星工作流",
|
|
347
|
+
"guide.description": "查看工作区状态、计划与迭代进度",
|
|
295
348
|
"tab.tasks": "任务迭代",
|
|
296
349
|
"tab.agents": "代理执行",
|
|
297
350
|
"tab.events": "事件记录",
|
|
@@ -414,7 +467,8 @@ var zh = {
|
|
|
414
467
|
"freshness.refresh-note": "该会话已存储的快照——不是实时值"
|
|
415
468
|
};
|
|
416
469
|
var en = {
|
|
417
|
-
"view.mstar-workflow": "
|
|
470
|
+
"view.mstar-workflow": "Morning Star Workflow",
|
|
471
|
+
"guide.description": "Workspace state, plans, and iteration progress",
|
|
418
472
|
"tab.tasks": "Task Iteration",
|
|
419
473
|
"tab.agents": "Agent Run",
|
|
420
474
|
"tab.events": "Event Log",
|
|
@@ -537,8 +591,21 @@ var en = {
|
|
|
537
591
|
"freshness.refresh-note": "the stored snapshot for this session — never a live value"
|
|
538
592
|
};
|
|
539
593
|
|
|
594
|
+
// src/client/panel/panel-store.ts
|
|
595
|
+
var import_dsh_client_store = require("@deepseek-ai/dsh-client-store");
|
|
596
|
+
function createPanelStore() {
|
|
597
|
+
return import_dsh_client_store.defineStore({
|
|
598
|
+
init: () => ({ byTab: {} }),
|
|
599
|
+
actions: {
|
|
600
|
+
select(d, tabId, section) {
|
|
601
|
+
d.byTab[tabId] = section;
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
});
|
|
605
|
+
}
|
|
606
|
+
|
|
540
607
|
// src/client/panel/PanelView.tsx
|
|
541
|
-
var
|
|
608
|
+
var React2 = __toESM(require("react"));
|
|
542
609
|
|
|
543
610
|
// src/client/panel/panel.module.css
|
|
544
611
|
var css = `
|
|
@@ -553,37 +620,74 @@ var css = `
|
|
|
553
620
|
}
|
|
554
621
|
|
|
555
622
|
|
|
556
|
-
.\\32 0fd0e45_root
|
|
623
|
+
.\\32 0fd0e45_root,
|
|
624
|
+
.f83e09fa_emptyRoot {
|
|
557
625
|
--mstar-space-1: 4px;
|
|
558
626
|
--mstar-space-2: 8px;
|
|
559
627
|
--mstar-space-3: 12px;
|
|
560
628
|
--mstar-space-4: 16px;
|
|
561
629
|
--mstar-space-5: 24px;
|
|
562
630
|
--mstar-space-6: 32px;
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
.\\32 0fd0e45_root {
|
|
634
|
+
display: flex;
|
|
635
|
+
flex-direction: column;
|
|
567
636
|
height: 100%;
|
|
568
637
|
min-height: 0;
|
|
569
638
|
width: 100%;
|
|
570
|
-
padding: 0;
|
|
571
|
-
|
|
572
|
-
padding-bottom: calc(var(--dsh-composer-height, 152px) + var(--mstar-space-3));
|
|
573
639
|
overflow: hidden;
|
|
640
|
+
container-type: inline-size;
|
|
574
641
|
}
|
|
575
642
|
|
|
576
643
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
644
|
+
|
|
645
|
+
.\\31 843711c_groupGrid {
|
|
646
|
+
display: grid;
|
|
647
|
+
grid-template-columns: minmax(0, 1fr);
|
|
648
|
+
gap: var(--mstar-space-4);
|
|
580
649
|
}
|
|
581
650
|
|
|
582
651
|
|
|
583
|
-
|
|
584
|
-
|
|
652
|
+
|
|
653
|
+
@container (max-width: 480px) {
|
|
654
|
+
.dd4ec22c_scroll {
|
|
655
|
+
padding: var(--mstar-space-3);
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
.\\38 1fe4f58_meta {
|
|
659
|
+
padding: var(--mstar-space-3);
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
.\\31 843711c_groupGrid {
|
|
663
|
+
gap: var(--mstar-space-3);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
|
|
668
|
+
|
|
669
|
+
@container (min-width: 720px) {
|
|
670
|
+
.\\31 843711c_groupGrid {
|
|
671
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
.f83e09fa_emptyRoot {
|
|
677
|
+
display: flex;
|
|
678
|
+
align-items: center;
|
|
679
|
+
justify-content: center;
|
|
680
|
+
height: 100%;
|
|
585
681
|
min-height: 0;
|
|
586
682
|
width: 100%;
|
|
683
|
+
padding: var(--mstar-space-4);
|
|
684
|
+
overflow: hidden;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
.\\35 8245a20_noHarnessCard {
|
|
689
|
+
flex: 1 0 auto;
|
|
690
|
+
width: 100%;
|
|
587
691
|
max-width: 400px;
|
|
588
692
|
align-self: center;
|
|
589
693
|
display: flex;
|
|
@@ -618,50 +722,16 @@ var css = `
|
|
|
618
722
|
font: var(--dsw-font-xxxs-11);
|
|
619
723
|
}
|
|
620
724
|
|
|
621
|
-
@media (max-width: 860px) {
|
|
622
|
-
.\\32 0fd0e45_root {
|
|
623
|
-
grid-template-columns: 1fr;
|
|
624
|
-
grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
|
|
625
|
-
grid-template-areas:
|
|
626
|
-
'main'
|
|
627
|
-
'sidebar';
|
|
628
|
-
}
|
|
629
|
-
.c87acfc7_sidebar {
|
|
630
|
-
border-left: 0;
|
|
631
|
-
border-top: 1px solid var(--dsw-alias-border-l1);
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
.\\37 7aea5a6_iterationHeadSplit {
|
|
635
|
-
flex-direction: column;
|
|
636
|
-
}
|
|
637
|
-
.\\37 7aea5a6_iterationHeadSplit > .c3b8dcb0_iterationBranches {
|
|
638
|
-
flex: 0 1 auto;
|
|
639
|
-
max-width: none;
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
725
|
|
|
643
726
|
|
|
644
|
-
.
|
|
645
|
-
|
|
646
|
-
align-items: center;
|
|
647
|
-
justify-content: center;
|
|
648
|
-
height: 100%;
|
|
727
|
+
.dd4ec22c_scroll {
|
|
728
|
+
flex: 1 1 auto;
|
|
649
729
|
min-height: 0;
|
|
650
|
-
width: 100%;
|
|
651
|
-
padding: var(--mstar-space-4);
|
|
652
|
-
overflow: hidden;
|
|
653
|
-
}
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
.ea90e208_main {
|
|
658
|
-
grid-area: main;
|
|
659
730
|
display: flex;
|
|
660
731
|
flex-direction: column;
|
|
661
|
-
min-width: 0;
|
|
662
|
-
min-height: 0;
|
|
663
732
|
padding: var(--mstar-space-4);
|
|
664
|
-
overflow:
|
|
733
|
+
overflow-y: auto;
|
|
734
|
+
overflow-x: hidden;
|
|
665
735
|
}
|
|
666
736
|
|
|
667
737
|
|
|
@@ -670,7 +740,7 @@ var css = `
|
|
|
670
740
|
display: flex;
|
|
671
741
|
flex: none;
|
|
672
742
|
gap: var(--mstar-space-1);
|
|
673
|
-
padding:
|
|
743
|
+
padding: var(--mstar-space-1) var(--mstar-space-2);
|
|
674
744
|
margin: 0 0 var(--mstar-space-2);
|
|
675
745
|
border-bottom: 1px solid var(--dsw-alias-border-l1);
|
|
676
746
|
}
|
|
@@ -680,7 +750,7 @@ var css = `
|
|
|
680
750
|
appearance: none;
|
|
681
751
|
border: 0;
|
|
682
752
|
background: none;
|
|
683
|
-
padding: var(--mstar-space-
|
|
753
|
+
padding: var(--mstar-space-1) var(--mstar-space-2);
|
|
684
754
|
color: var(--dsw-alias-label-secondary);
|
|
685
755
|
font: var(--dsw-font-xxs-12);
|
|
686
756
|
cursor: pointer;
|
|
@@ -698,19 +768,10 @@ var css = `
|
|
|
698
768
|
}
|
|
699
769
|
|
|
700
770
|
|
|
701
|
-
.\\39 0bec3c2_content {
|
|
702
|
-
flex: 1;
|
|
703
|
-
min-height: 0;
|
|
704
|
-
display: flex;
|
|
705
|
-
flex-direction: column;
|
|
706
|
-
overflow: hidden;
|
|
707
|
-
}
|
|
708
|
-
|
|
709
771
|
|
|
710
772
|
|
|
711
773
|
.\\33 b1c4147_iterationPage {
|
|
712
|
-
flex: 1;
|
|
713
|
-
min-height: 0;
|
|
774
|
+
flex: 1 0 auto;
|
|
714
775
|
display: flex;
|
|
715
776
|
flex-direction: column;
|
|
716
777
|
gap: var(--mstar-space-3);
|
|
@@ -820,49 +881,39 @@ var css = `
|
|
|
820
881
|
|
|
821
882
|
.\\37 7aea5a6_iterationHeadSplit {
|
|
822
883
|
display: flex;
|
|
823
|
-
|
|
824
|
-
gap: var(--mstar-space-
|
|
884
|
+
flex-direction: column;
|
|
885
|
+
gap: var(--mstar-space-3);
|
|
825
886
|
min-width: 0;
|
|
826
887
|
}
|
|
827
888
|
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
.\\37 7aea5a6_iterationHeadSplit > .c3b8dcb0_iterationBranches {
|
|
831
|
-
flex: 0 1 260px;
|
|
832
|
-
max-width: 280px;
|
|
833
|
-
min-width: 0;
|
|
834
|
-
}
|
|
889
|
+
.\\37 7aea5a6_iterationHeadSplit > .c3b8dcb0_iterationBranches {
|
|
890
|
+
min-width: 0;
|
|
835
891
|
}
|
|
836
892
|
|
|
837
893
|
.\\37 7aea5a6_iterationHeadSplit > .c52f7b85_iterationStepsRow {
|
|
838
|
-
flex: 1 1 0;
|
|
839
894
|
min-width: 0;
|
|
840
895
|
}
|
|
841
896
|
|
|
842
897
|
|
|
843
898
|
.c52f7b85_iterationStepsRow {
|
|
844
899
|
display: flex;
|
|
900
|
+
flex-direction: column;
|
|
845
901
|
align-items: stretch;
|
|
846
|
-
gap: var(--mstar-space-
|
|
902
|
+
gap: var(--mstar-space-2);
|
|
847
903
|
margin: 0;
|
|
848
904
|
padding: 0;
|
|
849
905
|
list-style: none;
|
|
850
|
-
overflow-x: auto;
|
|
851
|
-
overscroll-behavior: contain;
|
|
852
906
|
}
|
|
853
907
|
|
|
854
908
|
.\\38 1013a9d_iterationStepItem {
|
|
855
|
-
flex: 1 1 0;
|
|
856
909
|
min-width: 0;
|
|
857
910
|
display: flex;
|
|
858
|
-
flex-direction: column;
|
|
859
911
|
align-items: center;
|
|
860
|
-
|
|
861
|
-
gap: var(--mstar-space-1);
|
|
862
|
-
text-align: center;
|
|
912
|
+
gap: var(--mstar-space-2);
|
|
863
913
|
}
|
|
864
914
|
|
|
865
915
|
.\\37 befde45_iterationStepBadge {
|
|
916
|
+
flex: none;
|
|
866
917
|
display: inline-flex;
|
|
867
918
|
align-items: center;
|
|
868
919
|
justify-content: center;
|
|
@@ -877,6 +928,7 @@ var css = `
|
|
|
877
928
|
}
|
|
878
929
|
|
|
879
930
|
.d6cd23a5_iterationStepPhase {
|
|
931
|
+
flex: 1 1 auto;
|
|
880
932
|
overflow-wrap: anywhere;
|
|
881
933
|
color: var(--dsw-alias-label-secondary);
|
|
882
934
|
font: var(--dsw-font-xxxs-11);
|
|
@@ -884,6 +936,7 @@ var css = `
|
|
|
884
936
|
|
|
885
937
|
|
|
886
938
|
.de293024_iterationStepChip {
|
|
939
|
+
flex: none;
|
|
887
940
|
display: inline-flex;
|
|
888
941
|
align-items: center;
|
|
889
942
|
padding: 0 var(--mstar-space-2);
|
|
@@ -933,6 +986,7 @@ var css = `
|
|
|
933
986
|
|
|
934
987
|
|
|
935
988
|
.afea5850_iterationVerdictSeat {
|
|
989
|
+
flex: none;
|
|
936
990
|
display: flex;
|
|
937
991
|
align-items: center;
|
|
938
992
|
justify-content: center;
|
|
@@ -1009,32 +1063,19 @@ var css = `
|
|
|
1009
1063
|
|
|
1010
1064
|
|
|
1011
1065
|
.\\38 7f7efbe_iterationTasks {
|
|
1012
|
-
flex: 1;
|
|
1013
|
-
min-height: 0;
|
|
1014
|
-
overflow-y: auto;
|
|
1015
|
-
overscroll-behavior: contain;
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
.c87acfc7_sidebar {
|
|
1021
|
-
grid-area: sidebar;
|
|
1022
1066
|
display: flex;
|
|
1023
1067
|
flex-direction: column;
|
|
1068
|
+
gap: var(--mstar-space-3);
|
|
1024
1069
|
min-width: 0;
|
|
1025
|
-
min-height: 0;
|
|
1026
|
-
border-left: 1px solid var(--dsw-alias-border-l1);
|
|
1027
1070
|
}
|
|
1028
1071
|
|
|
1029
1072
|
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
min-height: 0;
|
|
1033
|
-
overflow-y: auto;
|
|
1073
|
+
|
|
1074
|
+
.c87acfc7_sidebar {
|
|
1034
1075
|
display: flex;
|
|
1035
1076
|
flex-direction: column;
|
|
1036
|
-
gap: var(--mstar-space-
|
|
1037
|
-
|
|
1077
|
+
gap: var(--mstar-space-2);
|
|
1078
|
+
min-width: 0;
|
|
1038
1079
|
}
|
|
1039
1080
|
|
|
1040
1081
|
|
|
@@ -1271,7 +1312,7 @@ if (typeof document !== "undefined" && document.querySelector("style[data-plugin
|
|
|
1271
1312
|
tag.textContent = css;
|
|
1272
1313
|
document.head.appendChild(tag);
|
|
1273
1314
|
}
|
|
1274
|
-
var panel_module_default = { root: "20fd0e45_root", emptyRoot: "f83e09fa_emptyRoot",
|
|
1315
|
+
var panel_module_default = { root: "20fd0e45_root", emptyRoot: "f83e09fa_emptyRoot", groupGrid: "1843711c_groupGrid", scroll: "dd4ec22c_scroll", meta: "81fe4f58_meta", noHarnessCard: "58245a20_noHarnessCard", noHarnessIcon: "ffb65da7_noHarnessIcon", noHarnessTitle: "81e1817c_noHarnessTitle", noHarnessHint: "a2289da7_noHarnessHint", tabNav: "4bb38bc9_tabNav", tab: "98f72e4c_tab", tabActive: "59e199de_tabActive", iterationPage: "3b1c4147_iterationPage", iterationHead: "8a629a8e_iterationHead", iterationSummary: "2d1bee34_iterationSummary", iterationSummaryId: "17162a99_iterationSummaryId", iterationSummaryVerdict: "d3d74135_iterationSummaryVerdict", iterationSummaryStatus: "d9a886be_iterationSummaryStatus", iterationSummaryStatusMuted: "13bf2f41_iterationSummaryStatusMuted", iterationSummaryHint: "ede5708d_iterationSummaryHint", iterationHeadBody: "64d1da62_iterationHeadBody", iterationHeadSplit: "77aea5a6_iterationHeadSplit", iterationBranches: "c3b8dcb0_iterationBranches", iterationStepsRow: "c52f7b85_iterationStepsRow", iterationStepItem: "81013a9d_iterationStepItem", iterationStepBadge: "7befde45_iterationStepBadge", iterationStepPhase: "d6cd23a5_iterationStepPhase", iterationStepChip: "de293024_iterationStepChip", iterationVerdictSeat: "afea5850_iterationVerdictSeat", iterationVerdict: "ebe6bbcd_iterationVerdict", iterationBranchesTitle: "e6921da6_iterationBranchesTitle", iterationBranchList: "8a2cd65c_iterationBranchList", iterationBranchRow: "997b0230_iterationBranchRow", iterationBranchLabel: "6cafc032_iterationBranchLabel", iterationBranchValue: "cdcd06ed_iterationBranchValue", iterationTasks: "87f7efbe_iterationTasks", sidebar: "c87acfc7_sidebar", metaLine: "0fc275e2_metaLine", section: "fcdd0ccc_section", sectionTitle: "aded23ea_sectionTitle", subTitle: "b7190159_subTitle", defList: "26763614_defList", defTerm: "670df156_defTerm", defValue: "3f1b3a05_defValue", planList: "a129f16e_planList", residualList: "113e0aa2_residualList", leaseList: "33dfcc85_leaseList", violationList: "999efdc0_violationList", planId: "744bf63f_planId", leasePlan: "560663a6_leasePlan", leaseHolder: "a68a6d03_leaseHolder", leaseWorktree: "db027b44_leaseWorktree", findingSeverity: "1797fd51_findingSeverity", findingTitle: "c80b7bb0_findingTitle", findingPlan: "616667ad_findingPlan", violationCode: "e42c0bfd_violationCode", knowledgeCategories: "e2098247_knowledgeCategories", planStatus: "a3021d7c_planStatus", truncated: "1849d129_truncated", knowledge: "3eb5feeb_knowledge", direction: "df6dc76a_direction", selection: "4364e615_selection", selectionId: "0ae21b10_selectionId", selectionMeta: "5e43d3a8_selectionMeta", selectionWarning: "da64723f_selectionWarning", selectionCode: "ac988a64_selectionCode", empty: "18a7beee_empty", freshness: "c75c59b0_freshness" };
|
|
1275
1316
|
|
|
1276
1317
|
// src/client/panel/plan-sort.ts
|
|
1277
1318
|
var PLAN_CAP = 5;
|
|
@@ -1546,23 +1587,6 @@ function bucketOf(role) {
|
|
|
1546
1587
|
return "reviewer";
|
|
1547
1588
|
return null;
|
|
1548
1589
|
}
|
|
1549
|
-
function sddImplementColumnId(stages) {
|
|
1550
|
-
const s = stages.find((x) => x.stage === "sdd-implement");
|
|
1551
|
-
return s === undefined ? null : s.id;
|
|
1552
|
-
}
|
|
1553
|
-
function superviseEdges(stages, entries) {
|
|
1554
|
-
const columnId = sddImplementColumnId(stages);
|
|
1555
|
-
if (columnId === null)
|
|
1556
|
-
return [];
|
|
1557
|
-
const evidenced = entries.some((e) => e.view.kind === "dispatch" && bucketOf(e.view.role) !== null);
|
|
1558
|
-
return [{
|
|
1559
|
-
kind: "supervise",
|
|
1560
|
-
source: `${columnId}:implementor`,
|
|
1561
|
-
target: `${columnId}:reviewer`,
|
|
1562
|
-
entityKey: null,
|
|
1563
|
-
evidenced
|
|
1564
|
-
}];
|
|
1565
|
-
}
|
|
1566
1590
|
function entityKeyOf(role) {
|
|
1567
1591
|
if (role !== "" && KNOWN_AGENTS.some((a) => a.id === role))
|
|
1568
1592
|
return role;
|
|
@@ -1637,37 +1661,6 @@ function aggregateEntities(entries, pairStatus, currentStep) {
|
|
|
1637
1661
|
idle: false
|
|
1638
1662
|
}));
|
|
1639
1663
|
}
|
|
1640
|
-
function actualEdges(entries) {
|
|
1641
|
-
const byPlan = new Map;
|
|
1642
|
-
entries.forEach((e, idx) => {
|
|
1643
|
-
const v = e.view;
|
|
1644
|
-
if (v.kind !== "dispatch")
|
|
1645
|
-
return;
|
|
1646
|
-
if (v.planId === null)
|
|
1647
|
-
return;
|
|
1648
|
-
const key = entityKeyOf(v.role);
|
|
1649
|
-
const list = byPlan.get(v.planId);
|
|
1650
|
-
if (list === undefined)
|
|
1651
|
-
byPlan.set(v.planId, [{ key, ts: v.ts, idx }]);
|
|
1652
|
-
else
|
|
1653
|
-
list.push({ key, ts: v.ts, idx });
|
|
1654
|
-
});
|
|
1655
|
-
const pairEdges = new Map;
|
|
1656
|
-
for (const planId of Array.from(byPlan.keys()).sort()) {
|
|
1657
|
-
const rows = byPlan.get(planId).slice().sort((a, b) => a.ts - b.ts || (a.key < b.key ? -1 : a.key > b.key ? 1 : 0) || a.idx - b.idx);
|
|
1658
|
-
for (let i = 0;i + 1 < rows.length; i++) {
|
|
1659
|
-
if (rows[i].key === rows[i + 1].key)
|
|
1660
|
-
continue;
|
|
1661
|
-
const a = rows[i].key;
|
|
1662
|
-
const b = rows[i + 1].key;
|
|
1663
|
-
if (a === GENERAL_BUCKET || b === GENERAL_BUCKET)
|
|
1664
|
-
continue;
|
|
1665
|
-
const pairKey = a < b ? `${a}|${b}` : `${b}|${a}`;
|
|
1666
|
-
pairEdges.set(pairKey, { kind: "actual", source: a, target: b, entityKey: null });
|
|
1667
|
-
}
|
|
1668
|
-
}
|
|
1669
|
-
return Array.from(pairEdges.values());
|
|
1670
|
-
}
|
|
1671
1664
|
function idleEntities(evidencedRoles, litKeys, currentStep) {
|
|
1672
1665
|
const out = [];
|
|
1673
1666
|
for (const known of KNOWN_AGENTS) {
|
|
@@ -1742,7 +1735,6 @@ function projectAgents(source, currentStep) {
|
|
|
1742
1735
|
empty: false,
|
|
1743
1736
|
note: null,
|
|
1744
1737
|
entities: idleEntities(new Set, new Set, currentStep),
|
|
1745
|
-
edges: superviseEdges(stages, []),
|
|
1746
1738
|
executing: 0,
|
|
1747
1739
|
pending: 0,
|
|
1748
1740
|
activePlanId,
|
|
@@ -1784,13 +1776,9 @@ function projectAgents(source, currentStep) {
|
|
|
1784
1776
|
const lit = aggregateEntities(filtered, pairStatus, currentStep);
|
|
1785
1777
|
const litKeys = new Set(lit.map((e) => e.key));
|
|
1786
1778
|
const entities = [...lit, ...idleEntities(evidencedRoles, litKeys, currentStep)];
|
|
1787
|
-
const edges = [
|
|
1788
|
-
...actualEdges(filtered),
|
|
1789
|
-
...superviseEdges(stages, entries)
|
|
1790
|
-
];
|
|
1791
1779
|
const executing = entities.filter((e) => e.status === "running").length;
|
|
1792
1780
|
const pending = stages.reduce((sum, s) => sum + (evidenced.has(s.id) ? 0 : s.roles.length), 0);
|
|
1793
|
-
return { stages, degraded: false, empty, note, entities,
|
|
1781
|
+
return { stages, degraded: false, empty, note, entities, executing, pending, activePlanId, activePlanCount };
|
|
1794
1782
|
}
|
|
1795
1783
|
var FLOW_EVENT_WINDOW = 50;
|
|
1796
1784
|
function roleStageIndex() {
|
|
@@ -1960,19 +1948,19 @@ function projectFlowEvents(source) {
|
|
|
1960
1948
|
}
|
|
1961
1949
|
|
|
1962
1950
|
// src/client/panel/panel-meta.tsx
|
|
1963
|
-
var
|
|
1951
|
+
var jsx_runtime3 = require("react/jsx-runtime");
|
|
1964
1952
|
function PanelMeta({ t, source }) {
|
|
1965
|
-
return /* @__PURE__ */
|
|
1953
|
+
return /* @__PURE__ */ jsx_runtime3.jsxs("footer", {
|
|
1966
1954
|
className: panel_module_default.meta,
|
|
1967
1955
|
"data-mstar-meta": true,
|
|
1968
1956
|
"data-mstar-watermark": true,
|
|
1969
1957
|
children: [
|
|
1970
|
-
/* @__PURE__ */
|
|
1958
|
+
/* @__PURE__ */ jsx_runtime3.jsx("p", {
|
|
1971
1959
|
className: panel_module_default.metaLine,
|
|
1972
1960
|
"data-mstar-meta-version": true,
|
|
1973
1961
|
children: t("watermark.version", { version: str(source.version) ?? t("panel.unknown") })
|
|
1974
1962
|
}),
|
|
1975
|
-
/* @__PURE__ */
|
|
1963
|
+
/* @__PURE__ */ jsx_runtime3.jsx("p", {
|
|
1976
1964
|
className: panel_module_default.metaLine,
|
|
1977
1965
|
"data-mstar-meta-harness": true,
|
|
1978
1966
|
children: t("watermark.harness", { dir: source.harnessDir ?? t("watermark.none") })
|
|
@@ -1982,7 +1970,7 @@ function PanelMeta({ t, source }) {
|
|
|
1982
1970
|
}
|
|
1983
1971
|
|
|
1984
1972
|
// src/client/panel/state-section.tsx
|
|
1985
|
-
var
|
|
1973
|
+
var jsx_runtime4 = require("react/jsx-runtime");
|
|
1986
1974
|
function enforcementLabel(t, enforcement) {
|
|
1987
1975
|
if (enforcement === null || enforcement === undefined || typeof enforcement !== "object") {
|
|
1988
1976
|
return t("panel.unknown");
|
|
@@ -2003,230 +1991,230 @@ function StateSection({ t, state, enforcement }) {
|
|
|
2003
1991
|
const leases = Array.isArray(state?.leases) ? state.leases : [];
|
|
2004
1992
|
const knowledge = state?.knowledge ?? null;
|
|
2005
1993
|
const selection = state?.selection;
|
|
2006
|
-
return /* @__PURE__ */
|
|
1994
|
+
return /* @__PURE__ */ jsx_runtime4.jsxs("section", {
|
|
2007
1995
|
className: panel_module_default.section,
|
|
2008
1996
|
"data-mstar-section": "state",
|
|
2009
1997
|
children: [
|
|
2010
|
-
/* @__PURE__ */
|
|
1998
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h2", {
|
|
2011
1999
|
className: panel_module_default.sectionTitle,
|
|
2012
2000
|
children: t("state.title")
|
|
2013
2001
|
}),
|
|
2014
|
-
/* @__PURE__ */
|
|
2002
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2015
2003
|
className: panel_module_default.subTitle,
|
|
2016
2004
|
children: t("state.selection")
|
|
2017
2005
|
}),
|
|
2018
|
-
selection?.kind === "active" ? /* @__PURE__ */
|
|
2006
|
+
selection?.kind === "active" ? /* @__PURE__ */ jsx_runtime4.jsxs("p", {
|
|
2019
2007
|
className: panel_module_default.selection,
|
|
2020
2008
|
"data-selection-kind": "active",
|
|
2021
2009
|
"data-selection-workflow": selection.workflowId,
|
|
2022
2010
|
children: [
|
|
2023
|
-
/* @__PURE__ */
|
|
2011
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2024
2012
|
className: panel_module_default.selectionId,
|
|
2025
2013
|
children: selection.workflowId
|
|
2026
2014
|
}),
|
|
2027
|
-
selection.warning !== undefined ? /* @__PURE__ */
|
|
2015
|
+
selection.warning !== undefined ? /* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2028
2016
|
className: panel_module_default.selectionWarning,
|
|
2029
2017
|
"data-selection-warning": true,
|
|
2030
2018
|
children: selection.warning.message
|
|
2031
2019
|
}) : null
|
|
2032
2020
|
]
|
|
2033
|
-
}) : selection?.kind === "terminal" ? /* @__PURE__ */
|
|
2021
|
+
}) : selection?.kind === "terminal" ? /* @__PURE__ */ jsx_runtime4.jsxs("p", {
|
|
2034
2022
|
className: panel_module_default.selection,
|
|
2035
2023
|
"data-selection-kind": "terminal",
|
|
2036
2024
|
"data-selection-workflow": selection.workflowId,
|
|
2037
2025
|
children: [
|
|
2038
|
-
/* @__PURE__ */
|
|
2026
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2039
2027
|
className: panel_module_default.selectionId,
|
|
2040
2028
|
children: selection.workflowId
|
|
2041
2029
|
}),
|
|
2042
|
-
/* @__PURE__ */
|
|
2030
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2043
2031
|
className: panel_module_default.selectionMeta,
|
|
2044
2032
|
"data-selection-history": true,
|
|
2045
2033
|
children: t("state.selection.history")
|
|
2046
2034
|
})
|
|
2047
2035
|
]
|
|
2048
|
-
}) : /* @__PURE__ */
|
|
2036
|
+
}) : /* @__PURE__ */ jsx_runtime4.jsxs("p", {
|
|
2049
2037
|
className: panel_module_default.selection,
|
|
2050
2038
|
"data-selection-kind": "error",
|
|
2051
2039
|
"data-selection-code": selection?.code ?? t("panel.unknown"),
|
|
2052
2040
|
children: [
|
|
2053
|
-
/* @__PURE__ */
|
|
2041
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2054
2042
|
className: panel_module_default.selectionCode,
|
|
2055
2043
|
children: selection?.code ?? t("panel.unknown")
|
|
2056
2044
|
}),
|
|
2057
|
-
/* @__PURE__ */
|
|
2045
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2058
2046
|
className: panel_module_default.selectionMeta,
|
|
2059
2047
|
children: selection?.message ?? t("state.none")
|
|
2060
2048
|
})
|
|
2061
2049
|
]
|
|
2062
2050
|
}),
|
|
2063
|
-
/* @__PURE__ */
|
|
2051
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2064
2052
|
className: panel_module_default.subTitle,
|
|
2065
2053
|
children: t("state.plans")
|
|
2066
2054
|
}),
|
|
2067
|
-
visiblePlans.length === 0 ? /* @__PURE__ */
|
|
2055
|
+
visiblePlans.length === 0 ? /* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2068
2056
|
className: panel_module_default.empty,
|
|
2069
2057
|
"data-mstar-empty": "no-plans",
|
|
2070
2058
|
children: t("state.none")
|
|
2071
|
-
}) : /* @__PURE__ */
|
|
2059
|
+
}) : /* @__PURE__ */ jsx_runtime4.jsx("ul", {
|
|
2072
2060
|
className: panel_module_default.planList,
|
|
2073
|
-
children: visiblePlans.map((plan, i) => /* @__PURE__ */
|
|
2061
|
+
children: visiblePlans.map((plan, i) => /* @__PURE__ */ jsx_runtime4.jsxs("li", {
|
|
2074
2062
|
"data-plan-id": str(plan.id) ?? "unknown",
|
|
2075
2063
|
"data-plan-status": str(plan.status) ?? "unknown",
|
|
2076
2064
|
children: [
|
|
2077
|
-
/* @__PURE__ */
|
|
2065
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2078
2066
|
className: panel_module_default.planStatus,
|
|
2079
2067
|
"data-status": str(plan.status) ?? "unknown",
|
|
2080
2068
|
children: str(plan.status) ?? t("panel.unknown")
|
|
2081
2069
|
}),
|
|
2082
|
-
/* @__PURE__ */
|
|
2070
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2083
2071
|
className: panel_module_default.planId,
|
|
2084
2072
|
children: str(plan.id) ?? t("panel.unknown")
|
|
2085
2073
|
})
|
|
2086
2074
|
]
|
|
2087
2075
|
}, str(plan.id) ?? `plan-${i}`))
|
|
2088
2076
|
}),
|
|
2089
|
-
hiddenPlans > 0 ? /* @__PURE__ */
|
|
2077
|
+
hiddenPlans > 0 ? /* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2090
2078
|
className: panel_module_default.truncated,
|
|
2091
2079
|
"data-plan-truncated": true,
|
|
2092
2080
|
children: t("state.plans.more", { count: String(hiddenPlans) })
|
|
2093
2081
|
}) : null,
|
|
2094
|
-
/* @__PURE__ */
|
|
2082
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2095
2083
|
className: panel_module_default.subTitle,
|
|
2096
2084
|
children: t("state.residuals")
|
|
2097
2085
|
}),
|
|
2098
|
-
visibleFindings === null || visibleFindings.length === 0 ? /* @__PURE__ */
|
|
2086
|
+
visibleFindings === null || visibleFindings.length === 0 ? /* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2099
2087
|
className: panel_module_default.empty,
|
|
2100
2088
|
"data-mstar-empty": "no-residuals",
|
|
2101
2089
|
children: t("state.none")
|
|
2102
|
-
}) : /* @__PURE__ */
|
|
2090
|
+
}) : /* @__PURE__ */ jsx_runtime4.jsx("ul", {
|
|
2103
2091
|
className: panel_module_default.residualList,
|
|
2104
|
-
children: visibleFindings.map((finding, i) => /* @__PURE__ */
|
|
2092
|
+
children: visibleFindings.map((finding, i) => /* @__PURE__ */ jsx_runtime4.jsxs("li", {
|
|
2105
2093
|
"data-residual-finding": true,
|
|
2106
2094
|
"data-residual-finding-id": str(finding.id) ?? "unknown",
|
|
2107
2095
|
"data-residual-finding-severity": str(finding.severity) ?? "unknown",
|
|
2108
2096
|
"data-residual-finding-plan": str(finding.planId) ?? "unknown",
|
|
2109
2097
|
children: [
|
|
2110
|
-
/* @__PURE__ */
|
|
2098
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2111
2099
|
className: panel_module_default.findingSeverity,
|
|
2112
2100
|
"data-severity": str(finding.severity) ?? "unknown",
|
|
2113
2101
|
children: str(finding.severity) ?? t("panel.unknown")
|
|
2114
2102
|
}),
|
|
2115
|
-
/* @__PURE__ */
|
|
2103
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2116
2104
|
className: panel_module_default.findingTitle,
|
|
2117
2105
|
children: str(finding.title) ?? t("panel.unknown")
|
|
2118
2106
|
}),
|
|
2119
|
-
str(finding.planId) !== null ? /* @__PURE__ */
|
|
2107
|
+
str(finding.planId) !== null ? /* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2120
2108
|
className: panel_module_default.findingPlan,
|
|
2121
2109
|
children: finding.planId
|
|
2122
2110
|
}) : null
|
|
2123
2111
|
]
|
|
2124
2112
|
}, str(finding.id) ?? `finding-${i}`))
|
|
2125
2113
|
}),
|
|
2126
|
-
hiddenFindings > 0 ? /* @__PURE__ */
|
|
2114
|
+
hiddenFindings > 0 ? /* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2127
2115
|
className: panel_module_default.truncated,
|
|
2128
2116
|
"data-residual-truncated": true,
|
|
2129
2117
|
children: t("state.residual.more", { count: String(hiddenFindings) })
|
|
2130
2118
|
}) : null,
|
|
2131
|
-
/* @__PURE__ */
|
|
2119
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2132
2120
|
className: panel_module_default.subTitle,
|
|
2133
2121
|
children: t("state.policy")
|
|
2134
2122
|
}),
|
|
2135
|
-
/* @__PURE__ */
|
|
2123
|
+
/* @__PURE__ */ jsx_runtime4.jsxs("dl", {
|
|
2136
2124
|
className: panel_module_default.defList,
|
|
2137
2125
|
children: [
|
|
2138
|
-
/* @__PURE__ */
|
|
2126
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dt", {
|
|
2139
2127
|
className: panel_module_default.defTerm,
|
|
2140
2128
|
children: t("state.enforcement")
|
|
2141
2129
|
}),
|
|
2142
|
-
/* @__PURE__ */
|
|
2130
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dd", {
|
|
2143
2131
|
className: panel_module_default.defValue,
|
|
2144
2132
|
"data-field": "enforcement",
|
|
2145
2133
|
children: enforcementLabel(t, enforcement)
|
|
2146
2134
|
}),
|
|
2147
|
-
/* @__PURE__ */
|
|
2135
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dt", {
|
|
2148
2136
|
className: panel_module_default.defTerm,
|
|
2149
2137
|
children: t("state.policy.push")
|
|
2150
2138
|
}),
|
|
2151
|
-
/* @__PURE__ */
|
|
2139
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dd", {
|
|
2152
2140
|
className: panel_module_default.defValue,
|
|
2153
2141
|
"data-field": "push-policy",
|
|
2154
2142
|
children: str(state?.pushPolicy) ?? t("state.none")
|
|
2155
2143
|
}),
|
|
2156
|
-
/* @__PURE__ */
|
|
2144
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dt", {
|
|
2157
2145
|
className: panel_module_default.defTerm,
|
|
2158
2146
|
children: t("state.policy.worktree")
|
|
2159
2147
|
}),
|
|
2160
|
-
/* @__PURE__ */
|
|
2148
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dd", {
|
|
2161
2149
|
className: panel_module_default.defValue,
|
|
2162
2150
|
"data-field": "worktree-mode",
|
|
2163
2151
|
children: str(state?.worktreeMode) ?? t("state.none")
|
|
2164
2152
|
}),
|
|
2165
|
-
/* @__PURE__ */
|
|
2153
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dt", {
|
|
2166
2154
|
className: panel_module_default.defTerm,
|
|
2167
2155
|
children: t("state.policy.control-worktree")
|
|
2168
2156
|
}),
|
|
2169
|
-
/* @__PURE__ */
|
|
2157
|
+
/* @__PURE__ */ jsx_runtime4.jsx("dd", {
|
|
2170
2158
|
className: panel_module_default.defValue,
|
|
2171
2159
|
"data-field": "control-worktree-path",
|
|
2172
2160
|
children: str(state?.controlWorktreePath) ?? t("state.none")
|
|
2173
2161
|
})
|
|
2174
2162
|
]
|
|
2175
2163
|
}),
|
|
2176
|
-
/* @__PURE__ */
|
|
2164
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2177
2165
|
className: panel_module_default.subTitle,
|
|
2178
2166
|
children: t("state.leases")
|
|
2179
2167
|
}),
|
|
2180
|
-
leases.length === 0 ? /* @__PURE__ */
|
|
2168
|
+
leases.length === 0 ? /* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2181
2169
|
className: panel_module_default.empty,
|
|
2182
2170
|
"data-mstar-empty": "no-leases",
|
|
2183
2171
|
children: t("state.none")
|
|
2184
|
-
}) : /* @__PURE__ */
|
|
2172
|
+
}) : /* @__PURE__ */ jsx_runtime4.jsx("ul", {
|
|
2185
2173
|
className: panel_module_default.leaseList,
|
|
2186
|
-
children: leases.map((lease, i) => /* @__PURE__ */
|
|
2174
|
+
children: leases.map((lease, i) => /* @__PURE__ */ jsx_runtime4.jsxs("li", {
|
|
2187
2175
|
"data-lease-plan": str(lease.planId) ?? "unknown",
|
|
2188
2176
|
children: [
|
|
2189
|
-
/* @__PURE__ */
|
|
2177
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2190
2178
|
className: panel_module_default.leasePlan,
|
|
2191
2179
|
children: str(lease.planId) ?? t("panel.unknown")
|
|
2192
2180
|
}),
|
|
2193
|
-
/* @__PURE__ */
|
|
2181
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2194
2182
|
className: panel_module_default.leaseHolder,
|
|
2195
2183
|
children: str(lease.holder) ?? t("panel.unknown")
|
|
2196
2184
|
}),
|
|
2197
|
-
str(lease.worktreePath) !== null ? /* @__PURE__ */
|
|
2185
|
+
str(lease.worktreePath) !== null ? /* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2198
2186
|
className: panel_module_default.leaseWorktree,
|
|
2199
2187
|
children: lease.worktreePath
|
|
2200
2188
|
}) : null
|
|
2201
2189
|
]
|
|
2202
2190
|
}, str(lease.planId) ?? `lease-${i}`))
|
|
2203
2191
|
}),
|
|
2204
|
-
/* @__PURE__ */
|
|
2192
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2205
2193
|
className: panel_module_default.subTitle,
|
|
2206
2194
|
children: t("state.knowledge")
|
|
2207
2195
|
}),
|
|
2208
|
-
knowledge === null ? /* @__PURE__ */
|
|
2196
|
+
knowledge === null ? /* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2209
2197
|
className: panel_module_default.empty,
|
|
2210
2198
|
"data-mstar-empty": "no-knowledge",
|
|
2211
2199
|
children: t("state.none")
|
|
2212
|
-
}) : /* @__PURE__ */
|
|
2200
|
+
}) : /* @__PURE__ */ jsx_runtime4.jsxs("p", {
|
|
2213
2201
|
className: panel_module_default.knowledge,
|
|
2214
2202
|
"data-knowledge-docs": count(knowledge.docCount) === null ? "unknown" : String(knowledge.docCount),
|
|
2215
2203
|
children: [
|
|
2216
|
-
/* @__PURE__ */
|
|
2204
|
+
/* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2217
2205
|
children: t("state.knowledge.docs", { count: count(knowledge.docCount) === null ? t("panel.unknown") : String(knowledge.docCount) })
|
|
2218
2206
|
}),
|
|
2219
|
-
Array.isArray(knowledge.categories) && knowledge.categories.length > 0 ? /* @__PURE__ */
|
|
2207
|
+
Array.isArray(knowledge.categories) && knowledge.categories.length > 0 ? /* @__PURE__ */ jsx_runtime4.jsx("span", {
|
|
2220
2208
|
className: panel_module_default.knowledgeCategories,
|
|
2221
2209
|
children: knowledge.categories.filter((category) => typeof category === "string").join(" · ")
|
|
2222
2210
|
}) : null
|
|
2223
2211
|
]
|
|
2224
2212
|
}),
|
|
2225
|
-
/* @__PURE__ */
|
|
2213
|
+
/* @__PURE__ */ jsx_runtime4.jsx("h3", {
|
|
2226
2214
|
className: panel_module_default.subTitle,
|
|
2227
2215
|
children: t("state.direction")
|
|
2228
2216
|
}),
|
|
2229
|
-
/* @__PURE__ */
|
|
2217
|
+
/* @__PURE__ */ jsx_runtime4.jsx("p", {
|
|
2230
2218
|
className: panel_module_default.direction,
|
|
2231
2219
|
"data-direction": true,
|
|
2232
2220
|
children: str(state?.direction) ?? t("state.none")
|
|
@@ -2236,46 +2224,36 @@ function StateSection({ t, state, enforcement }) {
|
|
|
2236
2224
|
}
|
|
2237
2225
|
|
|
2238
2226
|
// src/client/panel/sidebar.tsx
|
|
2239
|
-
var
|
|
2227
|
+
var jsx_runtime5 = require("react/jsx-runtime");
|
|
2240
2228
|
function Sidebar({ t, state, source }) {
|
|
2241
|
-
return /* @__PURE__ */
|
|
2229
|
+
return /* @__PURE__ */ jsx_runtime5.jsx("aside", {
|
|
2242
2230
|
className: panel_module_default.sidebar,
|
|
2243
2231
|
"data-mstar-sidebar": true,
|
|
2244
|
-
children:
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
t,
|
|
2254
|
-
state,
|
|
2255
|
-
enforcement: source.enforcement
|
|
2256
|
-
})
|
|
2257
|
-
}),
|
|
2258
|
-
/* @__PURE__ */ jsx_runtime3.jsx(PanelMeta, {
|
|
2259
|
-
t,
|
|
2260
|
-
source
|
|
2261
|
-
})
|
|
2262
|
-
]
|
|
2232
|
+
children: state === null ? /* @__PURE__ */ jsx_runtime5.jsx("p", {
|
|
2233
|
+
className: panel_module_default.empty,
|
|
2234
|
+
"data-mstar-empty": "no-state",
|
|
2235
|
+
children: t("state.none")
|
|
2236
|
+
}) : /* @__PURE__ */ jsx_runtime5.jsx(StateSection, {
|
|
2237
|
+
t,
|
|
2238
|
+
state,
|
|
2239
|
+
enforcement: source.enforcement
|
|
2240
|
+
})
|
|
2263
2241
|
});
|
|
2264
2242
|
}
|
|
2265
2243
|
|
|
2266
2244
|
// src/client/panel/TabNav.tsx
|
|
2267
|
-
var
|
|
2245
|
+
var jsx_runtime6 = require("react/jsx-runtime");
|
|
2268
2246
|
var TABS = [
|
|
2269
2247
|
{ id: "tasks", label: "tab.tasks" },
|
|
2270
2248
|
{ id: "agents", label: "tab.agents" },
|
|
2271
2249
|
{ id: "events", label: "tab.events" }
|
|
2272
2250
|
];
|
|
2273
2251
|
function TabNav({ active, onChange, t }) {
|
|
2274
|
-
return /* @__PURE__ */
|
|
2252
|
+
return /* @__PURE__ */ jsx_runtime6.jsx("nav", {
|
|
2275
2253
|
className: panel_module_default.tabNav,
|
|
2276
2254
|
"data-mstar-tab-nav": true,
|
|
2277
2255
|
role: "tablist",
|
|
2278
|
-
children: TABS.map((tab) => /* @__PURE__ */
|
|
2256
|
+
children: TABS.map((tab) => /* @__PURE__ */ jsx_runtime6.jsx("button", {
|
|
2279
2257
|
type: "button",
|
|
2280
2258
|
role: "tab",
|
|
2281
2259
|
className: active === tab.id ? `${panel_module_default.tab} ${panel_module_default.tabActive}` : panel_module_default.tab,
|
|
@@ -2288,7 +2266,7 @@ function TabNav({ active, onChange, t }) {
|
|
|
2288
2266
|
});
|
|
2289
2267
|
}
|
|
2290
2268
|
|
|
2291
|
-
// src/client/panel/pages/
|
|
2269
|
+
// src/client/panel/pages/AgentListPage.tsx
|
|
2292
2270
|
var import_react2 = require("react");
|
|
2293
2271
|
|
|
2294
2272
|
// src/client/panel/zones/zones.module.css
|
|
@@ -2405,22 +2383,16 @@ var css2 = `
|
|
|
2405
2383
|
|
|
2406
2384
|
|
|
2407
2385
|
.\\31 2dfaa6e_kanban {
|
|
2408
|
-
display: flex;
|
|
2409
|
-
align-items: flex-start;
|
|
2410
|
-
gap: var(--mstar-space-1);
|
|
2411
2386
|
min-width: 0;
|
|
2412
|
-
overflow-x: auto;
|
|
2413
|
-
overscroll-behavior: contain;
|
|
2414
2387
|
}
|
|
2415
2388
|
|
|
2416
2389
|
|
|
2417
2390
|
.\\31 f8473a4_kanbanColumn {
|
|
2418
2391
|
box-sizing: border-box;
|
|
2419
2392
|
display: flex;
|
|
2420
|
-
flex: 1 1 0;
|
|
2421
2393
|
flex-direction: column;
|
|
2422
2394
|
gap: var(--mstar-space-2);
|
|
2423
|
-
min-width:
|
|
2395
|
+
min-width: 0;
|
|
2424
2396
|
padding: var(--mstar-space-2);
|
|
2425
2397
|
border: 1px solid var(--dsw-alias-border-l1);
|
|
2426
2398
|
border-radius: 8px;
|
|
@@ -2439,10 +2411,10 @@ var css2 = `
|
|
|
2439
2411
|
opacity: 0.7;
|
|
2440
2412
|
}
|
|
2441
2413
|
|
|
2414
|
+
|
|
2442
2415
|
.\\33 b1cc701_kanbanColumnHeader {
|
|
2443
2416
|
display: flex;
|
|
2444
2417
|
align-items: center;
|
|
2445
|
-
justify-content: space-between;
|
|
2446
2418
|
gap: var(--mstar-space-1);
|
|
2447
2419
|
min-width: 0;
|
|
2448
2420
|
}
|
|
@@ -2460,6 +2432,7 @@ var css2 = `
|
|
|
2460
2432
|
|
|
2461
2433
|
.\\34 96af60d_kanbanCount {
|
|
2462
2434
|
flex: none;
|
|
2435
|
+
margin-left: auto;
|
|
2463
2436
|
min-width: 18px;
|
|
2464
2437
|
padding: 0 var(--mstar-space-1);
|
|
2465
2438
|
border: 1px solid var(--dsw-alias-border-l2);
|
|
@@ -2529,7 +2502,6 @@ var css2 = `
|
|
|
2529
2502
|
|
|
2530
2503
|
.\\36 3518033_kanbanArrow {
|
|
2531
2504
|
flex: none;
|
|
2532
|
-
align-self: center;
|
|
2533
2505
|
width: 18px;
|
|
2534
2506
|
height: 18px;
|
|
2535
2507
|
display: inline-flex;
|
|
@@ -2641,28 +2613,28 @@ if (typeof document !== "undefined" && document.querySelector("style[data-plugin
|
|
|
2641
2613
|
var zones_module_default = { zone: "0390dc47_zone", zoneHeader: "fa5472ae_zoneHeader", zoneEmpty: "2358ca74_zoneEmpty", legend: "0214fc64_legend", legendTitle: "7fdf3af2_legendTitle", legendList: "5751e1ec_legendList", legendItem: "c648f79b_legendItem", legendSwatch: "84f03998_legendSwatch", swatchAgentRunning: "637ae7a1_swatchAgentRunning", swatchAgentSettled: "e8a7988b_swatchAgentSettled", swatchAgentIdle: "d34b3834_swatchAgentIdle", tasksHeader: "9c376db8_tasksHeader", tasksTotal: "b5ad0f15_tasksTotal", kanban: "12dfaa6e_kanban", kanbanColumn: "1f8473a4_kanbanColumn", kanbanColumnHeader: "3b1cc701_kanbanColumnHeader", kanbanColumnTitle: "503b6432_kanbanColumnTitle", kanbanCount: "496af60d_kanbanCount", kanbanCards: "161359fd_kanbanCards", planCard: "73f0e028_planCard", planCardId: "a37c7a75_planCardId", planCardStatus: "11b4fd6a_planCardStatus", kanbanArrow: "63518033_kanbanArrow", kanbanMore: "0c600f2f_kanbanMore", kanbanMoreButton: "d0f95d1f_kanbanMoreButton", zoneTitle: "a2f9476f_zoneTitle", rollupList: "1ca74b3b_rollupList", rollupItem: "371169b4_rollupItem", rollupMilestone: "5f3f5403_rollupMilestone", rollupCount: "d87816b2_rollupCount", severityChip: "8f4e5388_severityChip" };
|
|
2642
2614
|
|
|
2643
2615
|
// src/client/panel/zones/Legend.tsx
|
|
2644
|
-
var
|
|
2616
|
+
var jsx_runtime7 = require("react/jsx-runtime");
|
|
2645
2617
|
function Legend({ t }) {
|
|
2646
2618
|
const items = [
|
|
2647
2619
|
{ key: "agent-running", swatch: zones_module_default.swatchAgentRunning, label: t("zone.legend.agent-running") },
|
|
2648
2620
|
{ key: "agent-settled", swatch: zones_module_default.swatchAgentSettled, label: t("zone.legend.agent-settled") },
|
|
2649
2621
|
{ key: "agent-idle", swatch: zones_module_default.swatchAgentIdle, label: t("zone.legend.agent-idle") }
|
|
2650
2622
|
];
|
|
2651
|
-
return /* @__PURE__ */
|
|
2623
|
+
return /* @__PURE__ */ jsx_runtime7.jsxs("div", {
|
|
2652
2624
|
className: zones_module_default.legend,
|
|
2653
2625
|
"data-mstar-legend": true,
|
|
2654
2626
|
children: [
|
|
2655
|
-
/* @__PURE__ */
|
|
2627
|
+
/* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
2656
2628
|
className: zones_module_default.legendTitle,
|
|
2657
2629
|
children: t("zone.legend.title")
|
|
2658
2630
|
}),
|
|
2659
|
-
/* @__PURE__ */
|
|
2631
|
+
/* @__PURE__ */ jsx_runtime7.jsx("ul", {
|
|
2660
2632
|
className: zones_module_default.legendList,
|
|
2661
|
-
children: items.map((item) => /* @__PURE__ */
|
|
2633
|
+
children: items.map((item) => /* @__PURE__ */ jsx_runtime7.jsxs("li", {
|
|
2662
2634
|
className: zones_module_default.legendItem,
|
|
2663
2635
|
"data-mstar-legend-item": item.key,
|
|
2664
2636
|
children: [
|
|
2665
|
-
/* @__PURE__ */
|
|
2637
|
+
/* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
2666
2638
|
className: `${zones_module_default.legendSwatch} ${item.swatch}`
|
|
2667
2639
|
}),
|
|
2668
2640
|
item.label
|
|
@@ -2675,7 +2647,7 @@ function Legend({ t }) {
|
|
|
2675
2647
|
|
|
2676
2648
|
// src/client/panel/pages/IterationInfoSection.tsx
|
|
2677
2649
|
var import_react = require("react");
|
|
2678
|
-
var
|
|
2650
|
+
var jsx_runtime8 = require("react/jsx-runtime");
|
|
2679
2651
|
function nextExpandedOnActivation(prev, prevActive, nextActive) {
|
|
2680
2652
|
return !prevActive && nextActive ? true : prev;
|
|
2681
2653
|
}
|
|
@@ -2704,33 +2676,33 @@ function IterationInfoSection({ iteration, t }) {
|
|
|
2704
2676
|
const verdictLabel = (verdict) => verdict === "pass" ? t("graph.pass") : verdict === "fail" ? t("graph.fail") : t("panel.unknown");
|
|
2705
2677
|
const idLabel = iteration.iterationId ?? t("panel.unknown");
|
|
2706
2678
|
const statusLabel = active && iteration.currentStep !== null ? t("zone.iteration.step-label", { n: String(iteration.currentStep), total: String(iteration.steps.length) }) : t("page.iteration.not-started");
|
|
2707
|
-
const stepsRow = /* @__PURE__ */
|
|
2679
|
+
const stepsRow = /* @__PURE__ */ jsx_runtime8.jsx("ol", {
|
|
2708
2680
|
className: panel_module_default.iterationStepsRow,
|
|
2709
2681
|
"data-iteration-head-steps": true,
|
|
2710
|
-
children: iteration.steps.map((step) => /* @__PURE__ */
|
|
2682
|
+
children: iteration.steps.map((step) => /* @__PURE__ */ jsx_runtime8.jsxs("li", {
|
|
2711
2683
|
className: panel_module_default.iterationStepItem,
|
|
2712
2684
|
"data-step": step.step,
|
|
2713
2685
|
"data-step-state": step.state,
|
|
2714
2686
|
children: [
|
|
2715
|
-
/* @__PURE__ */
|
|
2687
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2716
2688
|
className: panel_module_default.iterationStepBadge,
|
|
2717
2689
|
"data-step-badge": true,
|
|
2718
2690
|
children: t("zone.iteration.step-badge", { n: String(step.step) })
|
|
2719
2691
|
}),
|
|
2720
|
-
/* @__PURE__ */
|
|
2692
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2721
2693
|
className: panel_module_default.iterationStepPhase,
|
|
2722
2694
|
"data-step-phase": true,
|
|
2723
2695
|
children: t(`zone.phase.${step.id}`)
|
|
2724
2696
|
}),
|
|
2725
|
-
/* @__PURE__ */
|
|
2697
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2726
2698
|
className: panel_module_default.iterationStepChip,
|
|
2727
2699
|
"data-step-chip": true,
|
|
2728
2700
|
children: t(STATE_LABEL[step.state])
|
|
2729
2701
|
}),
|
|
2730
|
-
/* @__PURE__ */
|
|
2702
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2731
2703
|
className: panel_module_default.iterationVerdictSeat,
|
|
2732
2704
|
"data-step-verdict-seat": true,
|
|
2733
|
-
children: step.state === "current" && step.verdict !== "unknown" && /* @__PURE__ */
|
|
2705
|
+
children: step.state === "current" && step.verdict !== "unknown" && /* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2734
2706
|
className: panel_module_default.iterationVerdict,
|
|
2735
2707
|
"data-iteration-verdict": step.verdict,
|
|
2736
2708
|
children: verdictLabel(step.verdict)
|
|
@@ -2739,13 +2711,13 @@ function IterationInfoSection({ iteration, t }) {
|
|
|
2739
2711
|
]
|
|
2740
2712
|
}, step.step))
|
|
2741
2713
|
});
|
|
2742
|
-
return /* @__PURE__ */
|
|
2714
|
+
return /* @__PURE__ */ jsx_runtime8.jsxs("section", {
|
|
2743
2715
|
className: panel_module_default.iterationHead,
|
|
2744
2716
|
"data-iteration-head": true,
|
|
2745
2717
|
"data-iteration-head-active": active ? "true" : "false",
|
|
2746
2718
|
"data-iteration-head-expanded": expanded ? "true" : "false",
|
|
2747
2719
|
children: [
|
|
2748
|
-
/* @__PURE__ */
|
|
2720
|
+
/* @__PURE__ */ jsx_runtime8.jsxs("button", {
|
|
2749
2721
|
type: "button",
|
|
2750
2722
|
className: panel_module_default.iterationSummary,
|
|
2751
2723
|
"data-iteration-head-toggle": true,
|
|
@@ -2754,56 +2726,56 @@ function IterationInfoSection({ iteration, t }) {
|
|
|
2754
2726
|
"aria-controls": "iteration-head-body",
|
|
2755
2727
|
onClick: () => setExpanded((v) => !v),
|
|
2756
2728
|
children: [
|
|
2757
|
-
/* @__PURE__ */
|
|
2729
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2758
2730
|
className: panel_module_default.iterationSummaryId,
|
|
2759
2731
|
"data-iteration-head-id": idLabel,
|
|
2760
2732
|
children: idLabel
|
|
2761
2733
|
}),
|
|
2762
|
-
/* @__PURE__ */
|
|
2734
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2763
2735
|
className: panel_module_default.iterationSummaryVerdict,
|
|
2764
2736
|
"data-iteration-head-verdict": iteration.verdict,
|
|
2765
2737
|
children: verdictLabel(iteration.verdict)
|
|
2766
2738
|
}),
|
|
2767
|
-
/* @__PURE__ */
|
|
2739
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2768
2740
|
className: active ? panel_module_default.iterationSummaryStatus : panel_module_default.iterationSummaryStatusMuted,
|
|
2769
2741
|
"data-iteration-head-status": statusLabel,
|
|
2770
2742
|
children: statusLabel
|
|
2771
2743
|
}),
|
|
2772
|
-
/* @__PURE__ */
|
|
2744
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2773
2745
|
className: panel_module_default.iterationSummaryHint,
|
|
2774
2746
|
"data-iteration-head-hint": true,
|
|
2775
2747
|
children: t(expanded ? "page.iteration.collapse" : "page.iteration.expand")
|
|
2776
2748
|
})
|
|
2777
2749
|
]
|
|
2778
2750
|
}),
|
|
2779
|
-
expanded && /* @__PURE__ */
|
|
2751
|
+
expanded && /* @__PURE__ */ jsx_runtime8.jsx("div", {
|
|
2780
2752
|
className: panel_module_default.iterationHeadBody,
|
|
2781
2753
|
id: "iteration-head-body",
|
|
2782
2754
|
"data-iteration-head-body": true,
|
|
2783
|
-
children: iterationSplitActive(active, iteration.branches) ? /* @__PURE__ */
|
|
2755
|
+
children: iterationSplitActive(active, iteration.branches) ? /* @__PURE__ */ jsx_runtime8.jsxs("div", {
|
|
2784
2756
|
className: panel_module_default.iterationHeadSplit,
|
|
2785
2757
|
"data-iteration-head-split": true,
|
|
2786
2758
|
children: [
|
|
2787
|
-
/* @__PURE__ */
|
|
2759
|
+
/* @__PURE__ */ jsx_runtime8.jsxs("div", {
|
|
2788
2760
|
className: panel_module_default.iterationBranches,
|
|
2789
2761
|
"data-iteration-head-branches": true,
|
|
2790
2762
|
children: [
|
|
2791
|
-
/* @__PURE__ */
|
|
2763
|
+
/* @__PURE__ */ jsx_runtime8.jsx("h3", {
|
|
2792
2764
|
className: panel_module_default.iterationBranchesTitle,
|
|
2793
2765
|
"data-branches-title": true,
|
|
2794
2766
|
children: t("zone.branches.title")
|
|
2795
2767
|
}),
|
|
2796
|
-
/* @__PURE__ */
|
|
2768
|
+
/* @__PURE__ */ jsx_runtime8.jsx("ul", {
|
|
2797
2769
|
className: panel_module_default.iterationBranchList,
|
|
2798
|
-
children: BRANCH_ROWS.map((row) => /* @__PURE__ */
|
|
2770
|
+
children: BRANCH_ROWS.map((row) => /* @__PURE__ */ jsx_runtime8.jsxs("li", {
|
|
2799
2771
|
className: panel_module_default.iterationBranchRow,
|
|
2800
2772
|
"data-branch": row.kind,
|
|
2801
2773
|
children: [
|
|
2802
|
-
/* @__PURE__ */
|
|
2774
|
+
/* @__PURE__ */ jsx_runtime8.jsx("span", {
|
|
2803
2775
|
className: panel_module_default.iterationBranchLabel,
|
|
2804
2776
|
children: t(row.label)
|
|
2805
2777
|
}),
|
|
2806
|
-
/* @__PURE__ */
|
|
2778
|
+
/* @__PURE__ */ jsx_runtime8.jsx("code", {
|
|
2807
2779
|
className: panel_module_default.iterationBranchValue,
|
|
2808
2780
|
"data-branch-value": true,
|
|
2809
2781
|
children: iteration.branches?.[row.value] ?? "—"
|
|
@@ -2821,25 +2793,23 @@ function IterationInfoSection({ iteration, t }) {
|
|
|
2821
2793
|
});
|
|
2822
2794
|
}
|
|
2823
2795
|
|
|
2824
|
-
// src/client/panel/pages/agent-
|
|
2796
|
+
// src/client/panel/pages/agent-list.module.css
|
|
2825
2797
|
var css3 = `
|
|
2826
2798
|
|
|
2827
2799
|
|
|
2828
2800
|
|
|
2829
|
-
|
|
2830
|
-
flex: 1;
|
|
2831
|
-
min-height: 0;
|
|
2801
|
+
.c7b89a22_listPage {
|
|
2832
2802
|
display: flex;
|
|
2833
2803
|
flex-direction: column;
|
|
2834
2804
|
gap: var(--mstar-space-2);
|
|
2835
|
-
|
|
2805
|
+
min-width: 0;
|
|
2836
2806
|
|
|
2837
2807
|
--mstar-canvas-emphasis-current: 100%;
|
|
2838
2808
|
--mstar-canvas-emphasis-next: 75%;
|
|
2839
2809
|
--mstar-canvas-emphasis-off: 45%;
|
|
2840
2810
|
}
|
|
2841
2811
|
|
|
2842
|
-
|
|
2812
|
+
.e5d7e3c4_listHeader {
|
|
2843
2813
|
display: flex;
|
|
2844
2814
|
align-items: baseline;
|
|
2845
2815
|
justify-content: space-between;
|
|
@@ -2848,7 +2818,7 @@ var css3 = `
|
|
|
2848
2818
|
min-width: 0;
|
|
2849
2819
|
}
|
|
2850
2820
|
|
|
2851
|
-
.\\39
|
|
2821
|
+
.\\39 01ce16d_listTitle {
|
|
2852
2822
|
margin: 0;
|
|
2853
2823
|
color: var(--dsw-alias-label-primary);
|
|
2854
2824
|
font: var(--dsw-font-xs-13);
|
|
@@ -2856,7 +2826,7 @@ var css3 = `
|
|
|
2856
2826
|
}
|
|
2857
2827
|
|
|
2858
2828
|
|
|
2859
|
-
.\\
|
|
2829
|
+
.\\36 678f1df_listSummary {
|
|
2860
2830
|
flex: none;
|
|
2861
2831
|
color: var(--dsw-alias-label-caption);
|
|
2862
2832
|
font: var(--dsw-font-xxxs-11);
|
|
@@ -2864,7 +2834,7 @@ var css3 = `
|
|
|
2864
2834
|
}
|
|
2865
2835
|
|
|
2866
2836
|
|
|
2867
|
-
.\\
|
|
2837
|
+
.\\37 f7cda39_listNote {
|
|
2868
2838
|
flex: none;
|
|
2869
2839
|
margin: 0;
|
|
2870
2840
|
color: var(--dsw-alias-label-caption);
|
|
@@ -2872,66 +2842,35 @@ var css3 = `
|
|
|
2872
2842
|
}
|
|
2873
2843
|
|
|
2874
2844
|
|
|
2875
|
-
.\\
|
|
2845
|
+
.\\31 bf37650_listLegend {
|
|
2876
2846
|
flex: none;
|
|
2877
2847
|
}
|
|
2878
2848
|
|
|
2879
2849
|
|
|
2880
2850
|
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
flex: 1;
|
|
2884
|
-
min-height: 0;
|
|
2885
|
-
overflow: hidden;
|
|
2886
|
-
touch-action: none;
|
|
2887
|
-
background: var(--dsw-alias-bg-layer-1);
|
|
2888
|
-
border: 1px solid var(--dsw-alias-border-l1);
|
|
2889
|
-
border-radius: 8px;
|
|
2890
|
-
cursor: grab;
|
|
2891
|
-
user-select: none;
|
|
2892
|
-
}
|
|
2893
|
-
|
|
2894
|
-
.\\30 ceb0467_canvasViewport:active {
|
|
2895
|
-
cursor: grabbing;
|
|
2851
|
+
.dccb9592_agentList {
|
|
2852
|
+
min-width: 0;
|
|
2896
2853
|
}
|
|
2897
2854
|
|
|
2898
2855
|
|
|
2899
2856
|
|
|
2900
|
-
.\\
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
background
|
|
2909
|
-
will-change: transform;
|
|
2910
|
-
}
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
.\\37 f010373_canvasColumnLabel {
|
|
2914
|
-
position: absolute;
|
|
2915
|
-
padding: 0 var(--mstar-space-1);
|
|
2916
|
-
overflow: hidden;
|
|
2917
|
-
text-overflow: ellipsis;
|
|
2918
|
-
white-space: nowrap;
|
|
2919
|
-
color: var(--dsw-alias-label-caption);
|
|
2920
|
-
font: var(--dsw-font-xxxs-11);
|
|
2921
|
-
font-weight: 600;
|
|
2922
|
-
letter-spacing: 0.03em;
|
|
2923
|
-
text-transform: uppercase;
|
|
2857
|
+
.\\37 a1e7d59_agentGroup {
|
|
2858
|
+
display: flex;
|
|
2859
|
+
flex-direction: column;
|
|
2860
|
+
gap: var(--mstar-space-2);
|
|
2861
|
+
min-width: 0;
|
|
2862
|
+
padding: var(--mstar-space-3);
|
|
2863
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
2864
|
+
border-radius: 8px;
|
|
2865
|
+
background: var(--dsw-alias-bg-layer-1);
|
|
2924
2866
|
}
|
|
2925
2867
|
|
|
2926
|
-
|
|
2927
|
-
.fcf0fc76_canvasGroupLabel {
|
|
2928
|
-
position: absolute;
|
|
2868
|
+
.a4d5691a_groupLabel {
|
|
2929
2869
|
display: flex;
|
|
2930
2870
|
align-items: center;
|
|
2931
2871
|
gap: var(--mstar-space-2);
|
|
2932
2872
|
min-width: 0;
|
|
2933
2873
|
padding: 0 var(--mstar-space-1);
|
|
2934
|
-
overflow: hidden;
|
|
2935
2874
|
color: var(--dsw-alias-label-primary);
|
|
2936
2875
|
font: var(--dsw-font-xxxs-11);
|
|
2937
2876
|
font-weight: 600;
|
|
@@ -2940,7 +2879,7 @@ var css3 = `
|
|
|
2940
2879
|
}
|
|
2941
2880
|
|
|
2942
2881
|
|
|
2943
|
-
|
|
2882
|
+
.\\39 6c8bb5f_groupPlan {
|
|
2944
2883
|
display: flex;
|
|
2945
2884
|
align-items: center;
|
|
2946
2885
|
gap: var(--mstar-space-1);
|
|
@@ -2960,7 +2899,7 @@ var css3 = `
|
|
|
2960
2899
|
}
|
|
2961
2900
|
|
|
2962
2901
|
|
|
2963
|
-
|
|
2902
|
+
.c775aa0a_groupPlanMore {
|
|
2964
2903
|
flex: none;
|
|
2965
2904
|
color: var(--dsw-alias-label-caption);
|
|
2966
2905
|
font: var(--dsw-font-xxxs-11);
|
|
@@ -2969,7 +2908,7 @@ var css3 = `
|
|
|
2969
2908
|
}
|
|
2970
2909
|
|
|
2971
2910
|
|
|
2972
|
-
.\\
|
|
2911
|
+
.\\35 d27d864_groupNoPlan {
|
|
2973
2912
|
color: var(--dsw-alias-label-caption);
|
|
2974
2913
|
font: var(--dsw-font-xxxs-11);
|
|
2975
2914
|
font-weight: 400;
|
|
@@ -2979,41 +2918,64 @@ var css3 = `
|
|
|
2979
2918
|
|
|
2980
2919
|
|
|
2981
2920
|
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2921
|
+
.\\32 a00f734_stageGroup {
|
|
2922
|
+
display: flex;
|
|
2923
|
+
flex-direction: column;
|
|
2924
|
+
gap: var(--mstar-space-1);
|
|
2925
|
+
min-width: 0;
|
|
2926
|
+
}
|
|
2927
|
+
|
|
2928
|
+
.\\37 212d235_stageLabel {
|
|
2929
|
+
padding: 0 var(--mstar-space-1);
|
|
2930
|
+
overflow: hidden;
|
|
2931
|
+
text-overflow: ellipsis;
|
|
2932
|
+
white-space: nowrap;
|
|
2933
|
+
color: var(--dsw-alias-label-caption);
|
|
2934
|
+
font: var(--dsw-font-xxxs-11);
|
|
2935
|
+
font-weight: 600;
|
|
2936
|
+
letter-spacing: 0.03em;
|
|
2937
|
+
text-transform: uppercase;
|
|
2987
2938
|
}
|
|
2988
2939
|
|
|
2989
2940
|
|
|
2990
|
-
|
|
2991
|
-
|
|
2941
|
+
|
|
2942
|
+
.\\31 3172d67_subBucket {
|
|
2943
|
+
display: flex;
|
|
2944
|
+
flex-direction: column;
|
|
2945
|
+
gap: var(--mstar-space-1);
|
|
2946
|
+
min-width: 0;
|
|
2992
2947
|
}
|
|
2993
2948
|
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2949
|
+
.\\37 78a2d3f_subBucketLabel {
|
|
2950
|
+
display: flex;
|
|
2951
|
+
align-items: center;
|
|
2952
|
+
gap: var(--mstar-space-1);
|
|
2953
|
+
color: var(--dsw-alias-label-caption);
|
|
2954
|
+
font: var(--dsw-font-xxxs-11);
|
|
2955
|
+
letter-spacing: 0.03em;
|
|
2956
|
+
text-transform: uppercase;
|
|
2997
2957
|
}
|
|
2998
2958
|
|
|
2999
2959
|
|
|
3000
|
-
|
|
3001
|
-
|
|
2960
|
+
.\\37 78a2d3f_subBucketLabel::after {
|
|
2961
|
+
content: '';
|
|
2962
|
+
flex: 1;
|
|
2963
|
+
border-top: 1px dashed var(--dsw-alias-border-l2);
|
|
3002
2964
|
}
|
|
3003
2965
|
|
|
3004
2966
|
|
|
3005
2967
|
|
|
3006
|
-
|
|
3007
|
-
position: absolute;
|
|
3008
|
-
top: 0;
|
|
3009
|
-
left: 0;
|
|
2968
|
+
.b34ac147_cardList {
|
|
3010
2969
|
margin: 0;
|
|
3011
2970
|
padding: 0;
|
|
3012
2971
|
list-style: none;
|
|
2972
|
+
display: flex;
|
|
2973
|
+
flex-direction: column;
|
|
2974
|
+
gap: var(--mstar-space-1);
|
|
2975
|
+
min-width: 0;
|
|
3013
2976
|
}
|
|
3014
2977
|
|
|
3015
2978
|
.a9030174_agentCard {
|
|
3016
|
-
position: absolute;
|
|
3017
2979
|
box-sizing: border-box;
|
|
3018
2980
|
display: flex;
|
|
3019
2981
|
flex-direction: column;
|
|
@@ -3046,14 +3008,14 @@ var css3 = `
|
|
|
3046
3008
|
.\\34 e2c7873_agentCardRunning {
|
|
3047
3009
|
border-color: var(--dsw-alias-state-business-primary);
|
|
3048
3010
|
box-shadow: 0 0 0 1px var(--dsw-alias-state-business-primary);
|
|
3049
|
-
animation:
|
|
3011
|
+
animation: agent-card-pulse 1.6s ease-in-out infinite;
|
|
3050
3012
|
}
|
|
3051
3013
|
|
|
3052
3014
|
.\\34 e2c7873_agentCardRunning:hover {
|
|
3053
3015
|
border-color: var(--dsw-alias-state-business-primary);
|
|
3054
3016
|
}
|
|
3055
3017
|
|
|
3056
|
-
@keyframes
|
|
3018
|
+
@keyframes agent-card-pulse {
|
|
3057
3019
|
0%, 100% {
|
|
3058
3020
|
box-shadow: 0 0 0 1px var(--dsw-alias-state-business-primary);
|
|
3059
3021
|
}
|
|
@@ -3083,50 +3045,6 @@ var css3 = `
|
|
|
3083
3045
|
}
|
|
3084
3046
|
|
|
3085
3047
|
|
|
3086
|
-
.\\34 fd21091_agentPort {
|
|
3087
|
-
position: absolute;
|
|
3088
|
-
width: 3px;
|
|
3089
|
-
height: 3px;
|
|
3090
|
-
border-radius: 999px;
|
|
3091
|
-
background: var(--dsw-alias-label-caption);
|
|
3092
|
-
opacity: 0;
|
|
3093
|
-
pointer-events: none;
|
|
3094
|
-
transition: opacity 150ms ease;
|
|
3095
|
-
}
|
|
3096
|
-
|
|
3097
|
-
.a9030174_agentCard:hover .\\34 fd21091_agentPort {
|
|
3098
|
-
opacity: 1;
|
|
3099
|
-
}
|
|
3100
|
-
|
|
3101
|
-
.\\34 e2c7873_agentCardRunning:hover .\\34 fd21091_agentPort {
|
|
3102
|
-
background: var(--dsw-alias-state-business-primary);
|
|
3103
|
-
}
|
|
3104
|
-
|
|
3105
|
-
.\\34 fd21091_agentPort[data-agent-port='north'] {
|
|
3106
|
-
top: 0;
|
|
3107
|
-
left: 50%;
|
|
3108
|
-
transform: translate(-50%, -50%);
|
|
3109
|
-
}
|
|
3110
|
-
|
|
3111
|
-
.\\34 fd21091_agentPort[data-agent-port='south'] {
|
|
3112
|
-
bottom: 0;
|
|
3113
|
-
left: 50%;
|
|
3114
|
-
transform: translate(-50%, 50%);
|
|
3115
|
-
}
|
|
3116
|
-
|
|
3117
|
-
.\\34 fd21091_agentPort[data-agent-port='west'] {
|
|
3118
|
-
left: 0;
|
|
3119
|
-
top: 50%;
|
|
3120
|
-
transform: translate(-50%, -50%);
|
|
3121
|
-
}
|
|
3122
|
-
|
|
3123
|
-
.\\34 fd21091_agentPort[data-agent-port='east'] {
|
|
3124
|
-
right: 0;
|
|
3125
|
-
top: 50%;
|
|
3126
|
-
transform: translate(50%, -50%);
|
|
3127
|
-
}
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
3048
|
.c2c54212_onDemandBadge {
|
|
3131
3049
|
align-self: flex-start;
|
|
3132
3050
|
padding: 0 var(--mstar-space-1);
|
|
@@ -3136,46 +3054,6 @@ var css3 = `
|
|
|
3136
3054
|
font: var(--dsw-font-xxxs-11);
|
|
3137
3055
|
}
|
|
3138
3056
|
|
|
3139
|
-
|
|
3140
|
-
.\\37 78a2d3f_subBucketLabel {
|
|
3141
|
-
position: absolute;
|
|
3142
|
-
display: flex;
|
|
3143
|
-
align-items: center;
|
|
3144
|
-
gap: var(--mstar-space-1);
|
|
3145
|
-
color: var(--dsw-alias-label-caption);
|
|
3146
|
-
font: var(--dsw-font-xxxs-11);
|
|
3147
|
-
letter-spacing: 0.03em;
|
|
3148
|
-
text-transform: uppercase;
|
|
3149
|
-
}
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
.\\37 78a2d3f_subBucketLabel::after {
|
|
3153
|
-
content: '';
|
|
3154
|
-
flex: 1;
|
|
3155
|
-
border-top: 1px dashed var(--dsw-alias-border-l2);
|
|
3156
|
-
}
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
.\\39 94a2772_canvasEdgeSupervise {
|
|
3160
|
-
stroke: var(--dsw-alias-label-caption);
|
|
3161
|
-
stroke-width: 1.5;
|
|
3162
|
-
stroke-dasharray: 5 4;
|
|
3163
|
-
}
|
|
3164
|
-
|
|
3165
|
-
.b2bb1e47_canvasEdgeSuperviseLit {
|
|
3166
|
-
|
|
3167
|
-
stroke: var(--dsw-alias-state-business-primary);
|
|
3168
|
-
stroke-dasharray: none;
|
|
3169
|
-
}
|
|
3170
|
-
|
|
3171
|
-
.ad3aae58_canvasArrowSupervise {
|
|
3172
|
-
fill: var(--dsw-alias-label-caption);
|
|
3173
|
-
}
|
|
3174
|
-
|
|
3175
|
-
.\\32 6e265a1_canvasArrowSuperviseLit {
|
|
3176
|
-
fill: var(--dsw-alias-state-business-primary);
|
|
3177
|
-
}
|
|
3178
|
-
|
|
3179
3057
|
.e7716946_agentCardLine {
|
|
3180
3058
|
display: flex;
|
|
3181
3059
|
align-items: center;
|
|
@@ -3268,7 +3146,7 @@ var css3 = `
|
|
|
3268
3146
|
color: var(--dsw-alias-label-caption);
|
|
3269
3147
|
}
|
|
3270
3148
|
`;
|
|
3271
|
-
var tagId3 = "@mstar-harness/dsh/agent-
|
|
3149
|
+
var tagId3 = "@mstar-harness/dsh/agent-list.module.css";
|
|
3272
3150
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId3) + "]") === null) {
|
|
3273
3151
|
const tag = document.createElement("style");
|
|
3274
3152
|
tag.dataset.plugin = "@mstar-harness/dsh";
|
|
@@ -3276,51 +3154,29 @@ if (typeof document !== "undefined" && document.querySelector("style[data-plugin
|
|
|
3276
3154
|
tag.textContent = css3;
|
|
3277
3155
|
document.head.appendChild(tag);
|
|
3278
3156
|
}
|
|
3279
|
-
var
|
|
3157
|
+
var agent_list_module_default = { listPage: "c7b89a22_listPage", listHeader: "e5d7e3c4_listHeader", listTitle: "901ce16d_listTitle", listSummary: "6678f1df_listSummary", listNote: "7f7cda39_listNote", listLegend: "1bf37650_listLegend", agentList: "dccb9592_agentList", agentGroup: "7a1e7d59_agentGroup", groupLabel: "a4d5691a_groupLabel", groupPlan: "96c8bb5f_groupPlan", groupPlanMore: "c775aa0a_groupPlanMore", groupNoPlan: "5d27d864_groupNoPlan", stageGroup: "2a00f734_stageGroup", stageLabel: "7212d235_stageLabel", subBucket: "13172d67_subBucket", subBucketLabel: "778a2d3f_subBucketLabel", cardList: "b34ac147_cardList", agentCard: "a9030174_agentCard", agentCardRunning: "4e2c7873_agentCardRunning", agentCardIdle: "1a8bb13e_agentCardIdle", agentCardDone: "d6bf2954_agentCardDone", onDemandBadge: "c2c54212_onDemandBadge", agentCardLine: "e7716946_agentCardLine", agentCardName: "a47ac04f_agentCardName", agentCount: "e2aedf35_agentCount", agentRoleChip: "e26900b4_agentRoleChip", agentRecord: "1e3b3403_agentRecord", agentStatusDot: "030ace7f_agentStatusDot", agentStatusRunning: "23846eb7_agentStatusRunning", agentStatusSettled: "91dcfc09_agentStatusSettled", agentStatusError: "eeb20a6e_agentStatusError", agentStatusAdvisory: "ec5fca43_agentStatusAdvisory", agentStatusIdle: "63e283ba_agentStatusIdle" };
|
|
3280
3158
|
|
|
3281
|
-
// src/client/panel/pages/
|
|
3282
|
-
var
|
|
3283
|
-
var PAN_ORIGIN = { x: 0, y: 0 };
|
|
3284
|
-
function panDragStart(pan, x, y) {
|
|
3285
|
-
return { originX: pan.x, originY: pan.y, startX: x, startY: y };
|
|
3286
|
-
}
|
|
3287
|
-
function panDragMove(drag, x, y) {
|
|
3288
|
-
return { x: drag.originX + (x - drag.startX), y: drag.originY + (y - drag.startY) };
|
|
3289
|
-
}
|
|
3290
|
-
function panTransform(pan) {
|
|
3291
|
-
return `translate(${pan.x}px, ${pan.y}px)`;
|
|
3292
|
-
}
|
|
3293
|
-
var COL_W = 200;
|
|
3294
|
-
var COL_GAP = 56;
|
|
3295
|
-
var CARD_W = 176;
|
|
3296
|
-
var CARD_H = 72;
|
|
3297
|
-
var ROW_GAP = 12;
|
|
3298
|
-
var PAD_X = 24;
|
|
3299
|
-
var PAD_Y = 24;
|
|
3300
|
-
var COL_PAD = 12;
|
|
3301
|
-
var LABEL_H = 18;
|
|
3302
|
-
var SUB_LABEL_H = 14;
|
|
3303
|
-
var SUB_GAP = 4;
|
|
3304
|
-
var GROUP_GAP = 24;
|
|
3305
|
-
var STANDOFF = 10;
|
|
3306
|
-
var SIDE_GAP = 18;
|
|
3159
|
+
// src/client/panel/pages/AgentListPage.tsx
|
|
3160
|
+
var jsx_runtime9 = require("react/jsx-runtime");
|
|
3307
3161
|
var UNKNOWN_COLUMN = "unknown";
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
const
|
|
3311
|
-
const
|
|
3312
|
-
const
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
bucket.push(entity);
|
|
3162
|
+
function orderedByRole(members, order) {
|
|
3163
|
+
const byKey = new Map(members.map((e) => [e.key, e]));
|
|
3164
|
+
const ordered = [];
|
|
3165
|
+
const claimed = new Set;
|
|
3166
|
+
for (const role of order) {
|
|
3167
|
+
const entity = byKey.get(role);
|
|
3168
|
+
if (entity !== undefined) {
|
|
3169
|
+
ordered.push(entity);
|
|
3170
|
+
claimed.add(role);
|
|
3171
|
+
}
|
|
3172
|
+
}
|
|
3173
|
+
for (const entity of members) {
|
|
3174
|
+
if (!claimed.has(entity.key))
|
|
3175
|
+
ordered.push(entity);
|
|
3323
3176
|
}
|
|
3177
|
+
return ordered;
|
|
3178
|
+
}
|
|
3179
|
+
function buildGroups(view) {
|
|
3324
3180
|
const rawGroups = [];
|
|
3325
3181
|
for (const stage of view.stages) {
|
|
3326
3182
|
const last = rawGroups[rawGroups.length - 1];
|
|
@@ -3328,294 +3184,73 @@ function layoutAgents(view) {
|
|
|
3328
3184
|
rawGroups.push({
|
|
3329
3185
|
phase: stage.phase,
|
|
3330
3186
|
index: rawGroups.length + 1,
|
|
3331
|
-
|
|
3187
|
+
stageIds: [stage.id],
|
|
3332
3188
|
planNote: stage.phase === "autonomous-execute"
|
|
3333
3189
|
});
|
|
3334
3190
|
} else {
|
|
3335
|
-
last.
|
|
3336
|
-
}
|
|
3337
|
-
}
|
|
3338
|
-
const groups = rawGroups.map((g) => ({ ...g, label: { x: 0, y: 0, w: 0, h: 0 } }));
|
|
3339
|
-
const cards = new Map;
|
|
3340
|
-
const columns = [];
|
|
3341
|
-
const subBuckets = new Map;
|
|
3342
|
-
let unknown = null;
|
|
3343
|
-
const colY = PAD_Y + LABEL_H + COL_PAD;
|
|
3344
|
-
let groupX = PAD_X;
|
|
3345
|
-
let canvasBottom = colY;
|
|
3346
|
-
for (const group of groups) {
|
|
3347
|
-
const groupW = group.columnIds.length * (COL_W + COL_GAP) - COL_GAP;
|
|
3348
|
-
group.label = { x: groupX, y: PAD_Y, w: groupW, h: LABEL_H };
|
|
3349
|
-
let groupBottom = colY;
|
|
3350
|
-
group.columnIds.forEach((id, ci) => {
|
|
3351
|
-
const colX = groupX + ci * (COL_W + COL_GAP);
|
|
3352
|
-
const column = { id, x: colX, y: colY, w: COL_W, h: 0 };
|
|
3353
|
-
columns.push(column);
|
|
3354
|
-
const list = buckets.get(id) ?? [];
|
|
3355
|
-
if (id === sddSinkId && sddStage !== undefined) {
|
|
3356
|
-
const implementor = list.filter((e) => e.bucket === "implementor");
|
|
3357
|
-
const reviewer = list.filter((e) => e.bucket === "reviewer");
|
|
3358
|
-
const rest = list.filter((e) => e.bucket !== "implementor" && e.bucket !== "reviewer");
|
|
3359
|
-
const rosterIndex = new Map(KNOWN_AGENTS.map((a, i) => [a.id, i]));
|
|
3360
|
-
const implementorKey = (e) => {
|
|
3361
|
-
if (e.zone === "flow") {
|
|
3362
|
-
const i = sddStage.roles.indexOf(e.role);
|
|
3363
|
-
return i === -1 ? Number.MAX_SAFE_INTEGER : i;
|
|
3364
|
-
}
|
|
3365
|
-
if (e.zone === "on-demand") {
|
|
3366
|
-
return sddStage.roles.length + (rosterIndex.get(e.role) ?? Number.MAX_SAFE_INTEGER);
|
|
3367
|
-
}
|
|
3368
|
-
return Number.MAX_SAFE_INTEGER;
|
|
3369
|
-
};
|
|
3370
|
-
implementor.sort((a, b) => implementorKey(a) - implementorKey(b));
|
|
3371
|
-
const implLabelY = colY + LABEL_H + COL_PAD;
|
|
3372
|
-
const implCards = [];
|
|
3373
|
-
let cy = implLabelY + SUB_LABEL_H + SUB_GAP;
|
|
3374
|
-
for (const entity of implementor) {
|
|
3375
|
-
const box = { x: colX + (COL_W - CARD_W) / 2, y: cy, w: CARD_W, h: CARD_H };
|
|
3376
|
-
cards.set(entity.key, box);
|
|
3377
|
-
implCards.push(box);
|
|
3378
|
-
cy += CARD_H + ROW_GAP;
|
|
3379
|
-
}
|
|
3380
|
-
const revLabelY = cy;
|
|
3381
|
-
const revCards = [];
|
|
3382
|
-
cy = revLabelY + SUB_LABEL_H + SUB_GAP;
|
|
3383
|
-
for (const entity of reviewer) {
|
|
3384
|
-
const box = { x: colX + (COL_W - CARD_W) / 2, y: cy, w: CARD_W, h: CARD_H };
|
|
3385
|
-
cards.set(entity.key, box);
|
|
3386
|
-
revCards.push(box);
|
|
3387
|
-
cy += CARD_H + ROW_GAP;
|
|
3388
|
-
}
|
|
3389
|
-
for (const entity of rest) {
|
|
3390
|
-
const box = { x: colX + (COL_W - CARD_W) / 2, y: cy, w: CARD_W, h: CARD_H };
|
|
3391
|
-
cards.set(entity.key, box);
|
|
3392
|
-
cy += CARD_H + ROW_GAP;
|
|
3393
|
-
}
|
|
3394
|
-
const colBottom = cy - ROW_GAP;
|
|
3395
|
-
column.h = Math.max(colBottom - colY + COL_PAD, CARD_H + LABEL_H + COL_PAD * 2);
|
|
3396
|
-
const band = (boxes) => boxes.length === 0 ? null : { x: colX, y: boxes[0].y, w: COL_W, h: boxes[boxes.length - 1].y + CARD_H - boxes[0].y };
|
|
3397
|
-
const labelW = CARD_W;
|
|
3398
|
-
subBuckets.set(id, {
|
|
3399
|
-
implementor: { label: { x: colX + (COL_W - CARD_W) / 2, y: implLabelY, w: labelW }, band: band(implCards) },
|
|
3400
|
-
reviewer: { label: { x: colX + (COL_W - CARD_W) / 2, y: revLabelY, w: labelW }, band: band(revCards) }
|
|
3401
|
-
});
|
|
3402
|
-
} else if (id === unknownSinkId) {
|
|
3403
|
-
const flowList = list.filter((e) => e.zone !== GENERAL_BUCKET);
|
|
3404
|
-
const generalList = list.filter((e) => e.zone === GENERAL_BUCKET);
|
|
3405
|
-
let cy = colY + LABEL_H + COL_PAD;
|
|
3406
|
-
for (const entity of flowList) {
|
|
3407
|
-
cards.set(entity.key, { x: colX + (COL_W - CARD_W) / 2, y: cy, w: CARD_W, h: CARD_H });
|
|
3408
|
-
cy += CARD_H + ROW_GAP;
|
|
3409
|
-
}
|
|
3410
|
-
const unknownLabelY = cy;
|
|
3411
|
-
const unknownBoxes = [];
|
|
3412
|
-
cy = unknownLabelY + SUB_LABEL_H + SUB_GAP;
|
|
3413
|
-
for (const entity of generalList) {
|
|
3414
|
-
const box = { x: colX + (COL_W - CARD_W) / 2, y: cy, w: CARD_W, h: CARD_H };
|
|
3415
|
-
cards.set(entity.key, box);
|
|
3416
|
-
unknownBoxes.push(box);
|
|
3417
|
-
cy += CARD_H + ROW_GAP;
|
|
3418
|
-
}
|
|
3419
|
-
const colBottom = cy - ROW_GAP;
|
|
3420
|
-
column.h = Math.max(colBottom - colY + COL_PAD, CARD_H + LABEL_H + COL_PAD * 2);
|
|
3421
|
-
const labelW = CARD_W;
|
|
3422
|
-
unknown = {
|
|
3423
|
-
label: { x: colX + (COL_W - CARD_W) / 2, y: unknownLabelY, w: labelW },
|
|
3424
|
-
band: unknownBoxes.length === 0 ? null : { x: colX, y: unknownBoxes[0].y, w: COL_W, h: unknownBoxes[unknownBoxes.length - 1].y + CARD_H - unknownBoxes[0].y }
|
|
3425
|
-
};
|
|
3426
|
-
} else {
|
|
3427
|
-
list.forEach((entity, i) => {
|
|
3428
|
-
cards.set(entity.key, {
|
|
3429
|
-
x: colX + (COL_W - CARD_W) / 2,
|
|
3430
|
-
y: colY + LABEL_H + COL_PAD + i * (CARD_H + ROW_GAP),
|
|
3431
|
-
w: CARD_W,
|
|
3432
|
-
h: CARD_H
|
|
3433
|
-
});
|
|
3434
|
-
});
|
|
3435
|
-
const h = COL_PAD * 2 + LABEL_H + list.length * CARD_H + Math.max(0, list.length - 1) * ROW_GAP;
|
|
3436
|
-
column.h = Math.max(h, CARD_H + LABEL_H + COL_PAD * 2);
|
|
3437
|
-
}
|
|
3438
|
-
groupBottom = Math.max(groupBottom, colY + column.h);
|
|
3439
|
-
});
|
|
3440
|
-
canvasBottom = Math.max(canvasBottom, groupBottom);
|
|
3441
|
-
groupX += groupW + GROUP_GAP;
|
|
3442
|
-
}
|
|
3443
|
-
return {
|
|
3444
|
-
width: groups.length === 0 ? 0 : groupX - GROUP_GAP + PAD_X,
|
|
3445
|
-
height: canvasBottom + PAD_Y,
|
|
3446
|
-
columns,
|
|
3447
|
-
cards,
|
|
3448
|
-
subBuckets,
|
|
3449
|
-
unknown,
|
|
3450
|
-
groups
|
|
3451
|
-
};
|
|
3452
|
-
}
|
|
3453
|
-
function superviseAnchor(anchor, layout) {
|
|
3454
|
-
const idx = anchor.lastIndexOf(":");
|
|
3455
|
-
if (idx === -1)
|
|
3456
|
-
return null;
|
|
3457
|
-
const columnId = anchor.slice(0, idx);
|
|
3458
|
-
const bucket = anchor.slice(idx + 1);
|
|
3459
|
-
if (bucket !== "implementor" && bucket !== "reviewer")
|
|
3460
|
-
return null;
|
|
3461
|
-
const column = layout.columns.find((c) => c.id === columnId);
|
|
3462
|
-
if (column === undefined)
|
|
3463
|
-
return null;
|
|
3464
|
-
const geometry = layout.subBuckets.get(columnId);
|
|
3465
|
-
if (geometry === undefined)
|
|
3466
|
-
return null;
|
|
3467
|
-
const partition = bucket === "implementor" ? geometry.implementor : geometry.reviewer;
|
|
3468
|
-
const band = partition.band;
|
|
3469
|
-
if (band === null)
|
|
3470
|
-
return null;
|
|
3471
|
-
const cardLeft = column.x + (COL_W - CARD_W) / 2;
|
|
3472
|
-
const x = cardLeft + CARD_W + SIDE_GAP;
|
|
3473
|
-
const y = bucket === "implementor" ? band.y + band.h : band.y;
|
|
3474
|
-
return { x, y };
|
|
3475
|
-
}
|
|
3476
|
-
function portPoint(box, port) {
|
|
3477
|
-
switch (port) {
|
|
3478
|
-
case "north":
|
|
3479
|
-
return { x: box.x + box.w / 2, y: box.y };
|
|
3480
|
-
case "south":
|
|
3481
|
-
return { x: box.x + box.w / 2, y: box.y + box.h };
|
|
3482
|
-
case "west":
|
|
3483
|
-
return { x: box.x, y: box.y + box.h / 2 };
|
|
3484
|
-
case "east":
|
|
3485
|
-
return { x: box.x + box.w, y: box.y + box.h / 2 };
|
|
3486
|
-
}
|
|
3487
|
-
}
|
|
3488
|
-
function columnIndexOfBox(layout, box) {
|
|
3489
|
-
return layout.columns.findIndex((c) => box.x >= c.x && box.x < c.x + c.w && box.y >= c.y && box.y < c.y + c.h);
|
|
3490
|
-
}
|
|
3491
|
-
function captionRows(layout, columnId) {
|
|
3492
|
-
const rows = [];
|
|
3493
|
-
const geometry = layout.subBuckets.get(columnId);
|
|
3494
|
-
if (geometry !== undefined) {
|
|
3495
|
-
for (const p of [geometry.implementor, geometry.reviewer]) {
|
|
3496
|
-
if (p.band !== null)
|
|
3497
|
-
rows.push({ x: p.label.x, y: p.label.y, w: p.label.w, h: SUB_LABEL_H });
|
|
3191
|
+
last.stageIds.push(stage.id);
|
|
3498
3192
|
}
|
|
3499
3193
|
}
|
|
3500
|
-
const
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
}
|
|
3506
|
-
|
|
3507
|
-
const lo = Math.min(srcCol, tgtCol);
|
|
3508
|
-
const hi = Math.max(srcCol, tgtCol);
|
|
3509
|
-
const boxes = [];
|
|
3510
|
-
for (const box of layout.cards.values()) {
|
|
3511
|
-
const col = columnIndexOfBox(layout, box);
|
|
3512
|
-
if (col > lo && col < hi)
|
|
3513
|
-
boxes.push(box);
|
|
3514
|
-
}
|
|
3515
|
-
return boxes;
|
|
3516
|
-
}
|
|
3517
|
-
function crossesCardBody(g, layout, srcCol, tgtCol) {
|
|
3518
|
-
return intermediateCardBoxes(layout, srcCol, tgtCol).some((card) => boxOverlaps(g, card));
|
|
3519
|
-
}
|
|
3520
|
-
function horizontalBBox(sx, sy, tx, ty) {
|
|
3521
|
-
const dx = tx - sx;
|
|
3522
|
-
const off = Math.max(Math.abs(dx) / 2, 24);
|
|
3523
|
-
const dir = dx < 0 ? -1 : 1;
|
|
3524
|
-
const xs = [sx, tx, sx + dir * off, tx - dir * off];
|
|
3525
|
-
const minX = Math.min(...xs);
|
|
3526
|
-
const maxX = Math.max(...xs);
|
|
3527
|
-
const minY = Math.min(sy, ty);
|
|
3528
|
-
const maxY = Math.max(sy, ty);
|
|
3529
|
-
return { x: minX, y: minY, w: maxX - minX, h: maxY - minY };
|
|
3530
|
-
}
|
|
3531
|
-
function boxOverlaps(a, b) {
|
|
3532
|
-
return a.x < b.x + b.w && a.x + a.w > b.x && a.y < b.y + b.h && a.y + a.h > b.y;
|
|
3533
|
-
}
|
|
3534
|
-
function sideGapDetour(sx, sy, endX, endY, sourceBox, targetBox, layout, srcCol, tgtCol) {
|
|
3535
|
-
const forward = srcCol < tgtCol;
|
|
3536
|
-
const band = intermediateCardBoxes(layout, srcCol, tgtCol);
|
|
3537
|
-
const bandBottom = band.reduce((m, c) => Math.max(m, c.y + c.h), 0);
|
|
3538
|
-
const detourY = bandBottom + SIDE_GAP;
|
|
3539
|
-
const sourceGapX = forward ? sourceBox.x + sourceBox.w + SIDE_GAP : sourceBox.x - SIDE_GAP;
|
|
3540
|
-
const targetGapX = forward ? targetBox.x - SIDE_GAP : targetBox.x + targetBox.w + SIDE_GAP;
|
|
3541
|
-
const d = `M ${sx} ${sy} L ${sourceGapX} ${sy} L ${sourceGapX} ${detourY} L ${targetGapX} ${detourY} L ${targetGapX} ${endY} L ${endX} ${endY}`;
|
|
3542
|
-
return { d, x1: sx, y1: sy, x2: endX, y2: endY };
|
|
3543
|
-
}
|
|
3544
|
-
function sameColumnStandoff(gap) {
|
|
3545
|
-
return Math.min(STANDOFF, Math.max(2, gap - 8));
|
|
3546
|
-
}
|
|
3547
|
-
function crossesSameColumnCard(layout, cx, startY, endY, sourceBox, targetBox) {
|
|
3548
|
-
const seg = { x: cx, y: Math.min(startY, endY), w: 0, h: Math.abs(endY - startY) };
|
|
3549
|
-
for (const box of layout.cards.values()) {
|
|
3550
|
-
if (box === sourceBox || box === targetBox)
|
|
3194
|
+
const stageById = new Map(view.stages.map((s) => [s.id, s]));
|
|
3195
|
+
const lastStageId = view.stages.length > 0 ? view.stages[view.stages.length - 1].id : null;
|
|
3196
|
+
const implementorHostId = view.stages.find((s) => s.roles.some((r) => SDD_BUCKET_ROLES.implementor.includes(r)))?.id ?? lastStageId;
|
|
3197
|
+
const members = new Map;
|
|
3198
|
+
for (const entity of view.entities) {
|
|
3199
|
+
const stageId = entity.zone === GENERAL_BUCKET ? lastStageId : entity.zone === "on-demand" ? implementorHostId : entity.zone === "flow" && entity.stage !== null ? `${entity.stage.phase}:${entity.stage.stage}` : implementorHostId;
|
|
3200
|
+
if (stageId === null)
|
|
3551
3201
|
continue;
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
function horizontalCurve(sx, sy, tx, ty) {
|
|
3558
|
-
const dx = tx - sx;
|
|
3559
|
-
const off = Math.max(Math.abs(dx) / 2, 24);
|
|
3560
|
-
const dir = dx < 0 ? -1 : 1;
|
|
3561
|
-
const d = `M ${sx} ${sy} C ${sx + dir * off} ${sy}, ${tx - dir * off} ${ty}, ${tx} ${ty}`;
|
|
3562
|
-
return { d, x1: sx, y1: sy, x2: tx, y2: ty };
|
|
3563
|
-
}
|
|
3564
|
-
function verticalCurve(sx, sy, tx, ty) {
|
|
3565
|
-
const span = ty - sy;
|
|
3566
|
-
const d = `M ${sx} ${sy} C ${sx} ${sy + span / 3}, ${tx} ${ty - span / 3}, ${tx} ${ty}`;
|
|
3567
|
-
return { d, x1: sx, y1: sy, x2: tx, y2: ty };
|
|
3568
|
-
}
|
|
3569
|
-
function edgePath(edge, layout) {
|
|
3570
|
-
if (edge.kind === "supervise") {
|
|
3571
|
-
const source = superviseAnchor(edge.source, layout);
|
|
3572
|
-
const target = superviseAnchor(edge.target, layout);
|
|
3573
|
-
if (source === null || target === null)
|
|
3574
|
-
return null;
|
|
3575
|
-
return verticalCurve(source.x, source.y, target.x, target.y);
|
|
3576
|
-
}
|
|
3577
|
-
const sourceBox = layout.cards.get(edge.source);
|
|
3578
|
-
const targetBox = layout.cards.get(edge.target);
|
|
3579
|
-
if (sourceBox === undefined || targetBox === undefined)
|
|
3580
|
-
return null;
|
|
3581
|
-
const srcCol = columnIndexOfBox(layout, sourceBox);
|
|
3582
|
-
const tgtCol = columnIndexOfBox(layout, targetBox);
|
|
3583
|
-
if (srcCol < tgtCol) {
|
|
3584
|
-
const s = portPoint(sourceBox, "east");
|
|
3585
|
-
const t = portPoint(targetBox, "west");
|
|
3586
|
-
const endX = t.x - STANDOFF;
|
|
3587
|
-
if (crossesCardBody(horizontalBBox(s.x, s.y, endX, t.y), layout, srcCol, tgtCol)) {
|
|
3588
|
-
return sideGapDetour(s.x, s.y, endX, t.y, sourceBox, targetBox, layout, srcCol, tgtCol);
|
|
3589
|
-
}
|
|
3590
|
-
return horizontalCurve(s.x, s.y, endX, t.y);
|
|
3591
|
-
}
|
|
3592
|
-
if (srcCol > tgtCol) {
|
|
3593
|
-
const s = portPoint(sourceBox, "west");
|
|
3594
|
-
const t = portPoint(targetBox, "east");
|
|
3595
|
-
const endX = t.x + STANDOFF;
|
|
3596
|
-
if (crossesCardBody(horizontalBBox(s.x, s.y, endX, t.y), layout, srcCol, tgtCol)) {
|
|
3597
|
-
return sideGapDetour(s.x, s.y, endX, t.y, sourceBox, targetBox, layout, srcCol, tgtCol);
|
|
3598
|
-
}
|
|
3599
|
-
return horizontalCurve(s.x, s.y, endX, t.y);
|
|
3600
|
-
}
|
|
3601
|
-
const forward = sourceBox.y + sourceBox.h <= targetBox.y;
|
|
3602
|
-
const gap = forward ? targetBox.y - (sourceBox.y + sourceBox.h) : sourceBox.y - (targetBox.y + targetBox.h);
|
|
3603
|
-
const standoff = sameColumnStandoff(gap);
|
|
3604
|
-
const cx = sourceBox.x + sourceBox.w / 2;
|
|
3605
|
-
const startY = forward ? sourceBox.y + sourceBox.h : sourceBox.y;
|
|
3606
|
-
const endY = forward ? targetBox.y - standoff : targetBox.y + targetBox.h + standoff;
|
|
3607
|
-
const colId = layout.columns[srcCol]?.id;
|
|
3608
|
-
const crossesCaption = colId !== undefined && captionRows(layout, colId).some((row) => cx >= row.x && cx <= row.x + row.w && Math.min(startY, endY) < row.y + row.h && Math.max(startY, endY) > row.y);
|
|
3609
|
-
if (crossesCaption || crossesSameColumnCard(layout, cx, startY, endY, sourceBox, targetBox)) {
|
|
3610
|
-
const sideX = sourceBox.x - SIDE_GAP;
|
|
3611
|
-
return verticalCurve(sideX, startY, sideX, endY);
|
|
3202
|
+
const list = members.get(stageId);
|
|
3203
|
+
if (list === undefined)
|
|
3204
|
+
members.set(stageId, [entity]);
|
|
3205
|
+
else
|
|
3206
|
+
list.push(entity);
|
|
3612
3207
|
}
|
|
3613
|
-
return
|
|
3208
|
+
return rawGroups.map((raw) => ({
|
|
3209
|
+
phase: raw.phase,
|
|
3210
|
+
index: raw.index,
|
|
3211
|
+
planNote: raw.planNote,
|
|
3212
|
+
stages: raw.stageIds.map((stageId) => {
|
|
3213
|
+
const stage = stageById.get(stageId);
|
|
3214
|
+
const list = members.get(stageId) ?? [];
|
|
3215
|
+
const isImplementorHost = stageId === implementorHostId;
|
|
3216
|
+
const isLast = stageId === lastStageId;
|
|
3217
|
+
const flow = [];
|
|
3218
|
+
const implementor = [];
|
|
3219
|
+
const reviewer = [];
|
|
3220
|
+
const unknown = [];
|
|
3221
|
+
for (const entity of list) {
|
|
3222
|
+
if (isLast && entity.zone === GENERAL_BUCKET)
|
|
3223
|
+
unknown.push(entity);
|
|
3224
|
+
else if (isImplementorHost && entity.bucket === "implementor")
|
|
3225
|
+
implementor.push(entity);
|
|
3226
|
+
else if (isImplementorHost && entity.bucket === "reviewer")
|
|
3227
|
+
reviewer.push(entity);
|
|
3228
|
+
else
|
|
3229
|
+
flow.push(entity);
|
|
3230
|
+
}
|
|
3231
|
+
const buckets = [];
|
|
3232
|
+
if (implementor.length > 0) {
|
|
3233
|
+
buckets.push({ id: "implementor", entities: orderedByRole(implementor, SDD_BUCKET_ROLES.implementor) });
|
|
3234
|
+
}
|
|
3235
|
+
if (reviewer.length > 0) {
|
|
3236
|
+
buckets.push({ id: "reviewer", entities: orderedByRole(reviewer, SDD_BUCKET_ROLES.reviewer) });
|
|
3237
|
+
}
|
|
3238
|
+
if (unknown.length > 0) {
|
|
3239
|
+
buckets.push({ id: UNKNOWN_COLUMN, entities: orderedByRole(unknown, []) });
|
|
3240
|
+
}
|
|
3241
|
+
return {
|
|
3242
|
+
id: stageId,
|
|
3243
|
+
label: stageId.slice(stageId.indexOf(":") + 1),
|
|
3244
|
+
flow: orderedByRole(flow, stage?.roles ?? []),
|
|
3245
|
+
buckets
|
|
3246
|
+
};
|
|
3247
|
+
})
|
|
3248
|
+
}));
|
|
3614
3249
|
}
|
|
3615
3250
|
function StatusPoint({ status, done }) {
|
|
3616
|
-
const className =
|
|
3251
|
+
const className = agent_list_module_default.agentStatusDot + (status === "running" ? ` ${agent_list_module_default.agentStatusRunning}` : status === "settled" ? done ? ` ${agent_list_module_default.agentStatusSettled}` : ` ${agent_list_module_default.agentStatusIdle}` : status === "error" || status === "denied" ? ` ${agent_list_module_default.agentStatusError}` : status === "advisory" ? ` ${agent_list_module_default.agentStatusAdvisory}` : ` ${agent_list_module_default.agentStatusIdle}`);
|
|
3617
3252
|
if (status === "settled" && done) {
|
|
3618
|
-
return /* @__PURE__ */
|
|
3253
|
+
return /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3619
3254
|
className,
|
|
3620
3255
|
"data-agent-status": status,
|
|
3621
3256
|
"data-agent-done": "true",
|
|
@@ -3623,13 +3258,13 @@ function StatusPoint({ status, done }) {
|
|
|
3623
3258
|
children: "✓"
|
|
3624
3259
|
});
|
|
3625
3260
|
}
|
|
3626
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3627
3262
|
className,
|
|
3628
3263
|
"data-agent-status": status,
|
|
3629
3264
|
"aria-hidden": "true"
|
|
3630
3265
|
});
|
|
3631
3266
|
}
|
|
3632
|
-
function EntityCard({ entity, t
|
|
3267
|
+
function EntityCard({ entity, t }) {
|
|
3633
3268
|
const running = entity.status === "running";
|
|
3634
3269
|
const done = entity.status === "settled" && entity.emphasis !== "off";
|
|
3635
3270
|
const title = entity.idle ? entity.name : entity.role !== "" ? entity.role : entity.name;
|
|
@@ -3638,9 +3273,8 @@ function EntityCard({ entity, t, box }) {
|
|
|
3638
3273
|
record2.push(entity.agent);
|
|
3639
3274
|
if (entity.task !== null)
|
|
3640
3275
|
record2.push(entity.task);
|
|
3641
|
-
return /* @__PURE__ */
|
|
3642
|
-
className: entity.idle ? `${
|
|
3643
|
-
style: { left: box.x, top: box.y, width: box.w, height: box.h },
|
|
3276
|
+
return /* @__PURE__ */ jsx_runtime9.jsxs("li", {
|
|
3277
|
+
className: entity.idle ? `${agent_list_module_default.agentCard} ${agent_list_module_default.agentCardIdle}` : running ? `${agent_list_module_default.agentCard} ${agent_list_module_default.agentCardRunning}` : done ? `${agent_list_module_default.agentCard} ${agent_list_module_default.agentCardDone}` : agent_list_module_default.agentCard,
|
|
3644
3278
|
"data-agent-entity": entity.key,
|
|
3645
3279
|
"data-agent-status": entity.status,
|
|
3646
3280
|
"data-agent-idle": entity.idle ? "true" : undefined,
|
|
@@ -3650,106 +3284,71 @@ function EntityCard({ entity, t, box }) {
|
|
|
3650
3284
|
"data-agent-bucket": entity.bucket ?? undefined,
|
|
3651
3285
|
"data-agent-emphasis": entity.emphasis ?? undefined,
|
|
3652
3286
|
children: [
|
|
3653
|
-
entity.zone === "on-demand" && /* @__PURE__ */
|
|
3654
|
-
className:
|
|
3287
|
+
entity.zone === "on-demand" && /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3288
|
+
className: agent_list_module_default.onDemandBadge,
|
|
3655
3289
|
"data-agent-on-demand": "true",
|
|
3656
3290
|
children: t("zone.agents.on-demand")
|
|
3657
3291
|
}),
|
|
3658
|
-
/* @__PURE__ */
|
|
3659
|
-
className:
|
|
3660
|
-
"data-agent-port": "north",
|
|
3661
|
-
"aria-hidden": "true"
|
|
3662
|
-
}),
|
|
3663
|
-
/* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3664
|
-
className: agent_canvas_module_default.agentPort,
|
|
3665
|
-
"data-agent-port": "south",
|
|
3666
|
-
"aria-hidden": "true"
|
|
3667
|
-
}),
|
|
3668
|
-
/* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3669
|
-
className: agent_canvas_module_default.agentPort,
|
|
3670
|
-
"data-agent-port": "west",
|
|
3671
|
-
"aria-hidden": "true"
|
|
3672
|
-
}),
|
|
3673
|
-
/* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3674
|
-
className: agent_canvas_module_default.agentPort,
|
|
3675
|
-
"data-agent-port": "east",
|
|
3676
|
-
"aria-hidden": "true"
|
|
3677
|
-
}),
|
|
3678
|
-
/* @__PURE__ */ jsx_runtime7.jsxs("div", {
|
|
3679
|
-
className: agent_canvas_module_default.agentCardLine,
|
|
3292
|
+
/* @__PURE__ */ jsx_runtime9.jsxs("div", {
|
|
3293
|
+
className: agent_list_module_default.agentCardLine,
|
|
3680
3294
|
children: [
|
|
3681
|
-
/* @__PURE__ */
|
|
3682
|
-
className:
|
|
3295
|
+
/* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3296
|
+
className: agent_list_module_default.agentCardName,
|
|
3683
3297
|
title,
|
|
3684
3298
|
children: title
|
|
3685
3299
|
}),
|
|
3686
|
-
/* @__PURE__ */
|
|
3300
|
+
/* @__PURE__ */ jsx_runtime9.jsx(StatusPoint, {
|
|
3687
3301
|
status: entity.status,
|
|
3688
3302
|
done
|
|
3689
3303
|
}),
|
|
3690
|
-
entity.count > 1 && /* @__PURE__ */
|
|
3691
|
-
className:
|
|
3304
|
+
entity.count > 1 && /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3305
|
+
className: agent_list_module_default.agentCount,
|
|
3692
3306
|
"data-agent-count": entity.count,
|
|
3693
3307
|
children: `×${entity.count}`
|
|
3694
3308
|
})
|
|
3695
3309
|
]
|
|
3696
3310
|
}),
|
|
3697
|
-
entity.role !== "" && entity.role !== entity.key && /* @__PURE__ */
|
|
3698
|
-
className:
|
|
3311
|
+
entity.role !== "" && entity.role !== entity.key && /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3312
|
+
className: agent_list_module_default.agentRoleChip,
|
|
3699
3313
|
"data-agent-role": entity.role,
|
|
3700
3314
|
children: entity.role
|
|
3701
3315
|
}),
|
|
3702
|
-
record2.length > 0 && /* @__PURE__ */
|
|
3703
|
-
className:
|
|
3316
|
+
record2.length > 0 && /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3317
|
+
className: agent_list_module_default.agentRecord,
|
|
3704
3318
|
"data-agent-record": true,
|
|
3705
3319
|
children: record2.join(" · ")
|
|
3706
3320
|
})
|
|
3707
3321
|
]
|
|
3708
3322
|
});
|
|
3709
3323
|
}
|
|
3710
|
-
function
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
e.currentTarget.setPointerCapture(e.pointerId);
|
|
3721
|
-
dragRef.current = panDragStart(pan, e.clientX, e.clientY);
|
|
3722
|
-
};
|
|
3723
|
-
const handlePointerMove = (e) => {
|
|
3724
|
-
const drag = dragRef.current;
|
|
3725
|
-
if (drag === null)
|
|
3726
|
-
return;
|
|
3727
|
-
setPan(panDragMove(drag, e.clientX, e.clientY));
|
|
3728
|
-
};
|
|
3729
|
-
const handlePointerEnd = (e) => {
|
|
3730
|
-
dragRef.current = null;
|
|
3731
|
-
if (e.currentTarget.hasPointerCapture(e.pointerId)) {
|
|
3732
|
-
e.currentTarget.releasePointerCapture(e.pointerId);
|
|
3733
|
-
}
|
|
3734
|
-
};
|
|
3324
|
+
function subBucketLabel(id, t) {
|
|
3325
|
+
if (id === "implementor")
|
|
3326
|
+
return t("zone.agents.bucket.implementor");
|
|
3327
|
+
if (id === "reviewer")
|
|
3328
|
+
return t("zone.agents.bucket.reviewer");
|
|
3329
|
+
return t("zone.agents.unknown-sub");
|
|
3330
|
+
}
|
|
3331
|
+
function AgentListPage({ view, iteration, t }) {
|
|
3332
|
+
const { degraded, note, executing, pending } = view;
|
|
3333
|
+
const groups = import_react2.useMemo(() => buildGroups(view), [view]);
|
|
3735
3334
|
const noteInfo = degraded ? { anchor: "degraded", text: t("flow.degraded") } : note === "empty" ? { anchor: "empty", text: t("flow.empty") } : note === "settle-only" ? { anchor: "settle-only", text: t("flow.settle-only") } : null;
|
|
3736
|
-
return /* @__PURE__ */
|
|
3737
|
-
className:
|
|
3335
|
+
return /* @__PURE__ */ jsx_runtime9.jsxs("div", {
|
|
3336
|
+
className: agent_list_module_default.listPage,
|
|
3738
3337
|
"data-mstar-page": "agents",
|
|
3739
3338
|
children: [
|
|
3740
|
-
/* @__PURE__ */
|
|
3339
|
+
/* @__PURE__ */ jsx_runtime9.jsx(IterationInfoSection, {
|
|
3741
3340
|
iteration,
|
|
3742
3341
|
t
|
|
3743
3342
|
}),
|
|
3744
|
-
/* @__PURE__ */
|
|
3745
|
-
className:
|
|
3343
|
+
/* @__PURE__ */ jsx_runtime9.jsxs("header", {
|
|
3344
|
+
className: agent_list_module_default.listHeader,
|
|
3746
3345
|
children: [
|
|
3747
|
-
/* @__PURE__ */
|
|
3748
|
-
className:
|
|
3346
|
+
/* @__PURE__ */ jsx_runtime9.jsx("h2", {
|
|
3347
|
+
className: agent_list_module_default.listTitle,
|
|
3749
3348
|
children: t("zone.agents.title")
|
|
3750
3349
|
}),
|
|
3751
|
-
/* @__PURE__ */
|
|
3752
|
-
className:
|
|
3350
|
+
/* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3351
|
+
className: agent_list_module_default.listSummary,
|
|
3753
3352
|
"data-agent-summary": true,
|
|
3754
3353
|
"data-agent-summary-executing": executing,
|
|
3755
3354
|
"data-agent-summary-pending": pending,
|
|
@@ -3757,172 +3356,81 @@ function AgentCanvasPage({ view, iteration, t, initialPan }) {
|
|
|
3757
3356
|
})
|
|
3758
3357
|
]
|
|
3759
3358
|
}),
|
|
3760
|
-
noteInfo !== null && /* @__PURE__ */
|
|
3761
|
-
className:
|
|
3762
|
-
"data-
|
|
3359
|
+
noteInfo !== null && /* @__PURE__ */ jsx_runtime9.jsx("p", {
|
|
3360
|
+
className: agent_list_module_default.listNote,
|
|
3361
|
+
"data-agents-note": noteInfo.anchor,
|
|
3763
3362
|
children: noteInfo.text
|
|
3764
3363
|
}),
|
|
3765
|
-
/* @__PURE__ */
|
|
3766
|
-
className:
|
|
3767
|
-
"data-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
onLostPointerCapture: handlePointerEnd,
|
|
3773
|
-
children: /* @__PURE__ */ jsx_runtime7.jsxs("div", {
|
|
3774
|
-
className: agent_canvas_module_default.canvasContent,
|
|
3775
|
-
"data-canvas-pan": true,
|
|
3776
|
-
style: { transform: panTransform(pan), width: layout.width, height: layout.height },
|
|
3364
|
+
/* @__PURE__ */ jsx_runtime9.jsx("div", {
|
|
3365
|
+
className: `${agent_list_module_default.agentList} ${panel_module_default.groupGrid}`,
|
|
3366
|
+
"data-agent-list": true,
|
|
3367
|
+
children: groups.map((group) => /* @__PURE__ */ jsx_runtime9.jsxs("section", {
|
|
3368
|
+
className: agent_list_module_default.agentGroup,
|
|
3369
|
+
"data-agent-group": group.phase,
|
|
3370
|
+
"data-agent-group-index": group.index,
|
|
3777
3371
|
children: [
|
|
3778
|
-
|
|
3779
|
-
className:
|
|
3780
|
-
style: { left: group.label.x, top: group.label.y, width: group.label.w },
|
|
3781
|
-
"data-canvas-group": group.phase,
|
|
3782
|
-
"data-canvas-group-index": group.index,
|
|
3372
|
+
/* @__PURE__ */ jsx_runtime9.jsxs("span", {
|
|
3373
|
+
className: agent_list_module_default.groupLabel,
|
|
3783
3374
|
children: [
|
|
3784
3375
|
group.phase === "iteration-start" ? t("zone.agents.group.phase-1") : group.phase === "autonomous-execute" ? t("zone.agents.group.phase-2") : t("zone.agents.group.phase-n", { n: String(group.index) }),
|
|
3785
|
-
group.planNote && (view.activePlanId === null ? /* @__PURE__ */
|
|
3786
|
-
className:
|
|
3787
|
-
"data-
|
|
3376
|
+
group.planNote && (view.activePlanId === null ? /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3377
|
+
className: agent_list_module_default.groupNoPlan,
|
|
3378
|
+
"data-agent-group-no-plan": true,
|
|
3788
3379
|
children: t("zone.agents.group.no-plan")
|
|
3789
|
-
}) : /* @__PURE__ */
|
|
3790
|
-
className:
|
|
3791
|
-
"data-
|
|
3380
|
+
}) : /* @__PURE__ */ jsx_runtime9.jsxs("span", {
|
|
3381
|
+
className: agent_list_module_default.groupPlan,
|
|
3382
|
+
"data-agent-group-plan": view.activePlanId,
|
|
3792
3383
|
children: [
|
|
3793
3384
|
t("zone.agents.group.plan", { plan: view.activePlanId }),
|
|
3794
|
-
view.activePlanCount > 1 && /* @__PURE__ */
|
|
3795
|
-
className:
|
|
3796
|
-
"data-
|
|
3385
|
+
view.activePlanCount > 1 && /* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3386
|
+
className: agent_list_module_default.groupPlanMore,
|
|
3387
|
+
"data-agent-group-plan-more": true,
|
|
3797
3388
|
children: t("zone.agents.group.plan-more", { n: String(view.activePlanCount - 1) })
|
|
3798
3389
|
})
|
|
3799
3390
|
]
|
|
3800
3391
|
}))
|
|
3801
3392
|
]
|
|
3802
|
-
}, group.phase)),
|
|
3803
|
-
layout.columns.map((col) => /* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3804
|
-
className: agent_canvas_module_default.canvasColumnLabel,
|
|
3805
|
-
style: { left: col.x, top: col.y },
|
|
3806
|
-
"data-canvas-column": col.id,
|
|
3807
|
-
children: col.id.slice(col.id.indexOf(":") + 1)
|
|
3808
|
-
}, col.id)),
|
|
3809
|
-
Array.from(layout.subBuckets.entries()).map(([colId, geometry]) => /* @__PURE__ */ jsx_runtime7.jsxs("span", {
|
|
3810
|
-
children: [
|
|
3811
|
-
geometry.implementor.band !== null && /* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3812
|
-
className: agent_canvas_module_default.subBucketLabel,
|
|
3813
|
-
style: { left: geometry.implementor.label.x, top: geometry.implementor.label.y, width: geometry.implementor.label.w },
|
|
3814
|
-
"data-sub-bucket": "implementor",
|
|
3815
|
-
children: t("zone.agents.bucket.implementor")
|
|
3816
|
-
}),
|
|
3817
|
-
geometry.reviewer.band !== null && /* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3818
|
-
className: agent_canvas_module_default.subBucketLabel,
|
|
3819
|
-
style: { left: geometry.reviewer.label.x, top: geometry.reviewer.label.y, width: geometry.reviewer.label.w },
|
|
3820
|
-
"data-sub-bucket": "reviewer",
|
|
3821
|
-
children: t("zone.agents.bucket.reviewer")
|
|
3822
|
-
})
|
|
3823
|
-
]
|
|
3824
|
-
}, colId)),
|
|
3825
|
-
layout.unknown !== null && layout.unknown.band !== null && /* @__PURE__ */ jsx_runtime7.jsx("span", {
|
|
3826
|
-
className: agent_canvas_module_default.subBucketLabel,
|
|
3827
|
-
style: { left: layout.unknown.label.x, top: layout.unknown.label.y, width: layout.unknown.label.w },
|
|
3828
|
-
"data-sub-bucket": UNKNOWN_COLUMN,
|
|
3829
|
-
children: t("zone.agents.unknown-sub")
|
|
3830
3393
|
}),
|
|
3831
|
-
/* @__PURE__ */
|
|
3832
|
-
className:
|
|
3833
|
-
|
|
3834
|
-
height: layout.height,
|
|
3835
|
-
"aria-hidden": "true",
|
|
3394
|
+
group.stages.map((stage) => /* @__PURE__ */ jsx_runtime9.jsxs("section", {
|
|
3395
|
+
className: agent_list_module_default.stageGroup,
|
|
3396
|
+
"data-agent-stage": stage.id,
|
|
3836
3397
|
children: [
|
|
3837
|
-
/* @__PURE__ */
|
|
3398
|
+
/* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3399
|
+
className: agent_list_module_default.stageLabel,
|
|
3400
|
+
children: stage.label
|
|
3401
|
+
}),
|
|
3402
|
+
stage.flow.length > 0 && /* @__PURE__ */ jsx_runtime9.jsx("ul", {
|
|
3403
|
+
className: agent_list_module_default.cardList,
|
|
3404
|
+
children: stage.flow.map((entity) => /* @__PURE__ */ jsx_runtime9.jsx(EntityCard, {
|
|
3405
|
+
entity,
|
|
3406
|
+
t
|
|
3407
|
+
}, entity.key))
|
|
3408
|
+
}),
|
|
3409
|
+
stage.buckets.map((bucket) => /* @__PURE__ */ jsx_runtime9.jsxs("section", {
|
|
3410
|
+
className: agent_list_module_default.subBucket,
|
|
3411
|
+
"data-sub-bucket": bucket.id,
|
|
3838
3412
|
children: [
|
|
3839
|
-
/* @__PURE__ */
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
viewBox: "0 0 6 8",
|
|
3843
|
-
refX: "6",
|
|
3844
|
-
refY: "4",
|
|
3845
|
-
markerWidth: "6",
|
|
3846
|
-
markerHeight: "8",
|
|
3847
|
-
orient: "auto",
|
|
3848
|
-
children: /* @__PURE__ */ jsx_runtime7.jsx("path", {
|
|
3849
|
-
className: agent_canvas_module_default.canvasArrowActual,
|
|
3850
|
-
d: "M 0 1 L 6 4 L 0 7 z"
|
|
3851
|
-
})
|
|
3852
|
-
}),
|
|
3853
|
-
/* @__PURE__ */ jsx_runtime7.jsx("marker", {
|
|
3854
|
-
id: "canvas-arrow-supervise",
|
|
3855
|
-
markerUnits: "userSpaceOnUse",
|
|
3856
|
-
viewBox: "0 0 6 8",
|
|
3857
|
-
refX: "6",
|
|
3858
|
-
refY: "4",
|
|
3859
|
-
markerWidth: "6",
|
|
3860
|
-
markerHeight: "8",
|
|
3861
|
-
orient: "auto-start-reverse",
|
|
3862
|
-
children: /* @__PURE__ */ jsx_runtime7.jsx("path", {
|
|
3863
|
-
className: agent_canvas_module_default.canvasArrowSupervise,
|
|
3864
|
-
d: "M 0 1 L 6 4 L 0 7 z"
|
|
3865
|
-
})
|
|
3413
|
+
/* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
3414
|
+
className: agent_list_module_default.subBucketLabel,
|
|
3415
|
+
children: subBucketLabel(bucket.id, t)
|
|
3866
3416
|
}),
|
|
3867
|
-
/* @__PURE__ */
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
markerWidth: "6",
|
|
3874
|
-
markerHeight: "8",
|
|
3875
|
-
orient: "auto-start-reverse",
|
|
3876
|
-
children: /* @__PURE__ */ jsx_runtime7.jsx("path", {
|
|
3877
|
-
className: agent_canvas_module_default.canvasArrowSuperviseLit,
|
|
3878
|
-
d: "M 0 1 L 6 4 L 0 7 z"
|
|
3879
|
-
})
|
|
3417
|
+
/* @__PURE__ */ jsx_runtime9.jsx("ul", {
|
|
3418
|
+
className: agent_list_module_default.cardList,
|
|
3419
|
+
children: bucket.entities.map((entity) => /* @__PURE__ */ jsx_runtime9.jsx(EntityCard, {
|
|
3420
|
+
entity,
|
|
3421
|
+
t
|
|
3422
|
+
}, entity.key))
|
|
3880
3423
|
})
|
|
3881
3424
|
]
|
|
3882
|
-
})
|
|
3883
|
-
edgeGeoms.map((geom, i) => {
|
|
3884
|
-
const curve = geom.curve;
|
|
3885
|
-
if (curve === null)
|
|
3886
|
-
return null;
|
|
3887
|
-
if (geom.edge.kind === "supervise") {
|
|
3888
|
-
const lit = geom.edge.evidenced === true;
|
|
3889
|
-
return /* @__PURE__ */ jsx_runtime7.jsx("path", {
|
|
3890
|
-
className: `${agent_canvas_module_default.canvasEdgeCurve} ${lit ? `${agent_canvas_module_default.canvasEdgeSupervise} ${agent_canvas_module_default.canvasEdgeSuperviseLit}` : agent_canvas_module_default.canvasEdgeSupervise}`,
|
|
3891
|
-
d: curve.d,
|
|
3892
|
-
markerStart: lit ? "url(#canvas-arrow-supervise-lit)" : "url(#canvas-arrow-supervise)",
|
|
3893
|
-
markerEnd: lit ? "url(#canvas-arrow-supervise-lit)" : "url(#canvas-arrow-supervise)",
|
|
3894
|
-
"data-agent-edge-supervise": `${geom.edge.source}->${geom.edge.target}`,
|
|
3895
|
-
"data-agent-edge-supervise-lit": lit ? "true" : undefined
|
|
3896
|
-
}, `supervise-${i}-${geom.edge.source}-${geom.edge.target}`);
|
|
3897
|
-
}
|
|
3898
|
-
return /* @__PURE__ */ jsx_runtime7.jsx("path", {
|
|
3899
|
-
className: `${agent_canvas_module_default.canvasEdgeCurve} ${agent_canvas_module_default.canvasEdgeActual}`,
|
|
3900
|
-
d: curve.d,
|
|
3901
|
-
markerEnd: "url(#canvas-arrow-actual)",
|
|
3902
|
-
"data-agent-edge-actual": `${geom.edge.source}->${geom.edge.target}`
|
|
3903
|
-
}, `actual-${i}-${geom.edge.source}-${geom.edge.target}`);
|
|
3904
|
-
})
|
|
3425
|
+
}, bucket.id))
|
|
3905
3426
|
]
|
|
3906
|
-
})
|
|
3907
|
-
/* @__PURE__ */ jsx_runtime7.jsx("ul", {
|
|
3908
|
-
className: agent_canvas_module_default.canvasCards,
|
|
3909
|
-
children: entities.map((entity) => {
|
|
3910
|
-
const box = layout.cards.get(entity.key);
|
|
3911
|
-
if (box === undefined)
|
|
3912
|
-
return null;
|
|
3913
|
-
return /* @__PURE__ */ jsx_runtime7.jsx(EntityCard, {
|
|
3914
|
-
entity,
|
|
3915
|
-
t,
|
|
3916
|
-
box
|
|
3917
|
-
}, entity.key);
|
|
3918
|
-
})
|
|
3919
|
-
})
|
|
3427
|
+
}, stage.id))
|
|
3920
3428
|
]
|
|
3921
|
-
})
|
|
3429
|
+
}, group.phase))
|
|
3922
3430
|
}),
|
|
3923
|
-
/* @__PURE__ */
|
|
3924
|
-
className:
|
|
3925
|
-
children: /* @__PURE__ */
|
|
3431
|
+
/* @__PURE__ */ jsx_runtime9.jsx("div", {
|
|
3432
|
+
className: agent_list_module_default.listLegend,
|
|
3433
|
+
children: /* @__PURE__ */ jsx_runtime9.jsx(Legend, {
|
|
3926
3434
|
t
|
|
3927
3435
|
})
|
|
3928
3436
|
})
|
|
@@ -3986,15 +3494,9 @@ var css4 = `
|
|
|
3986
3494
|
|
|
3987
3495
|
|
|
3988
3496
|
|
|
3497
|
+
|
|
3989
3498
|
.\\38 e395e34_eventLogPage {
|
|
3990
|
-
|
|
3991
|
-
min-height: 0;
|
|
3992
|
-
display: grid;
|
|
3993
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3994
|
-
grid-template-rows: minmax(0, 1fr);
|
|
3995
|
-
gap: var(--mstar-space-3);
|
|
3996
|
-
padding: var(--mstar-space-3);
|
|
3997
|
-
overflow: hidden;
|
|
3499
|
+
min-width: 0;
|
|
3998
3500
|
}
|
|
3999
3501
|
|
|
4000
3502
|
|
|
@@ -4004,7 +3506,6 @@ var css4 = `
|
|
|
4004
3506
|
flex-direction: column;
|
|
4005
3507
|
gap: var(--mstar-space-2);
|
|
4006
3508
|
min-width: 0;
|
|
4007
|
-
min-height: 0;
|
|
4008
3509
|
padding: var(--mstar-space-3);
|
|
4009
3510
|
border: 1px solid var(--dsw-alias-border-l1);
|
|
4010
3511
|
border-radius: 8px;
|
|
@@ -4038,9 +3539,6 @@ var css4 = `
|
|
|
4038
3539
|
margin: 0;
|
|
4039
3540
|
padding: 0;
|
|
4040
3541
|
list-style: none;
|
|
4041
|
-
flex: 1;
|
|
4042
|
-
min-height: 0;
|
|
4043
|
-
overflow-y: auto;
|
|
4044
3542
|
}
|
|
4045
3543
|
|
|
4046
3544
|
|
|
@@ -4235,15 +3733,6 @@ var css4 = `
|
|
|
4235
3733
|
.bd3cb6ff_detailValueMissing {
|
|
4236
3734
|
color: var(--dsw-alias-label-caption);
|
|
4237
3735
|
}
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
@media (max-width: 1200px) {
|
|
4242
|
-
.\\38 e395e34_eventLogPage {
|
|
4243
|
-
grid-template-columns: 1fr;
|
|
4244
|
-
grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
|
|
4245
|
-
}
|
|
4246
|
-
}
|
|
4247
3736
|
`;
|
|
4248
3737
|
var tagId4 = "@mstar-harness/dsh/event-log.module.css";
|
|
4249
3738
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId4) + "]") === null) {
|
|
@@ -4256,7 +3745,7 @@ if (typeof document !== "undefined" && document.querySelector("style[data-plugin
|
|
|
4256
3745
|
var event_log_module_default = { eventLogPage: "8e395e34_eventLogPage", section: "fcdd0ccc_section", sectionTitle: "aded23ea_sectionTitle", empty: "18a7beee_empty", rowList: "40959323_rowList", eventSummary: "5a6ad2b9_eventSummary", violationSummary: "c5acc9f0_violationSummary", eventDetails: "1e6e6b57_eventDetails", eventRole: "397ccf2b_eventRole", eventStage: "18dd486b_eventStage", eventTarget: "90ce3f22_eventTarget", eventTime: "ae6064ce_eventTime", eventAgent: "ff483c84_eventAgent", eventDuration: "3e37545b_eventDuration", statusChip: "c32c2c65_statusChip", statusDot: "88d97a8a_statusDot", statusDispatched: "d260dfec_statusDispatched", statusAdvisory: "8bbef368_statusAdvisory", statusDenied: "d1f67934_statusDenied", statusOk: "ba35cad1_statusOk", statusError: "819501bf_statusError", statusUnknown: "53c75757_statusUnknown", settledMark: "398c5713_settledMark", settleGlyph: "83e240f0_settleGlyph", unexpectedBadge: "88450335_unexpectedBadge", severityChip: "8f4e5388_severityChip", violationCode: "e42c0bfd_violationCode", violationMessage: "35d5910f_violationMessage", detailBody: "558cab30_detailBody", detailField: "3f8595e8_detailField", detailLabel: "a6812cb2_detailLabel", detailValue: "079e736d_detailValue", detailValueMissing: "bd3cb6ff_detailValueMissing" };
|
|
4257
3746
|
|
|
4258
3747
|
// src/client/panel/pages/EventLogPage.tsx
|
|
4259
|
-
var
|
|
3748
|
+
var jsx_runtime10 = require("react/jsx-runtime");
|
|
4260
3749
|
function flowStatusLabel(status, t) {
|
|
4261
3750
|
switch (status) {
|
|
4262
3751
|
case "dispatched":
|
|
@@ -4307,16 +3796,16 @@ function orDash(value) {
|
|
|
4307
3796
|
}
|
|
4308
3797
|
function DetailField({ field, label, value }) {
|
|
4309
3798
|
const missing = value === "";
|
|
4310
|
-
return /* @__PURE__ */
|
|
3799
|
+
return /* @__PURE__ */ jsx_runtime10.jsxs("div", {
|
|
4311
3800
|
className: event_log_module_default.detailField,
|
|
4312
3801
|
"data-event-log-field": field,
|
|
4313
3802
|
"data-event-log-missing": missing ? "true" : "false",
|
|
4314
3803
|
children: [
|
|
4315
|
-
/* @__PURE__ */
|
|
3804
|
+
/* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4316
3805
|
className: event_log_module_default.detailLabel,
|
|
4317
3806
|
children: label
|
|
4318
3807
|
}),
|
|
4319
|
-
/* @__PURE__ */
|
|
3808
|
+
/* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4320
3809
|
className: missing ? `${event_log_module_default.detailValue} ${event_log_module_default.detailValueMissing}` : event_log_module_default.detailValue,
|
|
4321
3810
|
children: missing ? "—" : value
|
|
4322
3811
|
})
|
|
@@ -4328,88 +3817,88 @@ function EventDetailsBody({
|
|
|
4328
3817
|
source,
|
|
4329
3818
|
t
|
|
4330
3819
|
}) {
|
|
4331
|
-
return /* @__PURE__ */
|
|
3820
|
+
return /* @__PURE__ */ jsx_runtime10.jsxs("div", {
|
|
4332
3821
|
className: event_log_module_default.detailBody,
|
|
4333
3822
|
"data-event-log-detail-body": true,
|
|
4334
3823
|
children: [
|
|
4335
|
-
/* @__PURE__ */
|
|
3824
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4336
3825
|
field: "role",
|
|
4337
3826
|
label: t("event-log.field.role"),
|
|
4338
3827
|
value: entry.role
|
|
4339
3828
|
}),
|
|
4340
|
-
/* @__PURE__ */
|
|
3829
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4341
3830
|
field: "agent",
|
|
4342
3831
|
label: t("event-log.field.agent"),
|
|
4343
3832
|
value: entry.agent
|
|
4344
3833
|
}),
|
|
4345
|
-
/* @__PURE__ */
|
|
3834
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4346
3835
|
field: "stage",
|
|
4347
3836
|
label: t("event-log.field.stage"),
|
|
4348
3837
|
value: entry.stage
|
|
4349
3838
|
}),
|
|
4350
|
-
/* @__PURE__ */
|
|
3839
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4351
3840
|
field: "plan",
|
|
4352
3841
|
label: t("event-log.field.plan"),
|
|
4353
3842
|
value: source?.planId ?? ""
|
|
4354
3843
|
}),
|
|
4355
|
-
/* @__PURE__ */
|
|
3844
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4356
3845
|
field: "task",
|
|
4357
3846
|
label: t("event-log.field.task"),
|
|
4358
3847
|
value: source?.taskId ?? ""
|
|
4359
3848
|
}),
|
|
4360
|
-
/* @__PURE__ */
|
|
3849
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4361
3850
|
field: "category",
|
|
4362
3851
|
label: t("event-log.field.category"),
|
|
4363
3852
|
value: source?.taskCategory ?? ""
|
|
4364
3853
|
}),
|
|
4365
|
-
/* @__PURE__ */
|
|
3854
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4366
3855
|
field: "time",
|
|
4367
3856
|
label: t("event-log.field.time"),
|
|
4368
3857
|
value: source === undefined ? "" : formatEventTimeFull(source.ts)
|
|
4369
3858
|
}),
|
|
4370
|
-
/* @__PURE__ */
|
|
3859
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4371
3860
|
field: "kind",
|
|
4372
3861
|
label: t("event-log.field.kind"),
|
|
4373
3862
|
value: entry.eventKind === "dispatch" ? t("event-log.kind.dispatch") : entry.eventKind === "settle" ? t("event-log.kind.settle") : entry.eventKind
|
|
4374
3863
|
}),
|
|
4375
|
-
/* @__PURE__ */
|
|
3864
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4376
3865
|
field: "status",
|
|
4377
3866
|
label: t("event-log.field.status"),
|
|
4378
3867
|
value: flowStatusLabel(entry.status, t)
|
|
4379
3868
|
}),
|
|
4380
|
-
/* @__PURE__ */
|
|
3869
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4381
3870
|
field: "expected",
|
|
4382
3871
|
label: t("event-log.field.expected"),
|
|
4383
3872
|
value: entry.eventKind === "settle" || isWorkflowKind(entry.eventKind) ? "" : entry.expected ? t("event-log.yes") : t("event-log.no")
|
|
4384
3873
|
}),
|
|
4385
|
-
/* @__PURE__ */
|
|
3874
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4386
3875
|
field: "settled",
|
|
4387
3876
|
label: t("event-log.field.settled"),
|
|
4388
3877
|
value: entry.eventKind === "settle" || isWorkflowKind(entry.eventKind) ? "" : entry.settled ? t("event-log.yes") : t("event-log.no")
|
|
4389
3878
|
}),
|
|
4390
|
-
/* @__PURE__ */
|
|
3879
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4391
3880
|
field: "duration",
|
|
4392
3881
|
label: t("event-log.field.duration"),
|
|
4393
3882
|
value: entry.durationMs === null ? "" : `${entry.durationMs}ms`
|
|
4394
3883
|
}),
|
|
4395
|
-
isWorkflowKind(entry.eventKind) && /* @__PURE__ */
|
|
3884
|
+
isWorkflowKind(entry.eventKind) && /* @__PURE__ */ jsx_runtime10.jsxs(jsx_runtime10.Fragment, {
|
|
4396
3885
|
children: [
|
|
4397
|
-
/* @__PURE__ */
|
|
3886
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4398
3887
|
field: "run-id",
|
|
4399
3888
|
label: t("event-log.field.run-id"),
|
|
4400
3889
|
value: source?.runId ?? ""
|
|
4401
3890
|
}),
|
|
4402
|
-
/* @__PURE__ */
|
|
3891
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4403
3892
|
field: "name",
|
|
4404
3893
|
label: t("event-log.field.name"),
|
|
4405
3894
|
value: entry.name
|
|
4406
3895
|
}),
|
|
4407
|
-
/* @__PURE__ */
|
|
3896
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4408
3897
|
field: "members",
|
|
4409
3898
|
label: t("event-log.field.members"),
|
|
4410
3899
|
value: source?.memberCount !== undefined ? String(source.memberCount) : ""
|
|
4411
3900
|
}),
|
|
4412
|
-
/* @__PURE__ */
|
|
3901
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4413
3902
|
field: "stop-reason",
|
|
4414
3903
|
label: t("event-log.field.stop-reason"),
|
|
4415
3904
|
value: source?.stopReason ?? ""
|
|
@@ -4426,68 +3915,68 @@ function EventLogEventRow({
|
|
|
4426
3915
|
}) {
|
|
4427
3916
|
const time = formatEventTime(entry.ts);
|
|
4428
3917
|
const workflowIdentity = isWorkflowKind(entry.eventKind) ? entry.name !== "" ? entry.name : entry.runId !== "" ? entry.runId : "" : "";
|
|
4429
|
-
return /* @__PURE__ */
|
|
3918
|
+
return /* @__PURE__ */ jsx_runtime10.jsx("li", {
|
|
4430
3919
|
className: event_log_module_default.eventRow,
|
|
4431
3920
|
"data-event-log-row-kind": "event",
|
|
4432
3921
|
"data-event-log-row-id": entry.id,
|
|
4433
3922
|
"data-event-log-expected": entry.expected ? "true" : "false",
|
|
4434
|
-
children: /* @__PURE__ */
|
|
3923
|
+
children: /* @__PURE__ */ jsx_runtime10.jsxs("details", {
|
|
4435
3924
|
className: event_log_module_default.eventDetails,
|
|
4436
3925
|
"data-event-log-details": true,
|
|
4437
3926
|
children: [
|
|
4438
|
-
/* @__PURE__ */
|
|
3927
|
+
/* @__PURE__ */ jsx_runtime10.jsxs("summary", {
|
|
4439
3928
|
className: event_log_module_default.eventSummary,
|
|
4440
3929
|
"data-event-log-summary": true,
|
|
4441
3930
|
children: [
|
|
4442
|
-
/* @__PURE__ */
|
|
3931
|
+
/* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4443
3932
|
className: event_log_module_default.eventRole,
|
|
4444
|
-
children: entry.eventKind === "settle" ? /* @__PURE__ */
|
|
3933
|
+
children: entry.eventKind === "settle" ? /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4445
3934
|
className: event_log_module_default.settleGlyph,
|
|
4446
3935
|
"aria-hidden": "true",
|
|
4447
3936
|
children: "✓"
|
|
4448
|
-
}) : workflowIdentity !== "" ? /* @__PURE__ */
|
|
3937
|
+
}) : workflowIdentity !== "" ? /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4449
3938
|
"data-event-log-name": workflowIdentity,
|
|
4450
3939
|
children: workflowIdentity
|
|
4451
3940
|
}) : entry.role !== "" ? entry.role : t("panel.unknown")
|
|
4452
3941
|
}),
|
|
4453
|
-
entry.stage !== "" && /* @__PURE__ */
|
|
3942
|
+
entry.stage !== "" && /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4454
3943
|
className: event_log_module_default.eventStage,
|
|
4455
3944
|
"data-event-log-stage": entry.stage,
|
|
4456
3945
|
children: entry.stage
|
|
4457
3946
|
}),
|
|
4458
|
-
entry.task !== "" && /* @__PURE__ */
|
|
3947
|
+
entry.task !== "" && /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4459
3948
|
className: event_log_module_default.eventTarget,
|
|
4460
3949
|
"data-event-log-target": entry.task,
|
|
4461
3950
|
children: entry.task
|
|
4462
3951
|
}),
|
|
4463
|
-
time !== "" && /* @__PURE__ */
|
|
3952
|
+
time !== "" && /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4464
3953
|
className: event_log_module_default.eventTime,
|
|
4465
3954
|
"data-event-log-time": time,
|
|
4466
3955
|
children: time
|
|
4467
3956
|
}),
|
|
4468
|
-
/* @__PURE__ */
|
|
3957
|
+
/* @__PURE__ */ jsx_runtime10.jsxs("span", {
|
|
4469
3958
|
className: `${event_log_module_default.statusChip} ${flowStatusClass(entry.status)}`,
|
|
4470
3959
|
"data-event-log-status": entry.status,
|
|
4471
3960
|
children: [
|
|
4472
|
-
/* @__PURE__ */
|
|
3961
|
+
/* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4473
3962
|
className: event_log_module_default.statusDot,
|
|
4474
3963
|
"aria-hidden": "true"
|
|
4475
3964
|
}),
|
|
4476
3965
|
flowStatusLabel(entry.status, t)
|
|
4477
3966
|
]
|
|
4478
3967
|
}),
|
|
4479
|
-
entry.eventKind === "dispatch" && entry.settled && /* @__PURE__ */
|
|
3968
|
+
entry.eventKind === "dispatch" && entry.settled && /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4480
3969
|
className: event_log_module_default.settledMark,
|
|
4481
3970
|
"data-event-log-settled": "true",
|
|
4482
3971
|
"aria-hidden": "true",
|
|
4483
3972
|
children: "✓"
|
|
4484
3973
|
}),
|
|
4485
|
-
entry.agent !== "" && /* @__PURE__ */
|
|
3974
|
+
entry.agent !== "" && /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4486
3975
|
className: event_log_module_default.eventAgent,
|
|
4487
3976
|
"data-event-log-agent": entry.agent,
|
|
4488
3977
|
children: entry.agent
|
|
4489
3978
|
}),
|
|
4490
|
-
entry.durationMs !== null && /* @__PURE__ */
|
|
3979
|
+
entry.durationMs !== null && /* @__PURE__ */ jsx_runtime10.jsxs("span", {
|
|
4491
3980
|
className: event_log_module_default.eventDuration,
|
|
4492
3981
|
"data-event-log-duration": entry.durationMs,
|
|
4493
3982
|
children: [
|
|
@@ -4495,14 +3984,14 @@ function EventLogEventRow({
|
|
|
4495
3984
|
"ms"
|
|
4496
3985
|
]
|
|
4497
3986
|
}),
|
|
4498
|
-
entry.eventKind === "dispatch" && !entry.expected && /* @__PURE__ */
|
|
3987
|
+
entry.eventKind === "dispatch" && !entry.expected && /* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4499
3988
|
className: event_log_module_default.unexpectedBadge,
|
|
4500
3989
|
"data-event-log-unexpected": "true",
|
|
4501
3990
|
children: t("flow.unexpected")
|
|
4502
3991
|
})
|
|
4503
3992
|
]
|
|
4504
3993
|
}),
|
|
4505
|
-
/* @__PURE__ */
|
|
3994
|
+
/* @__PURE__ */ jsx_runtime10.jsx(EventDetailsBody, {
|
|
4506
3995
|
entry,
|
|
4507
3996
|
source,
|
|
4508
3997
|
t
|
|
@@ -4513,50 +4002,50 @@ function EventLogEventRow({
|
|
|
4513
4002
|
}
|
|
4514
4003
|
function ViolationRow({ entry, t }) {
|
|
4515
4004
|
const severity = entry.severity !== "" ? entry.severity : "unknown";
|
|
4516
|
-
return /* @__PURE__ */
|
|
4005
|
+
return /* @__PURE__ */ jsx_runtime10.jsx("li", {
|
|
4517
4006
|
className: event_log_module_default.violationRow,
|
|
4518
4007
|
"data-event-log-row-kind": "violation",
|
|
4519
4008
|
"data-event-log-row-id": entry.id,
|
|
4520
|
-
children: /* @__PURE__ */
|
|
4009
|
+
children: /* @__PURE__ */ jsx_runtime10.jsxs("details", {
|
|
4521
4010
|
className: event_log_module_default.eventDetails,
|
|
4522
4011
|
"data-event-log-details": true,
|
|
4523
4012
|
children: [
|
|
4524
|
-
/* @__PURE__ */
|
|
4013
|
+
/* @__PURE__ */ jsx_runtime10.jsxs("summary", {
|
|
4525
4014
|
className: event_log_module_default.violationSummary,
|
|
4526
4015
|
"data-event-log-summary": true,
|
|
4527
4016
|
children: [
|
|
4528
|
-
/* @__PURE__ */
|
|
4017
|
+
/* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4529
4018
|
className: event_log_module_default.severityChip,
|
|
4530
4019
|
"data-event-log-severity": severity,
|
|
4531
4020
|
children: entry.severity !== "" ? entry.severity : t("panel.unknown")
|
|
4532
4021
|
}),
|
|
4533
|
-
entry.code !== "" && /* @__PURE__ */
|
|
4022
|
+
entry.code !== "" && /* @__PURE__ */ jsx_runtime10.jsx("code", {
|
|
4534
4023
|
className: event_log_module_default.violationCode,
|
|
4535
4024
|
"data-event-log-code": entry.code,
|
|
4536
4025
|
children: entry.code
|
|
4537
4026
|
}),
|
|
4538
|
-
/* @__PURE__ */
|
|
4027
|
+
/* @__PURE__ */ jsx_runtime10.jsx("span", {
|
|
4539
4028
|
className: event_log_module_default.violationMessage,
|
|
4540
4029
|
"data-event-log-message": entry.message,
|
|
4541
4030
|
children: orDash(entry.message)
|
|
4542
4031
|
})
|
|
4543
4032
|
]
|
|
4544
4033
|
}),
|
|
4545
|
-
/* @__PURE__ */
|
|
4034
|
+
/* @__PURE__ */ jsx_runtime10.jsxs("div", {
|
|
4546
4035
|
className: event_log_module_default.detailBody,
|
|
4547
4036
|
"data-event-log-detail-body": true,
|
|
4548
4037
|
children: [
|
|
4549
|
-
/* @__PURE__ */
|
|
4038
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4550
4039
|
field: "severity",
|
|
4551
4040
|
label: t("event-log.field.severity"),
|
|
4552
4041
|
value: entry.severity
|
|
4553
4042
|
}),
|
|
4554
|
-
/* @__PURE__ */
|
|
4043
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4555
4044
|
field: "code",
|
|
4556
4045
|
label: t("event-log.field.code"),
|
|
4557
4046
|
value: entry.code
|
|
4558
4047
|
}),
|
|
4559
|
-
/* @__PURE__ */
|
|
4048
|
+
/* @__PURE__ */ jsx_runtime10.jsx(DetailField, {
|
|
4560
4049
|
field: "message",
|
|
4561
4050
|
label: t("event-log.field.message"),
|
|
4562
4051
|
value: entry.message
|
|
@@ -4573,38 +4062,38 @@ function EventLogPage({ view, t }) {
|
|
|
4573
4062
|
const violationEntries = entries.filter((e) => e.kind === "violation");
|
|
4574
4063
|
const eventById = new Map(view.events.map((event) => [event.id, event]));
|
|
4575
4064
|
if (eventEntries.length === 0 && violationEntries.length === 0) {
|
|
4576
|
-
return /* @__PURE__ */
|
|
4065
|
+
return /* @__PURE__ */ jsx_runtime10.jsx("div", {
|
|
4577
4066
|
className: event_log_module_default.eventLogPage,
|
|
4578
4067
|
"data-mstar-page": "events",
|
|
4579
|
-
children: /* @__PURE__ */
|
|
4068
|
+
children: /* @__PURE__ */ jsx_runtime10.jsx("p", {
|
|
4580
4069
|
className: event_log_module_default.empty,
|
|
4581
4070
|
"data-event-log-empty": true,
|
|
4582
4071
|
children: t("event-log.empty")
|
|
4583
4072
|
})
|
|
4584
4073
|
});
|
|
4585
4074
|
}
|
|
4586
|
-
return /* @__PURE__ */
|
|
4587
|
-
className: event_log_module_default.eventLogPage
|
|
4075
|
+
return /* @__PURE__ */ jsx_runtime10.jsxs("div", {
|
|
4076
|
+
className: `${event_log_module_default.eventLogPage} ${panel_module_default.groupGrid}`,
|
|
4588
4077
|
"data-mstar-page": "events",
|
|
4589
4078
|
children: [
|
|
4590
|
-
/* @__PURE__ */
|
|
4079
|
+
/* @__PURE__ */ jsx_runtime10.jsxs("section", {
|
|
4591
4080
|
className: event_log_module_default.section,
|
|
4592
4081
|
"data-event-log-section": "events",
|
|
4593
4082
|
"data-event-log-section-count": eventEntries.length,
|
|
4594
4083
|
children: [
|
|
4595
|
-
/* @__PURE__ */
|
|
4084
|
+
/* @__PURE__ */ jsx_runtime10.jsx("h2", {
|
|
4596
4085
|
className: event_log_module_default.sectionTitle,
|
|
4597
4086
|
"data-event-log-section-title": true,
|
|
4598
4087
|
children: t("event-log.section.events")
|
|
4599
4088
|
}),
|
|
4600
|
-
eventEntries.length === 0 ? /* @__PURE__ */
|
|
4089
|
+
eventEntries.length === 0 ? /* @__PURE__ */ jsx_runtime10.jsx("p", {
|
|
4601
4090
|
className: event_log_module_default.empty,
|
|
4602
4091
|
"data-event-log-empty-section": "events",
|
|
4603
4092
|
children: t("event-log.empty.events")
|
|
4604
|
-
}) : /* @__PURE__ */
|
|
4093
|
+
}) : /* @__PURE__ */ jsx_runtime10.jsx("ul", {
|
|
4605
4094
|
className: event_log_module_default.rowList,
|
|
4606
4095
|
"data-event-log-list": "events",
|
|
4607
|
-
children: eventEntries.map((entry) => /* @__PURE__ */
|
|
4096
|
+
children: eventEntries.map((entry) => /* @__PURE__ */ jsx_runtime10.jsx(EventLogEventRow, {
|
|
4608
4097
|
entry,
|
|
4609
4098
|
source: eventById.get(entry.id),
|
|
4610
4099
|
t
|
|
@@ -4612,24 +4101,24 @@ function EventLogPage({ view, t }) {
|
|
|
4612
4101
|
})
|
|
4613
4102
|
]
|
|
4614
4103
|
}),
|
|
4615
|
-
/* @__PURE__ */
|
|
4104
|
+
/* @__PURE__ */ jsx_runtime10.jsxs("section", {
|
|
4616
4105
|
className: event_log_module_default.section,
|
|
4617
4106
|
"data-event-log-section": "violations",
|
|
4618
4107
|
"data-event-log-section-count": violationEntries.length,
|
|
4619
4108
|
children: [
|
|
4620
|
-
/* @__PURE__ */
|
|
4109
|
+
/* @__PURE__ */ jsx_runtime10.jsx("h2", {
|
|
4621
4110
|
className: event_log_module_default.sectionTitle,
|
|
4622
4111
|
"data-event-log-section-title": true,
|
|
4623
4112
|
children: t("event-log.section.violations")
|
|
4624
4113
|
}),
|
|
4625
|
-
violationEntries.length === 0 ? /* @__PURE__ */
|
|
4114
|
+
violationEntries.length === 0 ? /* @__PURE__ */ jsx_runtime10.jsx("p", {
|
|
4626
4115
|
className: event_log_module_default.empty,
|
|
4627
4116
|
"data-event-log-empty-section": "violations",
|
|
4628
4117
|
children: t("event-log.empty.violations")
|
|
4629
|
-
}) : /* @__PURE__ */
|
|
4118
|
+
}) : /* @__PURE__ */ jsx_runtime10.jsx("ul", {
|
|
4630
4119
|
className: event_log_module_default.rowList,
|
|
4631
4120
|
"data-event-log-list": "violations",
|
|
4632
|
-
children: violationEntries.map((entry) => /* @__PURE__ */
|
|
4121
|
+
children: violationEntries.map((entry) => /* @__PURE__ */ jsx_runtime10.jsx(ViolationRow, {
|
|
4633
4122
|
entry,
|
|
4634
4123
|
t
|
|
4635
4124
|
}, entry.id))
|
|
@@ -4642,7 +4131,7 @@ function EventLogPage({ view, t }) {
|
|
|
4642
4131
|
|
|
4643
4132
|
// src/client/panel/zones/TaskBoard.tsx
|
|
4644
4133
|
var React = __toESM(require("react"));
|
|
4645
|
-
var
|
|
4134
|
+
var jsx_runtime11 = require("react/jsx-runtime");
|
|
4646
4135
|
var COLUMN_TITLE = {
|
|
4647
4136
|
Todo: "zone.state.Todo",
|
|
4648
4137
|
InProgress: "zone.state.InProgress",
|
|
@@ -4675,97 +4164,93 @@ function TaskBoard({ view, t }) {
|
|
|
4675
4164
|
const empty = view.total === 0;
|
|
4676
4165
|
const [expanded, setExpanded] = React.useState(new Set);
|
|
4677
4166
|
const toggle = (id) => setExpanded((prev) => toggleKanbanExpanded(prev, id));
|
|
4678
|
-
return /* @__PURE__ */
|
|
4167
|
+
return /* @__PURE__ */ jsx_runtime11.jsxs("section", {
|
|
4679
4168
|
className: zones_module_default.zone,
|
|
4680
4169
|
"data-zone": "tasks",
|
|
4681
4170
|
children: [
|
|
4682
|
-
/* @__PURE__ */
|
|
4171
|
+
/* @__PURE__ */ jsx_runtime11.jsxs("header", {
|
|
4683
4172
|
className: zones_module_default.tasksHeader,
|
|
4684
4173
|
"data-zone-header": true,
|
|
4685
4174
|
children: [
|
|
4686
|
-
/* @__PURE__ */
|
|
4175
|
+
/* @__PURE__ */ jsx_runtime11.jsx("h2", {
|
|
4687
4176
|
className: zones_module_default.zoneHeader,
|
|
4688
4177
|
children: t("zone.tasks.title")
|
|
4689
4178
|
}),
|
|
4690
|
-
/* @__PURE__ */
|
|
4179
|
+
/* @__PURE__ */ jsx_runtime11.jsx("span", {
|
|
4691
4180
|
className: zones_module_default.tasksTotal,
|
|
4692
4181
|
"data-tasks-total": view.total,
|
|
4693
4182
|
children: t("zone.tasks.total", { count: String(view.total) })
|
|
4694
4183
|
})
|
|
4695
4184
|
]
|
|
4696
4185
|
}),
|
|
4697
|
-
empty && /* @__PURE__ */
|
|
4186
|
+
empty && /* @__PURE__ */ jsx_runtime11.jsx("p", {
|
|
4698
4187
|
className: zones_module_default.zoneEmpty,
|
|
4699
4188
|
"data-zone-empty": "no-plans",
|
|
4700
4189
|
children: t("zone.tasks.no-plans")
|
|
4701
4190
|
}),
|
|
4702
|
-
/* @__PURE__ */
|
|
4703
|
-
className: zones_module_default.kanban
|
|
4191
|
+
/* @__PURE__ */ jsx_runtime11.jsx("div", {
|
|
4192
|
+
className: `${zones_module_default.kanban} ${panel_module_default.groupGrid}`,
|
|
4704
4193
|
"data-mstar-kanban": true,
|
|
4705
|
-
children: columns.map((column
|
|
4706
|
-
const arrow =
|
|
4194
|
+
children: columns.map((column) => {
|
|
4195
|
+
const arrow = leadingArrow(column.id);
|
|
4707
4196
|
const isExpanded = expanded.has(column.id);
|
|
4708
4197
|
const shown = visibleKanbanPlans(column, isExpanded);
|
|
4709
4198
|
const overflow = column.capped === null ? 0 : column.count - column.capped;
|
|
4710
|
-
return /* @__PURE__ */
|
|
4199
|
+
return /* @__PURE__ */ jsx_runtime11.jsxs("div", {
|
|
4200
|
+
className: zones_module_default.kanbanColumn,
|
|
4201
|
+
"data-kanban-column": column.id,
|
|
4711
4202
|
children: [
|
|
4712
|
-
|
|
4713
|
-
className: zones_module_default.
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4203
|
+
/* @__PURE__ */ jsx_runtime11.jsxs("header", {
|
|
4204
|
+
className: zones_module_default.kanbanColumnHeader,
|
|
4205
|
+
children: [
|
|
4206
|
+
arrow !== null && /* @__PURE__ */ jsx_runtime11.jsx("span", {
|
|
4207
|
+
className: zones_module_default.kanbanArrow,
|
|
4208
|
+
"data-kanban-arrow": arrow.label,
|
|
4209
|
+
"aria-hidden": "true",
|
|
4210
|
+
children: arrow.glyph
|
|
4211
|
+
}),
|
|
4212
|
+
/* @__PURE__ */ jsx_runtime11.jsx("span", {
|
|
4213
|
+
className: zones_module_default.kanbanColumnTitle,
|
|
4214
|
+
children: t(COLUMN_TITLE[column.id])
|
|
4215
|
+
}),
|
|
4216
|
+
/* @__PURE__ */ jsx_runtime11.jsx("span", {
|
|
4217
|
+
className: zones_module_default.kanbanCount,
|
|
4218
|
+
"data-kanban-count": column.count,
|
|
4219
|
+
children: column.count
|
|
4220
|
+
})
|
|
4221
|
+
]
|
|
4717
4222
|
}),
|
|
4718
|
-
/* @__PURE__ */
|
|
4719
|
-
className: zones_module_default.
|
|
4720
|
-
|
|
4223
|
+
/* @__PURE__ */ jsx_runtime11.jsxs("ul", {
|
|
4224
|
+
className: zones_module_default.kanbanCards,
|
|
4225
|
+
id: `kanban-cards-${column.id}`,
|
|
4721
4226
|
children: [
|
|
4722
|
-
/* @__PURE__ */
|
|
4723
|
-
className: zones_module_default.
|
|
4227
|
+
shown.map((plan, j) => /* @__PURE__ */ jsx_runtime11.jsxs("li", {
|
|
4228
|
+
className: zones_module_default.planCard,
|
|
4229
|
+
"data-plan-id": plan.id,
|
|
4230
|
+
"data-plan-status": plan.status,
|
|
4724
4231
|
children: [
|
|
4725
|
-
/* @__PURE__ */
|
|
4726
|
-
className: zones_module_default.
|
|
4727
|
-
children:
|
|
4232
|
+
/* @__PURE__ */ jsx_runtime11.jsx("code", {
|
|
4233
|
+
className: zones_module_default.planCardId,
|
|
4234
|
+
children: plan.id
|
|
4728
4235
|
}),
|
|
4729
|
-
/* @__PURE__ */
|
|
4730
|
-
className: zones_module_default.
|
|
4731
|
-
"data-
|
|
4732
|
-
children:
|
|
4733
|
-
})
|
|
4734
|
-
]
|
|
4735
|
-
}),
|
|
4736
|
-
/* @__PURE__ */ jsx_runtime9.jsxs("ul", {
|
|
4737
|
-
className: zones_module_default.kanbanCards,
|
|
4738
|
-
id: `kanban-cards-${column.id}`,
|
|
4739
|
-
children: [
|
|
4740
|
-
shown.map((plan, j) => /* @__PURE__ */ jsx_runtime9.jsxs("li", {
|
|
4741
|
-
className: zones_module_default.planCard,
|
|
4742
|
-
"data-plan-id": plan.id,
|
|
4743
|
-
"data-plan-status": plan.status,
|
|
4744
|
-
children: [
|
|
4745
|
-
/* @__PURE__ */ jsx_runtime9.jsx("code", {
|
|
4746
|
-
className: zones_module_default.planCardId,
|
|
4747
|
-
children: plan.id
|
|
4748
|
-
}),
|
|
4749
|
-
/* @__PURE__ */ jsx_runtime9.jsx("span", {
|
|
4750
|
-
className: zones_module_default.planCardStatus,
|
|
4751
|
-
"data-status": plan.status,
|
|
4752
|
-
children: plan.status
|
|
4753
|
-
})
|
|
4754
|
-
]
|
|
4755
|
-
}, plan.id === "" ? `card-${j}` : plan.id)),
|
|
4756
|
-
overflow > 0 && /* @__PURE__ */ jsx_runtime9.jsx("li", {
|
|
4757
|
-
className: zones_module_default.kanbanMore,
|
|
4758
|
-
children: /* @__PURE__ */ jsx_runtime9.jsx("button", {
|
|
4759
|
-
type: "button",
|
|
4760
|
-
className: zones_module_default.kanbanMoreButton,
|
|
4761
|
-
"data-kanban-more": isExpanded ? "collapse" : "expand",
|
|
4762
|
-
"aria-expanded": isExpanded,
|
|
4763
|
-
"aria-controls": `kanban-cards-${column.id}`,
|
|
4764
|
-
onClick: () => toggle(column.id),
|
|
4765
|
-
children: isExpanded ? t("zone.tasks.collapse") : t("zone.tasks.more", { count: String(overflow) })
|
|
4766
|
-
})
|
|
4236
|
+
/* @__PURE__ */ jsx_runtime11.jsx("span", {
|
|
4237
|
+
className: zones_module_default.planCardStatus,
|
|
4238
|
+
"data-status": plan.status,
|
|
4239
|
+
children: plan.status
|
|
4767
4240
|
})
|
|
4768
4241
|
]
|
|
4242
|
+
}, plan.id === "" ? `card-${j}` : plan.id)),
|
|
4243
|
+
overflow > 0 && /* @__PURE__ */ jsx_runtime11.jsx("li", {
|
|
4244
|
+
className: zones_module_default.kanbanMore,
|
|
4245
|
+
children: /* @__PURE__ */ jsx_runtime11.jsx("button", {
|
|
4246
|
+
type: "button",
|
|
4247
|
+
className: zones_module_default.kanbanMoreButton,
|
|
4248
|
+
"data-kanban-more": isExpanded ? "collapse" : "expand",
|
|
4249
|
+
"aria-expanded": isExpanded,
|
|
4250
|
+
"aria-controls": `kanban-cards-${column.id}`,
|
|
4251
|
+
onClick: () => toggle(column.id),
|
|
4252
|
+
children: isExpanded ? t("zone.tasks.collapse") : t("zone.tasks.more", { count: String(overflow) })
|
|
4253
|
+
})
|
|
4769
4254
|
})
|
|
4770
4255
|
]
|
|
4771
4256
|
})
|
|
@@ -4778,64 +4263,64 @@ function TaskBoard({ view, t }) {
|
|
|
4778
4263
|
}
|
|
4779
4264
|
|
|
4780
4265
|
// src/client/panel/zones/ProjectRollup.tsx
|
|
4781
|
-
var
|
|
4266
|
+
var jsx_runtime12 = require("react/jsx-runtime");
|
|
4782
4267
|
function ProjectRollup({ view, t }) {
|
|
4783
4268
|
const { milestones, openResiduals } = view;
|
|
4784
|
-
return /* @__PURE__ */
|
|
4269
|
+
return /* @__PURE__ */ jsx_runtime12.jsxs("section", {
|
|
4785
4270
|
className: zones_module_default.zone,
|
|
4786
4271
|
"data-zone": "project",
|
|
4787
4272
|
children: [
|
|
4788
|
-
/* @__PURE__ */
|
|
4273
|
+
/* @__PURE__ */ jsx_runtime12.jsx("header", {
|
|
4789
4274
|
className: zones_module_default.tasksHeader,
|
|
4790
4275
|
"data-zone-header": true,
|
|
4791
|
-
children: /* @__PURE__ */
|
|
4276
|
+
children: /* @__PURE__ */ jsx_runtime12.jsx("h2", {
|
|
4792
4277
|
className: zones_module_default.zoneHeader,
|
|
4793
4278
|
children: t("zone.project.title")
|
|
4794
4279
|
})
|
|
4795
4280
|
}),
|
|
4796
|
-
/* @__PURE__ */
|
|
4281
|
+
/* @__PURE__ */ jsx_runtime12.jsx("h3", {
|
|
4797
4282
|
className: zones_module_default.zoneTitle,
|
|
4798
4283
|
"data-project-milestones-title": true,
|
|
4799
4284
|
children: t("zone.project.milestones")
|
|
4800
4285
|
}),
|
|
4801
|
-
milestones.length === 0 ? /* @__PURE__ */
|
|
4286
|
+
milestones.length === 0 ? /* @__PURE__ */ jsx_runtime12.jsx("p", {
|
|
4802
4287
|
className: zones_module_default.zoneEmpty,
|
|
4803
4288
|
"data-mstar-empty": "no-milestones",
|
|
4804
4289
|
children: t("zone.project.none")
|
|
4805
|
-
}) : /* @__PURE__ */
|
|
4290
|
+
}) : /* @__PURE__ */ jsx_runtime12.jsx("ul", {
|
|
4806
4291
|
className: zones_module_default.rollupList,
|
|
4807
4292
|
"data-project-milestones": true,
|
|
4808
|
-
children: milestones.map((milestone, i) => /* @__PURE__ */
|
|
4293
|
+
children: milestones.map((milestone, i) => /* @__PURE__ */ jsx_runtime12.jsx("li", {
|
|
4809
4294
|
className: zones_module_default.rollupItem,
|
|
4810
4295
|
"data-project-milestone": true,
|
|
4811
|
-
children: /* @__PURE__ */
|
|
4296
|
+
children: /* @__PURE__ */ jsx_runtime12.jsx("span", {
|
|
4812
4297
|
className: zones_module_default.rollupMilestone,
|
|
4813
4298
|
children: milestone
|
|
4814
4299
|
})
|
|
4815
4300
|
}, `${milestone}-${i}`))
|
|
4816
4301
|
}),
|
|
4817
|
-
/* @__PURE__ */
|
|
4302
|
+
/* @__PURE__ */ jsx_runtime12.jsx("h3", {
|
|
4818
4303
|
className: zones_module_default.zoneTitle,
|
|
4819
4304
|
"data-project-residuals-title": true,
|
|
4820
4305
|
children: t("zone.project.residuals")
|
|
4821
4306
|
}),
|
|
4822
|
-
openResiduals.length === 0 ? /* @__PURE__ */
|
|
4307
|
+
openResiduals.length === 0 ? /* @__PURE__ */ jsx_runtime12.jsx("p", {
|
|
4823
4308
|
className: zones_module_default.zoneEmpty,
|
|
4824
4309
|
"data-mstar-empty": "no-project-residuals",
|
|
4825
4310
|
children: t("zone.project.none")
|
|
4826
|
-
}) : /* @__PURE__ */
|
|
4311
|
+
}) : /* @__PURE__ */ jsx_runtime12.jsx("ul", {
|
|
4827
4312
|
className: zones_module_default.rollupList,
|
|
4828
4313
|
"data-project-residuals": true,
|
|
4829
|
-
children: openResiduals.map((row, i) => /* @__PURE__ */
|
|
4314
|
+
children: openResiduals.map((row, i) => /* @__PURE__ */ jsx_runtime12.jsxs("li", {
|
|
4830
4315
|
className: zones_module_default.rollupItem,
|
|
4831
4316
|
"data-project-residual": true,
|
|
4832
4317
|
children: [
|
|
4833
|
-
/* @__PURE__ */
|
|
4318
|
+
/* @__PURE__ */ jsx_runtime12.jsx("span", {
|
|
4834
4319
|
className: zones_module_default.severityChip,
|
|
4835
4320
|
"data-severity": row.severity,
|
|
4836
4321
|
children: row.severity
|
|
4837
4322
|
}),
|
|
4838
|
-
/* @__PURE__ */
|
|
4323
|
+
/* @__PURE__ */ jsx_runtime12.jsx("span", {
|
|
4839
4324
|
className: zones_module_default.rollupCount,
|
|
4840
4325
|
"data-project-residual-count": row.count,
|
|
4841
4326
|
children: row.count
|
|
@@ -4848,25 +4333,24 @@ function ProjectRollup({ view, t }) {
|
|
|
4848
4333
|
}
|
|
4849
4334
|
|
|
4850
4335
|
// src/client/panel/pages/IterationTaskPage.tsx
|
|
4851
|
-
var
|
|
4336
|
+
var jsx_runtime13 = require("react/jsx-runtime");
|
|
4852
4337
|
function IterationTaskPage({ view, t }) {
|
|
4853
|
-
return /* @__PURE__ */
|
|
4338
|
+
return /* @__PURE__ */ jsx_runtime13.jsxs("div", {
|
|
4854
4339
|
className: panel_module_default.iterationPage,
|
|
4855
4340
|
"data-mstar-page": "tasks",
|
|
4856
4341
|
children: [
|
|
4857
|
-
/* @__PURE__ */
|
|
4342
|
+
/* @__PURE__ */ jsx_runtime13.jsx(IterationInfoSection, {
|
|
4858
4343
|
iteration: view.iteration,
|
|
4859
4344
|
t
|
|
4860
4345
|
}),
|
|
4861
|
-
/* @__PURE__ */
|
|
4346
|
+
/* @__PURE__ */ jsx_runtime13.jsxs("div", {
|
|
4862
4347
|
className: panel_module_default.iterationTasks,
|
|
4863
|
-
"data-mstar-tasks-scroll": true,
|
|
4864
4348
|
children: [
|
|
4865
|
-
/* @__PURE__ */
|
|
4349
|
+
/* @__PURE__ */ jsx_runtime13.jsx(TaskBoard, {
|
|
4866
4350
|
view: view.tasks,
|
|
4867
4351
|
t
|
|
4868
4352
|
}),
|
|
4869
|
-
/* @__PURE__ */
|
|
4353
|
+
/* @__PURE__ */ jsx_runtime13.jsx(ProjectRollup, {
|
|
4870
4354
|
view: view.project,
|
|
4871
4355
|
t
|
|
4872
4356
|
})
|
|
@@ -4881,14 +4365,17 @@ var import_react3 = require("react");
|
|
|
4881
4365
|
var EMPTY_SNAPSHOT = { entries: new Map };
|
|
4882
4366
|
var NO_SUBSCRIBE = () => () => {};
|
|
4883
4367
|
var readEmptySnapshot = () => EMPTY_SNAPSHOT;
|
|
4368
|
+
var ANCHOR_PLUGIN = "mstar-engine";
|
|
4369
|
+
var LEGACY_ANCHOR_PLUGIN = "mstar-engine-status";
|
|
4884
4370
|
function latestEngineStatusRow(nodes) {
|
|
4885
4371
|
for (let i = nodes.length - 1;i >= 0; i--) {
|
|
4886
4372
|
const node = nodes[i];
|
|
4887
4373
|
if (node.kind !== "context" || node.form !== "catalog")
|
|
4888
4374
|
continue;
|
|
4889
4375
|
const source = node.source;
|
|
4890
|
-
if (source?.kind === "plugin" && source.plugin ===
|
|
4376
|
+
if (source?.kind === "plugin" && (source.plugin === ANCHOR_PLUGIN || source.plugin === LEGACY_ANCHOR_PLUGIN)) {
|
|
4891
4377
|
return node;
|
|
4378
|
+
}
|
|
4892
4379
|
}
|
|
4893
4380
|
return null;
|
|
4894
4381
|
}
|
|
@@ -4954,39 +4441,45 @@ function useMstarEngineStatus(seats) {
|
|
|
4954
4441
|
}
|
|
4955
4442
|
|
|
4956
4443
|
// src/client/panel/PanelView.tsx
|
|
4957
|
-
var
|
|
4444
|
+
var jsx_runtime14 = require("react/jsx-runtime");
|
|
4958
4445
|
function formatSnapshotTime(at) {
|
|
4959
4446
|
const ms = Date.parse(at);
|
|
4960
4447
|
return Number.isNaN(ms) ? null : new Date(ms).toLocaleTimeString("en-GB");
|
|
4961
4448
|
}
|
|
4962
|
-
function PanelContent({
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
return /* @__PURE__ */
|
|
4449
|
+
function PanelContent({ section, source, t }) {
|
|
4450
|
+
const view = React2.useMemo(() => projectGraph(source), [source]);
|
|
4451
|
+
if (section === "agents") {
|
|
4452
|
+
return /* @__PURE__ */ jsx_runtime14.jsx(AgentListPage, {
|
|
4966
4453
|
view: view.agents,
|
|
4967
4454
|
iteration: view.iteration,
|
|
4968
4455
|
t
|
|
4969
4456
|
});
|
|
4970
4457
|
}
|
|
4971
|
-
if (
|
|
4972
|
-
return /* @__PURE__ */
|
|
4973
|
-
view
|
|
4458
|
+
if (section === "events")
|
|
4459
|
+
return /* @__PURE__ */ jsx_runtime14.jsx(EventLogPage, {
|
|
4460
|
+
view,
|
|
4974
4461
|
t
|
|
4975
4462
|
});
|
|
4976
|
-
return /* @__PURE__ */
|
|
4977
|
-
view
|
|
4463
|
+
return /* @__PURE__ */ jsx_runtime14.jsx(IterationTaskPage, {
|
|
4464
|
+
view,
|
|
4978
4465
|
t
|
|
4979
4466
|
});
|
|
4980
4467
|
}
|
|
4981
|
-
function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
4468
|
+
function PanelView({ t, useChat, useSessions, sessionId, engineStatus, useTabInfo, useStore, actions }) {
|
|
4982
4469
|
const view = useMstarEngineStatus({ useChat, useSessions, sessionId, engineStatus });
|
|
4983
|
-
const
|
|
4470
|
+
const tabInfo = useTabInfo();
|
|
4471
|
+
const tabId = tabInfo.tab.id;
|
|
4472
|
+
const section = useStore((s) => s.byTab[tabId]) ?? "tasks";
|
|
4473
|
+
if (!tabInfo.tab.visible)
|
|
4474
|
+
return null;
|
|
4475
|
+
const selectSection = (next) => {
|
|
4476
|
+
actions.select(tabId, next);
|
|
4477
|
+
};
|
|
4984
4478
|
if (view.state === "waiting") {
|
|
4985
|
-
return /* @__PURE__ */
|
|
4479
|
+
return /* @__PURE__ */ jsx_runtime14.jsx("div", {
|
|
4986
4480
|
className: panel_module_default.emptyRoot,
|
|
4987
4481
|
"data-mstar-panel": "waiting",
|
|
4988
|
-
|
|
4989
|
-
children: /* @__PURE__ */ jsx_runtime12.jsx("p", {
|
|
4482
|
+
children: /* @__PURE__ */ jsx_runtime14.jsx("p", {
|
|
4990
4483
|
className: panel_module_default.empty,
|
|
4991
4484
|
"data-mstar-empty": "waiting",
|
|
4992
4485
|
children: t("empty.waiting")
|
|
@@ -4994,11 +4487,10 @@ function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
|
4994
4487
|
});
|
|
4995
4488
|
}
|
|
4996
4489
|
if (view.state === "loading") {
|
|
4997
|
-
return /* @__PURE__ */
|
|
4490
|
+
return /* @__PURE__ */ jsx_runtime14.jsx("div", {
|
|
4998
4491
|
className: panel_module_default.emptyRoot,
|
|
4999
4492
|
"data-mstar-panel": "loading",
|
|
5000
|
-
|
|
5001
|
-
children: /* @__PURE__ */ jsx_runtime12.jsx("p", {
|
|
4493
|
+
children: /* @__PURE__ */ jsx_runtime14.jsx("p", {
|
|
5002
4494
|
className: panel_module_default.empty,
|
|
5003
4495
|
"data-mstar-empty": "loading",
|
|
5004
4496
|
children: t("empty.loading")
|
|
@@ -5006,11 +4498,10 @@ function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
|
5006
4498
|
});
|
|
5007
4499
|
}
|
|
5008
4500
|
if (view.state === "unavailable") {
|
|
5009
|
-
return /* @__PURE__ */
|
|
4501
|
+
return /* @__PURE__ */ jsx_runtime14.jsx("div", {
|
|
5010
4502
|
className: panel_module_default.emptyRoot,
|
|
5011
4503
|
"data-mstar-panel": "unavailable",
|
|
5012
|
-
|
|
5013
|
-
children: /* @__PURE__ */ jsx_runtime12.jsx("p", {
|
|
4504
|
+
children: /* @__PURE__ */ jsx_runtime14.jsx("p", {
|
|
5014
4505
|
className: panel_module_default.empty,
|
|
5015
4506
|
"data-mstar-empty": "unavailable",
|
|
5016
4507
|
"data-mstar-unavailable-reason": view.reason,
|
|
@@ -5021,34 +4512,34 @@ function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
|
5021
4512
|
const source = view.payload;
|
|
5022
4513
|
const snapshotTime = formatSnapshotTime(view.at);
|
|
5023
4514
|
const noHarness = source.harnessDir === null && source.state === null && source.iteration == null;
|
|
5024
|
-
const freshness = /* @__PURE__ */
|
|
4515
|
+
const freshness = /* @__PURE__ */ jsx_runtime14.jsxs("footer", {
|
|
5025
4516
|
className: panel_module_default.freshness,
|
|
5026
4517
|
"data-mstar-freshness": true,
|
|
5027
4518
|
children: [
|
|
5028
|
-
snapshotTime === null ? null : /* @__PURE__ */
|
|
4519
|
+
snapshotTime === null ? null : /* @__PURE__ */ jsx_runtime14.jsx("span", {
|
|
5029
4520
|
"data-mstar-freshness-at": view.at,
|
|
5030
4521
|
"data-mstar-freshness-turn": String(view.turn),
|
|
5031
4522
|
children: t("freshness.last-updated", { time: snapshotTime, turn: String(view.turn) })
|
|
5032
4523
|
}),
|
|
5033
|
-
/* @__PURE__ */
|
|
4524
|
+
/* @__PURE__ */ jsx_runtime14.jsx("span", {
|
|
5034
4525
|
children: t("freshness.refresh-note")
|
|
5035
4526
|
})
|
|
5036
4527
|
]
|
|
5037
4528
|
});
|
|
5038
4529
|
if (noHarness) {
|
|
5039
|
-
return /* @__PURE__ */
|
|
4530
|
+
return /* @__PURE__ */ jsx_runtime14.jsx("div", {
|
|
5040
4531
|
className: panel_module_default.root,
|
|
5041
4532
|
"data-mstar-panel": "no-harness",
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
|
|
4533
|
+
children: /* @__PURE__ */ jsx_runtime14.jsxs("div", {
|
|
4534
|
+
className: panel_module_default.scroll,
|
|
4535
|
+
"data-mstar-scroll": true,
|
|
5045
4536
|
"data-mstar-graph": true,
|
|
5046
4537
|
children: [
|
|
5047
|
-
/* @__PURE__ */
|
|
4538
|
+
/* @__PURE__ */ jsx_runtime14.jsxs("div", {
|
|
5048
4539
|
className: panel_module_default.noHarnessCard,
|
|
5049
4540
|
"data-mstar-empty-card": true,
|
|
5050
4541
|
children: [
|
|
5051
|
-
/* @__PURE__ */
|
|
4542
|
+
/* @__PURE__ */ jsx_runtime14.jsxs("svg", {
|
|
5052
4543
|
className: panel_module_default.noHarnessIcon,
|
|
5053
4544
|
"data-mstar-empty-icon": true,
|
|
5054
4545
|
width: "32",
|
|
@@ -5061,25 +4552,25 @@ function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
|
5061
4552
|
strokeLinejoin: "round",
|
|
5062
4553
|
"aria-hidden": "true",
|
|
5063
4554
|
children: [
|
|
5064
|
-
/* @__PURE__ */
|
|
4555
|
+
/* @__PURE__ */ jsx_runtime14.jsx("path", {
|
|
5065
4556
|
d: "M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"
|
|
5066
4557
|
}),
|
|
5067
|
-
/* @__PURE__ */
|
|
4558
|
+
/* @__PURE__ */ jsx_runtime14.jsx("path", {
|
|
5068
4559
|
d: "M9.7 9.4a2.4 2.4 0 1 1 3.4 2.2c-.7.3-1 .8-1 1.5"
|
|
5069
4560
|
}),
|
|
5070
|
-
/* @__PURE__ */
|
|
4561
|
+
/* @__PURE__ */ jsx_runtime14.jsx("circle", {
|
|
5071
4562
|
cx: "12",
|
|
5072
4563
|
cy: "16.4",
|
|
5073
4564
|
r: "0.6"
|
|
5074
4565
|
})
|
|
5075
4566
|
]
|
|
5076
4567
|
}),
|
|
5077
|
-
/* @__PURE__ */
|
|
4568
|
+
/* @__PURE__ */ jsx_runtime14.jsx("p", {
|
|
5078
4569
|
className: panel_module_default.noHarnessTitle,
|
|
5079
4570
|
"data-mstar-empty": "no-harness",
|
|
5080
4571
|
children: t("empty.no-harness")
|
|
5081
4572
|
}),
|
|
5082
|
-
/* @__PURE__ */
|
|
4573
|
+
/* @__PURE__ */ jsx_runtime14.jsx("p", {
|
|
5083
4574
|
className: panel_module_default.noHarnessHint,
|
|
5084
4575
|
children: t("empty.no-harness-hint")
|
|
5085
4576
|
})
|
|
@@ -5090,34 +4581,35 @@ function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
|
5090
4581
|
})
|
|
5091
4582
|
});
|
|
5092
4583
|
}
|
|
5093
|
-
return /* @__PURE__ */
|
|
4584
|
+
return /* @__PURE__ */ jsx_runtime14.jsxs("div", {
|
|
5094
4585
|
className: panel_module_default.root,
|
|
5095
4586
|
"data-mstar-panel": "panel",
|
|
5096
|
-
"data-conversation-composer-overlay": "",
|
|
5097
4587
|
children: [
|
|
5098
|
-
/* @__PURE__ */
|
|
5099
|
-
|
|
4588
|
+
/* @__PURE__ */ jsx_runtime14.jsx(TabNav, {
|
|
4589
|
+
active: section,
|
|
4590
|
+
onChange: selectSection,
|
|
4591
|
+
t
|
|
4592
|
+
}),
|
|
4593
|
+
/* @__PURE__ */ jsx_runtime14.jsxs("div", {
|
|
4594
|
+
className: panel_module_default.scroll,
|
|
4595
|
+
"data-mstar-scroll": true,
|
|
4596
|
+
"data-mstar-graph": true,
|
|
5100
4597
|
children: [
|
|
5101
|
-
/* @__PURE__ */
|
|
5102
|
-
|
|
5103
|
-
|
|
4598
|
+
/* @__PURE__ */ jsx_runtime14.jsx(PanelContent, {
|
|
4599
|
+
section,
|
|
4600
|
+
source,
|
|
5104
4601
|
t
|
|
5105
4602
|
}),
|
|
5106
|
-
/* @__PURE__ */
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
tab,
|
|
5111
|
-
source,
|
|
5112
|
-
t
|
|
5113
|
-
})
|
|
4603
|
+
/* @__PURE__ */ jsx_runtime14.jsx(Sidebar, {
|
|
4604
|
+
t,
|
|
4605
|
+
state: source.state,
|
|
4606
|
+
source
|
|
5114
4607
|
}),
|
|
5115
4608
|
freshness
|
|
5116
4609
|
]
|
|
5117
4610
|
}),
|
|
5118
|
-
/* @__PURE__ */
|
|
4611
|
+
/* @__PURE__ */ jsx_runtime14.jsx(PanelMeta, {
|
|
5119
4612
|
t,
|
|
5120
|
-
state: source.state,
|
|
5121
4613
|
source
|
|
5122
4614
|
})
|
|
5123
4615
|
]
|
|
@@ -5125,18 +4617,24 @@ function PanelView({ t, useChat, useSessions, sessionId, engineStatus }) {
|
|
|
5125
4617
|
}
|
|
5126
4618
|
|
|
5127
4619
|
// src/client/index.ts
|
|
5128
|
-
var inject = ["slots", "sessions", "locale", "connection"];
|
|
4620
|
+
var inject = ["slots", "sessions", "locale", "connection", "sidebarRightTabs"];
|
|
5129
4621
|
function apply(ctx) {
|
|
5130
4622
|
const engineStatus = new MstarEngineStatusClient(ctx.connection);
|
|
5131
4623
|
ctx.effect(() => () => engineStatus.dispose(), "ui-mstar-panel: engine-status client");
|
|
4624
|
+
const t = ctx.locale.bind(NS);
|
|
5132
4625
|
ctx.effect(() => ctx.locale.register(NS, { zh, en }), "ui-mstar-panel: dictionaries");
|
|
5133
|
-
ctx.
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
locale: NS
|
|
5139
|
-
|
|
4626
|
+
ctx.effect(() => ctx.sidebarRightTabs.register(mstarPanelDefinition(t)), "ui-mstar-panel: tab type");
|
|
4627
|
+
const panelStore = createPanelStore();
|
|
4628
|
+
ctx.effect(() => ctx.slots.inject("sidebar.right.pane.tab", () => ctx.slots.register({
|
|
4629
|
+
name: "sidebar.right.pane.tab",
|
|
4630
|
+
key: MSTAR_PANEL_ID,
|
|
4631
|
+
locale: NS,
|
|
4632
|
+
store: panelStore
|
|
4633
|
+
}, (props) => PanelView({ ...props, engineStatus }))), "ui-mstar-panel: panel body");
|
|
4634
|
+
ctx.effect(() => ctx.slots.inject("sidebar.right.pane.tab.title", () => ctx.slots.register({
|
|
4635
|
+
name: "sidebar.right.pane.tab.title",
|
|
4636
|
+
key: MSTAR_PANEL_ID
|
|
4637
|
+
}, MstarPanelTitle)), "ui-mstar-panel: panel chip title");
|
|
5140
4638
|
}
|
|
5141
4639
|
|
|
5142
4640
|
return module.exports; } });
|