@zigrivers/scaffold 3.19.0 → 3.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +98 -25
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/dashboard.test.js +210 -0
- package/dist/cli/commands/dashboard.test.js.map +1 -1
- package/dist/config/loader.test.js +72 -0
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/schema.d.ts +432 -420
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +35 -4
- package/dist/config/schema.js.map +1 -1
- package/dist/config/schema.test.js +82 -1
- package/dist/config/schema.test.js.map +1 -1
- package/dist/core/assembly/overlay-state-resolver.d.ts.map +1 -1
- package/dist/core/assembly/overlay-state-resolver.js +47 -18
- package/dist/core/assembly/overlay-state-resolver.js.map +1 -1
- package/dist/core/assembly/overlay-state-resolver.test.js +291 -0
- package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -1
- package/dist/dashboard/generator.d.ts +57 -0
- package/dist/dashboard/generator.d.ts.map +1 -1
- package/dist/dashboard/generator.js +125 -1
- package/dist/dashboard/generator.js.map +1 -1
- package/dist/dashboard/multi-service.test.d.ts +2 -0
- package/dist/dashboard/multi-service.test.d.ts.map +1 -0
- package/dist/dashboard/multi-service.test.js +535 -0
- package/dist/dashboard/multi-service.test.js.map +1 -0
- package/dist/dashboard/template.d.ts +2 -1
- package/dist/dashboard/template.d.ts.map +1 -1
- package/dist/dashboard/template.js +400 -0
- package/dist/dashboard/template.js.map +1 -1
- package/dist/e2e/service-execution.test.js +69 -0
- package/dist/e2e/service-execution.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -828,4 +828,404 @@ body.modal-open { overflow: hidden; }
|
|
|
828
828
|
</html>`;
|
|
829
829
|
}
|
|
830
830
|
/* eslint-enable max-len */
|
|
831
|
+
/* eslint-disable max-len */
|
|
832
|
+
export function buildMultiServiceTemplate(dataJson, data) {
|
|
833
|
+
const generatedAt = new Date(data.generatedAt);
|
|
834
|
+
const ageMs = Date.now() - generatedAt.getTime();
|
|
835
|
+
const staleNotice = ageMs > 3600000
|
|
836
|
+
? '<div id="stale-notice" class="stale-notice">⚠ Data may be stale (generated more than 1 hour ago)</div>'
|
|
837
|
+
: '';
|
|
838
|
+
const methodology = escapeHtml(data.methodology);
|
|
839
|
+
const avgPct = data.aggregate.averagePercentage;
|
|
840
|
+
const serviceCards = data.services.map(svc => {
|
|
841
|
+
const name = escapeHtml(svc.name);
|
|
842
|
+
const projectType = escapeHtml(svc.projectType);
|
|
843
|
+
const pct = svc.percentage;
|
|
844
|
+
// "Complete" badge requires pipeline steps to have existed AND all to be done.
|
|
845
|
+
// total=0 (skeleton for missing state.json) renders "Not started" instead.
|
|
846
|
+
const isNotStarted = svc.total === 0;
|
|
847
|
+
const isComplete = !isNotStarted && svc.currentPhaseNumber === null;
|
|
848
|
+
const phaseLine = isComplete
|
|
849
|
+
? '<span class="service-complete-badge">Complete</span>'
|
|
850
|
+
: isNotStarted
|
|
851
|
+
? '<span class="service-not-started-badge">Not started</span>'
|
|
852
|
+
: `<span class="service-phase">Phase ${svc.currentPhaseNumber ?? ''}: ${escapeHtml(svc.currentPhaseName ?? '')}</span>`;
|
|
853
|
+
const nextLine = svc.nextEligibleSlug
|
|
854
|
+
? `<div class="service-next"><span class="service-next-label">Next:</span> <span class="service-next-slug">${escapeHtml(svc.nextEligibleSlug)}</span>${svc.nextEligibleSummary ? ` <span class="service-next-summary">${escapeHtml(svc.nextEligibleSummary)}</span>` : ''}</div>`
|
|
855
|
+
: '';
|
|
856
|
+
// Command copy uses data-copy attribute + JS event listener (see script below).
|
|
857
|
+
// Avoids inline onclick XSS vectors where attacker-controlled svc.name could
|
|
858
|
+
// escape the single-quoted JS string (Codex MMR P1 — v3.20.0 PR #292).
|
|
859
|
+
const cmdRaw = `scaffold dashboard --service ${svc.name}`;
|
|
860
|
+
const cmdAttr = escapeHtml(cmdRaw);
|
|
861
|
+
return [
|
|
862
|
+
`<div class="service-card" data-service="${name}" data-copy="${cmdAttr}">`,
|
|
863
|
+
' <div class="service-card-head">',
|
|
864
|
+
` <div class="service-name">${name}</div>`,
|
|
865
|
+
` <span class="service-type-pill">${projectType}</span>`,
|
|
866
|
+
' </div>',
|
|
867
|
+
' <div class="service-progress-row">',
|
|
868
|
+
` <div class="service-progress-bar"><div class="service-progress-fill" style="width:${pct}%"></div></div>`,
|
|
869
|
+
` <span class="service-pct">${pct}%</span>`,
|
|
870
|
+
' </div>',
|
|
871
|
+
' <div class="service-counts">',
|
|
872
|
+
` <span class="count-pill count-completed">${svc.completed} done</span>`,
|
|
873
|
+
svc.skipped > 0 ? ` <span class="count-pill count-skipped">${svc.skipped} skipped</span>` : '',
|
|
874
|
+
svc.inProgress > 0 ? ` <span class="count-pill count-in-progress">${svc.inProgress} active</span>` : '',
|
|
875
|
+
svc.pending > 0 ? ` <span class="count-pill count-pending">${svc.pending} pending</span>` : '',
|
|
876
|
+
' </div>',
|
|
877
|
+
` <div class="service-phase-line">${phaseLine}</div>`,
|
|
878
|
+
nextLine,
|
|
879
|
+
` <div class="service-cmd-hint"><code>${escapeHtml(cmdRaw)}</code><span class="service-cmd-copy">Click to copy</span></div>`,
|
|
880
|
+
'</div>',
|
|
881
|
+
].filter(Boolean).join('\n');
|
|
882
|
+
}).join('\n');
|
|
883
|
+
const servicesByPhase = data.aggregate.servicesByPhase
|
|
884
|
+
.filter(p => p.reachedCount > 0)
|
|
885
|
+
.map(p => [
|
|
886
|
+
'<div class="phase-indicator">',
|
|
887
|
+
` <div class="phase-indicator-num">P${p.phaseNumber}</div>`,
|
|
888
|
+
` <div class="phase-indicator-name">${escapeHtml(p.phaseName)}</div>`,
|
|
889
|
+
` <div class="phase-indicator-count">${p.reachedCount} / ${data.aggregate.totalServices}</div>`,
|
|
890
|
+
'</div>',
|
|
891
|
+
].join('\n')).join('\n');
|
|
892
|
+
return `<!DOCTYPE html>
|
|
893
|
+
<html lang="en">
|
|
894
|
+
<head>
|
|
895
|
+
<meta charset="UTF-8">
|
|
896
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
897
|
+
<title>Scaffold Multi-Service Dashboard</title>
|
|
898
|
+
<script id="scaffold-data" type="application/json">
|
|
899
|
+
${dataJson}
|
|
900
|
+
</script>
|
|
901
|
+
<style>
|
|
902
|
+
[data-theme="dark"] {
|
|
903
|
+
--bg: #0f172a;
|
|
904
|
+
--card-bg: #1e293b;
|
|
905
|
+
--border: #334155;
|
|
906
|
+
--text: #e2e8f0;
|
|
907
|
+
--muted: #94a3b8;
|
|
908
|
+
--faint: #64748b;
|
|
909
|
+
--status-completed: #4ade80;
|
|
910
|
+
--status-skipped: #818cf8;
|
|
911
|
+
--status-in-progress: #fbbf24;
|
|
912
|
+
--status-pending: #64748b;
|
|
913
|
+
--accent: #6366f1;
|
|
914
|
+
--accent-light: #818cf8;
|
|
915
|
+
--stale-bg: #451a03;
|
|
916
|
+
--stale-text: #fef3c7;
|
|
917
|
+
}
|
|
918
|
+
[data-theme="light"] {
|
|
919
|
+
--bg: #f8fafc;
|
|
920
|
+
--card-bg: #ffffff;
|
|
921
|
+
--border: #e2e8f0;
|
|
922
|
+
--text: #1e293b;
|
|
923
|
+
--muted: #64748b;
|
|
924
|
+
--faint: #94a3b8;
|
|
925
|
+
--status-completed: #4ade80;
|
|
926
|
+
--status-skipped: #818cf8;
|
|
927
|
+
--status-in-progress: #fbbf24;
|
|
928
|
+
--status-pending: #64748b;
|
|
929
|
+
--accent: #6366f1;
|
|
930
|
+
--accent-light: #818cf8;
|
|
931
|
+
--stale-bg: #fef3c7;
|
|
932
|
+
--stale-text: #92400e;
|
|
933
|
+
}
|
|
934
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
935
|
+
body {
|
|
936
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
937
|
+
background: var(--bg);
|
|
938
|
+
color: var(--text);
|
|
939
|
+
margin: 0;
|
|
940
|
+
padding: 24px;
|
|
941
|
+
line-height: 1.5;
|
|
942
|
+
}
|
|
943
|
+
.container { max-width: 1120px; margin: 0 auto; }
|
|
944
|
+
.header {
|
|
945
|
+
display: flex;
|
|
946
|
+
justify-content: space-between;
|
|
947
|
+
align-items: flex-start;
|
|
948
|
+
margin-bottom: 24px;
|
|
949
|
+
flex-wrap: wrap;
|
|
950
|
+
gap: 12px;
|
|
951
|
+
}
|
|
952
|
+
.header h1 { margin: 0 0 4px; font-size: 1.5rem; }
|
|
953
|
+
.header-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
954
|
+
.methodology-badge {
|
|
955
|
+
background: var(--accent);
|
|
956
|
+
color: #fff;
|
|
957
|
+
padding: 2px 10px;
|
|
958
|
+
border-radius: 12px;
|
|
959
|
+
font-size: 0.8rem;
|
|
960
|
+
font-weight: 600;
|
|
961
|
+
text-transform: uppercase;
|
|
962
|
+
}
|
|
963
|
+
.pct-label { color: var(--muted); font-size: 0.9rem; }
|
|
964
|
+
.theme-toggle {
|
|
965
|
+
cursor: pointer;
|
|
966
|
+
background: var(--card-bg);
|
|
967
|
+
border: 1px solid var(--border);
|
|
968
|
+
padding: 6px 14px;
|
|
969
|
+
border-radius: 6px;
|
|
970
|
+
color: var(--text);
|
|
971
|
+
font-size: 0.85rem;
|
|
972
|
+
}
|
|
973
|
+
.theme-toggle:hover { border-color: var(--accent); }
|
|
974
|
+
.stale-notice {
|
|
975
|
+
background: var(--stale-bg);
|
|
976
|
+
color: var(--stale-text);
|
|
977
|
+
padding: 10px 16px;
|
|
978
|
+
border-radius: 6px;
|
|
979
|
+
margin-bottom: 16px;
|
|
980
|
+
font-size: 0.9rem;
|
|
981
|
+
}
|
|
982
|
+
.aggregate-block {
|
|
983
|
+
background: var(--card-bg);
|
|
984
|
+
border: 1px solid var(--border);
|
|
985
|
+
border-radius: 10px;
|
|
986
|
+
padding: 20px 24px;
|
|
987
|
+
margin-bottom: 28px;
|
|
988
|
+
}
|
|
989
|
+
.aggregate-row {
|
|
990
|
+
display: flex;
|
|
991
|
+
align-items: center;
|
|
992
|
+
gap: 16px;
|
|
993
|
+
margin-bottom: 14px;
|
|
994
|
+
flex-wrap: wrap;
|
|
995
|
+
}
|
|
996
|
+
.aggregate-progress-bar {
|
|
997
|
+
flex: 1;
|
|
998
|
+
min-width: 200px;
|
|
999
|
+
height: 10px;
|
|
1000
|
+
background: var(--border);
|
|
1001
|
+
border-radius: 5px;
|
|
1002
|
+
overflow: hidden;
|
|
1003
|
+
}
|
|
1004
|
+
.aggregate-progress-fill {
|
|
1005
|
+
height: 100%;
|
|
1006
|
+
background: var(--status-completed);
|
|
1007
|
+
}
|
|
1008
|
+
.aggregate-pct { font-size: 1.1rem; font-weight: 700; min-width: 48px; text-align: right; }
|
|
1009
|
+
.aggregate-stat { color: var(--muted); font-size: 0.9rem; }
|
|
1010
|
+
.aggregate-stat strong { color: var(--text); font-weight: 700; }
|
|
1011
|
+
.phase-indicators {
|
|
1012
|
+
display: flex;
|
|
1013
|
+
gap: 10px;
|
|
1014
|
+
flex-wrap: wrap;
|
|
1015
|
+
padding-top: 8px;
|
|
1016
|
+
border-top: 1px solid var(--border);
|
|
1017
|
+
margin-top: 8px;
|
|
1018
|
+
}
|
|
1019
|
+
.phase-indicator {
|
|
1020
|
+
background: var(--bg);
|
|
1021
|
+
border: 1px solid var(--border);
|
|
1022
|
+
border-radius: 6px;
|
|
1023
|
+
padding: 6px 10px;
|
|
1024
|
+
min-width: 90px;
|
|
1025
|
+
}
|
|
1026
|
+
.phase-indicator-num { font-size: 0.7rem; color: var(--faint); font-weight: 700; }
|
|
1027
|
+
.phase-indicator-name { font-size: 0.8rem; font-weight: 600; }
|
|
1028
|
+
.phase-indicator-count { font-size: 0.75rem; color: var(--muted); }
|
|
1029
|
+
.services-grid {
|
|
1030
|
+
display: grid;
|
|
1031
|
+
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
|
|
1032
|
+
gap: 16px;
|
|
1033
|
+
}
|
|
1034
|
+
.service-card {
|
|
1035
|
+
background: var(--card-bg);
|
|
1036
|
+
border: 1px solid var(--border);
|
|
1037
|
+
border-radius: 10px;
|
|
1038
|
+
padding: 16px 18px;
|
|
1039
|
+
cursor: pointer;
|
|
1040
|
+
transition: border-color 0.15s, transform 0.1s;
|
|
1041
|
+
}
|
|
1042
|
+
.service-card:hover { border-color: var(--accent); transform: translateY(-1px); }
|
|
1043
|
+
.service-card-head {
|
|
1044
|
+
display: flex;
|
|
1045
|
+
justify-content: space-between;
|
|
1046
|
+
align-items: center;
|
|
1047
|
+
gap: 8px;
|
|
1048
|
+
margin-bottom: 10px;
|
|
1049
|
+
}
|
|
1050
|
+
.service-name { font-size: 1.1rem; font-weight: 700; }
|
|
1051
|
+
.service-type-pill {
|
|
1052
|
+
background: var(--border);
|
|
1053
|
+
color: var(--muted);
|
|
1054
|
+
padding: 2px 8px;
|
|
1055
|
+
border-radius: 10px;
|
|
1056
|
+
font-size: 0.7rem;
|
|
1057
|
+
font-weight: 600;
|
|
1058
|
+
text-transform: lowercase;
|
|
1059
|
+
}
|
|
1060
|
+
.service-progress-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
|
|
1061
|
+
.service-progress-bar { flex: 1; height: 8px; background: var(--border); border-radius: 4px; overflow: hidden; }
|
|
1062
|
+
.service-progress-fill { height: 100%; background: var(--status-completed); }
|
|
1063
|
+
.service-pct { font-size: 0.85rem; font-weight: 600; min-width: 42px; text-align: right; }
|
|
1064
|
+
.service-counts { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
|
|
1065
|
+
.count-pill {
|
|
1066
|
+
font-size: 0.7rem;
|
|
1067
|
+
padding: 2px 8px;
|
|
1068
|
+
border-radius: 10px;
|
|
1069
|
+
font-weight: 600;
|
|
1070
|
+
}
|
|
1071
|
+
.count-completed { background: var(--status-completed); color: #064e3b; }
|
|
1072
|
+
.count-skipped { background: var(--status-skipped); color: #1e1b4b; }
|
|
1073
|
+
.count-in-progress { background: var(--status-in-progress); color: #451a03; }
|
|
1074
|
+
.count-pending { background: var(--border); color: var(--muted); }
|
|
1075
|
+
.service-phase-line { font-size: 0.85rem; color: var(--muted); margin-bottom: 6px; }
|
|
1076
|
+
.service-phase { color: var(--text); font-weight: 500; }
|
|
1077
|
+
.service-complete-badge {
|
|
1078
|
+
background: var(--status-completed);
|
|
1079
|
+
color: #064e3b;
|
|
1080
|
+
padding: 2px 10px;
|
|
1081
|
+
border-radius: 10px;
|
|
1082
|
+
font-size: 0.75rem;
|
|
1083
|
+
font-weight: 700;
|
|
1084
|
+
text-transform: uppercase;
|
|
1085
|
+
}
|
|
1086
|
+
.service-not-started-badge {
|
|
1087
|
+
background: var(--border);
|
|
1088
|
+
color: var(--muted);
|
|
1089
|
+
padding: 2px 10px;
|
|
1090
|
+
border-radius: 10px;
|
|
1091
|
+
font-size: 0.75rem;
|
|
1092
|
+
font-weight: 700;
|
|
1093
|
+
text-transform: uppercase;
|
|
1094
|
+
}
|
|
1095
|
+
.service-next { font-size: 0.8rem; color: var(--muted); margin-bottom: 10px; }
|
|
1096
|
+
.service-next-label { color: var(--faint); text-transform: uppercase; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.04em; }
|
|
1097
|
+
.service-next-slug { color: var(--accent-light); font-weight: 600; }
|
|
1098
|
+
.service-next-summary { color: var(--muted); }
|
|
1099
|
+
.service-cmd-hint {
|
|
1100
|
+
display: flex;
|
|
1101
|
+
justify-content: space-between;
|
|
1102
|
+
align-items: center;
|
|
1103
|
+
gap: 8px;
|
|
1104
|
+
padding: 8px 10px;
|
|
1105
|
+
background: var(--bg);
|
|
1106
|
+
border: 1px solid var(--border);
|
|
1107
|
+
border-radius: 6px;
|
|
1108
|
+
font-size: 0.75rem;
|
|
1109
|
+
}
|
|
1110
|
+
.service-cmd-hint code { color: var(--text); }
|
|
1111
|
+
.service-cmd-copy { color: var(--faint); }
|
|
1112
|
+
.service-card.copied { border-color: var(--status-completed); }
|
|
1113
|
+
.service-card.copied .service-cmd-copy { color: var(--status-completed); font-weight: 600; }
|
|
1114
|
+
.footer {
|
|
1115
|
+
margin-top: 40px;
|
|
1116
|
+
padding-top: 16px;
|
|
1117
|
+
border-top: 1px solid var(--border);
|
|
1118
|
+
color: var(--faint);
|
|
1119
|
+
font-size: 0.75rem;
|
|
1120
|
+
display: flex;
|
|
1121
|
+
justify-content: space-between;
|
|
1122
|
+
flex-wrap: wrap;
|
|
1123
|
+
gap: 8px;
|
|
1124
|
+
}
|
|
1125
|
+
@media (max-width: 480px) {
|
|
1126
|
+
body { padding: 16px; }
|
|
1127
|
+
.header { flex-direction: column; }
|
|
1128
|
+
.services-grid { grid-template-columns: 1fr; }
|
|
1129
|
+
}
|
|
1130
|
+
</style>
|
|
1131
|
+
</head>
|
|
1132
|
+
<body>
|
|
1133
|
+
<script>
|
|
1134
|
+
var stored = localStorage.getItem('scaffold-theme');
|
|
1135
|
+
var prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
1136
|
+
var theme = stored || (prefersDark ? 'dark' : 'light');
|
|
1137
|
+
document.documentElement.setAttribute('data-theme', theme);
|
|
1138
|
+
</script>
|
|
1139
|
+
<div class="container">
|
|
1140
|
+
<div class="header">
|
|
1141
|
+
<div>
|
|
1142
|
+
<h1>Multi-Service Pipeline</h1>
|
|
1143
|
+
<div class="header-meta">
|
|
1144
|
+
<span class="methodology-badge">${methodology}</span>
|
|
1145
|
+
<span class="pct-label">${avgPct}% average</span>
|
|
1146
|
+
</div>
|
|
1147
|
+
</div>
|
|
1148
|
+
<button class="theme-toggle" onclick="toggleTheme()">Toggle theme</button>
|
|
1149
|
+
</div>
|
|
1150
|
+
${staleNotice}
|
|
1151
|
+
<div class="aggregate-block">
|
|
1152
|
+
<div class="aggregate-row">
|
|
1153
|
+
<div class="aggregate-progress-bar"><div class="aggregate-progress-fill" style="width:${avgPct}%"></div></div>
|
|
1154
|
+
<span class="aggregate-pct">${avgPct}%</span>
|
|
1155
|
+
</div>
|
|
1156
|
+
<div class="aggregate-stat"><strong>${data.aggregate.servicesComplete}</strong> of <strong>${data.aggregate.totalServices}</strong> services complete</div>
|
|
1157
|
+
${servicesByPhase ? `<div class="phase-indicators">${servicesByPhase}</div>` : ''}
|
|
1158
|
+
</div>
|
|
1159
|
+
<div class="services-grid">
|
|
1160
|
+
${serviceCards}
|
|
1161
|
+
</div>
|
|
1162
|
+
<div class="footer">
|
|
1163
|
+
<span>Generated ${escapeHtml(data.generatedAt)}</span>
|
|
1164
|
+
<span>Scaffold v${escapeHtml(data.scaffoldVersion)}</span>
|
|
1165
|
+
</div>
|
|
1166
|
+
</div>
|
|
1167
|
+
<script>
|
|
1168
|
+
(function() {
|
|
1169
|
+
function toggleTheme() {
|
|
1170
|
+
var current = document.documentElement.getAttribute('data-theme');
|
|
1171
|
+
var next = current === 'dark' ? 'light' : 'dark';
|
|
1172
|
+
document.documentElement.setAttribute('data-theme', next);
|
|
1173
|
+
localStorage.setItem('scaffold-theme', next);
|
|
1174
|
+
}
|
|
1175
|
+
window.toggleTheme = toggleTheme;
|
|
1176
|
+
|
|
1177
|
+
function copyCommand(text, card) {
|
|
1178
|
+
if (navigator.clipboard && navigator.clipboard.writeText) {
|
|
1179
|
+
navigator.clipboard.writeText(text).then(function() {
|
|
1180
|
+
if (card) {
|
|
1181
|
+
card.classList.add('copied');
|
|
1182
|
+
var label = card.querySelector('.service-cmd-copy');
|
|
1183
|
+
if (label) {
|
|
1184
|
+
var orig = label.textContent;
|
|
1185
|
+
label.textContent = 'Copied!';
|
|
1186
|
+
setTimeout(function() {
|
|
1187
|
+
label.textContent = orig;
|
|
1188
|
+
card.classList.remove('copied');
|
|
1189
|
+
}, 1500);
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
});
|
|
1193
|
+
}
|
|
1194
|
+
}
|
|
1195
|
+
window.copyCommand = copyCommand;
|
|
1196
|
+
|
|
1197
|
+
// Wire up service-card clicks via data-copy (no inline onclick — XSS-safe).
|
|
1198
|
+
var cards = document.querySelectorAll('.service-card[data-copy]');
|
|
1199
|
+
for (var i = 0; i < cards.length; i++) {
|
|
1200
|
+
(function(card) {
|
|
1201
|
+
var cmd = card.getAttribute('data-copy') || '';
|
|
1202
|
+
card.addEventListener('click', function() { copyCommand(cmd, card); });
|
|
1203
|
+
})(cards[i]);
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
(function() {
|
|
1207
|
+
var dataEl = document.getElementById('scaffold-data');
|
|
1208
|
+
if (!dataEl) return;
|
|
1209
|
+
var data = JSON.parse(dataEl.textContent || '{}');
|
|
1210
|
+
if (data.generatedAt) {
|
|
1211
|
+
var age = Date.now() - new Date(data.generatedAt).getTime();
|
|
1212
|
+
if (age > 3600000) {
|
|
1213
|
+
var existing = document.getElementById('stale-notice');
|
|
1214
|
+
if (!existing) {
|
|
1215
|
+
var notice = document.createElement('div');
|
|
1216
|
+
notice.id = 'stale-notice';
|
|
1217
|
+
notice.className = 'stale-notice';
|
|
1218
|
+
notice.textContent = '\u26A0 Data may be stale (generated more than 1 hour ago)';
|
|
1219
|
+
var container = document.querySelector('.container');
|
|
1220
|
+
if (container) container.insertBefore(notice, container.children[1]);
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
})();
|
|
1225
|
+
})();
|
|
1226
|
+
</script>
|
|
1227
|
+
</body>
|
|
1228
|
+
</html>`;
|
|
1229
|
+
}
|
|
1230
|
+
/* eslint-enable max-len */
|
|
831
1231
|
//# sourceMappingURL=template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/dashboard/template.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/dashboard/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,31 @@ function makeSingleServiceConfig() {
|
|
|
119
119
|
},
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Build a research-service config with the given multi-domain array.
|
|
124
|
+
* Cast pattern matches makeMultiServiceConfig / makeSingleServiceConfig above.
|
|
125
|
+
*/
|
|
126
|
+
function makeResearchMultiDomainConfig(domain) {
|
|
127
|
+
return {
|
|
128
|
+
version: 2,
|
|
129
|
+
methodology: 'deep',
|
|
130
|
+
platforms: ['claude-code'],
|
|
131
|
+
project: {
|
|
132
|
+
services: [
|
|
133
|
+
{
|
|
134
|
+
name: 'experiments',
|
|
135
|
+
projectType: 'research',
|
|
136
|
+
researchConfig: {
|
|
137
|
+
experimentDriver: 'code-driven',
|
|
138
|
+
interactionMode: 'checkpoint-gated',
|
|
139
|
+
hasExperimentTracking: true,
|
|
140
|
+
domain,
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
122
147
|
// ---------------------------------------------------------------------------
|
|
123
148
|
// Tests
|
|
124
149
|
// ---------------------------------------------------------------------------
|
|
@@ -215,5 +240,49 @@ describe('service-qualified execution E2E', () => {
|
|
|
215
240
|
expect(pipeline.globalSteps.has(step), `globalSteps should contain '${step}'`).toBe(true);
|
|
216
241
|
}
|
|
217
242
|
});
|
|
243
|
+
// Service-mode multi-domain tests (spec §5.3.1): exercise the real
|
|
244
|
+
// resolvePipeline(ctx, { serviceId }) entry with a research service that
|
|
245
|
+
// declares multiple domains. Verifies that ServiceSchema's config-reuse of
|
|
246
|
+
// ResearchConfigSchema carries the widened multi-domain shape through, AND
|
|
247
|
+
// that declaration order is preserved.
|
|
248
|
+
it.each([
|
|
249
|
+
{
|
|
250
|
+
name: 'service-mode multi-domain preserves declaration order',
|
|
251
|
+
domain: ['quant-finance', 'ml-research'],
|
|
252
|
+
quantBeforeMl: true,
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: 'service-mode multi-domain preserves order when reversed',
|
|
256
|
+
domain: ['ml-research', 'quant-finance'],
|
|
257
|
+
quantBeforeMl: false,
|
|
258
|
+
},
|
|
259
|
+
])('$name', async ({ domain, quantBeforeMl }) => {
|
|
260
|
+
const methodologyDir = getPackageMethodologyDir();
|
|
261
|
+
const realMetaPrompts = await discoverRealMetaPrompts();
|
|
262
|
+
const knownSteps = [...realMetaPrompts.keys()];
|
|
263
|
+
const presets = loadAllPresets(methodologyDir, knownSteps);
|
|
264
|
+
const output = createMockOutput();
|
|
265
|
+
const config = makeResearchMultiDomainConfig(domain);
|
|
266
|
+
const pipeline = resolvePipeline({
|
|
267
|
+
projectRoot: '/tmp/test',
|
|
268
|
+
metaPrompts: realMetaPrompts,
|
|
269
|
+
config,
|
|
270
|
+
configErrors: [],
|
|
271
|
+
configWarnings: [],
|
|
272
|
+
presets,
|
|
273
|
+
methodologyDir,
|
|
274
|
+
}, { output, serviceId: 'experiments' });
|
|
275
|
+
const sysArchKnowledge = pipeline.overlay.knowledge['system-architecture'] ?? [];
|
|
276
|
+
const quantIdx = sysArchKnowledge.indexOf('research-quant-backtesting');
|
|
277
|
+
const mlIdx = sysArchKnowledge.indexOf('research-ml-architecture-search');
|
|
278
|
+
expect(quantIdx).toBeGreaterThan(-1);
|
|
279
|
+
expect(mlIdx).toBeGreaterThan(-1);
|
|
280
|
+
if (quantBeforeMl) {
|
|
281
|
+
expect(quantIdx).toBeLessThan(mlIdx);
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
expect(mlIdx).toBeLessThan(quantIdx);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
218
287
|
});
|
|
219
288
|
//# sourceMappingURL=service-execution.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-execution.test.js","sourceRoot":"","sources":["../../src/e2e/service-execution.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service-execution.test.js","sourceRoot":"","sources":["../../src/e2e/service-execution.test.ts"],"names":[],"mappings":"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"}
|