@zigrivers/scaffold 3.19.0 → 3.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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/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/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AA4B1C,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAkCD,QAAA,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAyL3E,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -2,6 +2,9 @@ import fs from 'node:fs';
|
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { execFileSync } from 'node:child_process';
|
|
5
|
+
import { createRequire } from 'node:module';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const pkg = require('../../../package.json');
|
|
5
8
|
import { findProjectRoot } from '../middleware/project-root.js';
|
|
6
9
|
import { resolveOutputMode } from '../middleware/output-mode.js';
|
|
7
10
|
import { createOutputContext } from '../output/context.js';
|
|
@@ -11,9 +14,34 @@ import { loadConfig } from '../../config/loader.js';
|
|
|
11
14
|
import { guardSteplessCommand } from '../guards.js';
|
|
12
15
|
import { StatePathResolver } from '../../state/state-path-resolver.js';
|
|
13
16
|
import { ensureV3Migration } from '../../state/ensure-v3-migration.js';
|
|
14
|
-
import { generateDashboardData, generateHtml } from '../../dashboard/generator.js';
|
|
17
|
+
import { generateDashboardData, generateHtml, generateMultiServiceDashboardData, generateMultiServiceHtml, } from '../../dashboard/generator.js';
|
|
15
18
|
import { discoverMetaPrompts } from '../../core/assembly/meta-prompt-loader.js';
|
|
16
19
|
import { getPackagePipelineDir, atomicWriteFile } from '../../utils/fs.js';
|
|
20
|
+
/**
|
|
21
|
+
* Write HTML to the requested path (or a tmpfile), then optionally open it in
|
|
22
|
+
* the system browser. Shared between single-service and multi-service modes.
|
|
23
|
+
* Calls process.exit(0) on success.
|
|
24
|
+
*/
|
|
25
|
+
function writeAndOpenDashboard(html, argv, output) {
|
|
26
|
+
const outputPath = argv.output ?? path.join(os.tmpdir(), `scaffold-dashboard-${Date.now()}.html`);
|
|
27
|
+
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
|
28
|
+
atomicWriteFile(outputPath, html);
|
|
29
|
+
if (!argv['no-open']) {
|
|
30
|
+
let opener = 'xdg-open';
|
|
31
|
+
if (process.platform === 'darwin')
|
|
32
|
+
opener = 'open';
|
|
33
|
+
if (process.platform === 'win32')
|
|
34
|
+
opener = 'start';
|
|
35
|
+
try {
|
|
36
|
+
execFileSync(opener, [outputPath]);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Ignore errors when opening browser
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
output.success(`Dashboard generated: ${outputPath}`);
|
|
43
|
+
process.exit(0);
|
|
44
|
+
}
|
|
17
45
|
const dashboardCommand = {
|
|
18
46
|
command: 'dashboard',
|
|
19
47
|
describe: 'Open pipeline dashboard in browser',
|
|
@@ -57,7 +85,73 @@ const dashboardCommand = {
|
|
|
57
85
|
guardSteplessCommand(config ?? {}, service, { commandName: 'dashboard', output });
|
|
58
86
|
if (process.exitCode === 2)
|
|
59
87
|
return;
|
|
60
|
-
//
|
|
88
|
+
// Multi-service mode: config has services[] AND no --service flag.
|
|
89
|
+
// Iterate per-service, render aggregate bird's-eye dashboard.
|
|
90
|
+
const configuredServices = config?.project?.services;
|
|
91
|
+
const isMultiServiceMode = !service && Array.isArray(configuredServices) && configuredServices.length > 0;
|
|
92
|
+
if (isMultiServiceMode) {
|
|
93
|
+
// Load meta-prompts ONCE and share across all services.
|
|
94
|
+
const metaPrompts = discoverMetaPrompts(getPackagePipelineDir(projectRoot));
|
|
95
|
+
// Methodology resolution: prefer config.methodology.preset; else fall back to
|
|
96
|
+
// the first loaded service state's config_methodology; else 'unknown'.
|
|
97
|
+
const configMethodology = config?.methodology?.preset;
|
|
98
|
+
const loadedServices = [];
|
|
99
|
+
let fallbackStateMethodology;
|
|
100
|
+
for (const svc of configuredServices) {
|
|
101
|
+
const svcResolver = new StatePathResolver(projectRoot, svc.name);
|
|
102
|
+
const svcStateManager = new StateManager(projectRoot, () => [], () => config ?? undefined, svcResolver, new Set(), undefined);
|
|
103
|
+
let svcState;
|
|
104
|
+
try {
|
|
105
|
+
svcState = svcStateManager.loadState();
|
|
106
|
+
if (!fallbackStateMethodology) {
|
|
107
|
+
fallbackStateMethodology = svcState.config_methodology;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
// Only convert missing-state-file into a skeleton; re-throw anything
|
|
112
|
+
// else (corrupt JSON, schema-version mismatch, permission errors) so
|
|
113
|
+
// the user sees the real error instead of a confusing 0% row.
|
|
114
|
+
// Codex/Claude MMR P2: bare catch collapsed every failure mode.
|
|
115
|
+
const code = err?.code;
|
|
116
|
+
if (code !== 'STATE_MISSING')
|
|
117
|
+
throw err;
|
|
118
|
+
// Skeleton state: empty steps (total=0) renders as "Not started" in
|
|
119
|
+
// the multi-service template, distinct from "Complete".
|
|
120
|
+
svcState = {
|
|
121
|
+
'schema-version': 3,
|
|
122
|
+
'scaffold-version': pkg.version,
|
|
123
|
+
init_methodology: configMethodology ?? 'unknown',
|
|
124
|
+
config_methodology: configMethodology ?? 'unknown',
|
|
125
|
+
'init-mode': 'greenfield',
|
|
126
|
+
created: new Date().toISOString(),
|
|
127
|
+
in_progress: null,
|
|
128
|
+
steps: {},
|
|
129
|
+
next_eligible: [],
|
|
130
|
+
'extra-steps': [],
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
loadedServices.push({
|
|
134
|
+
name: svc.name,
|
|
135
|
+
projectType: svc.projectType,
|
|
136
|
+
state: svcState,
|
|
137
|
+
metaPrompts,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
const methodology = configMethodology ?? fallbackStateMethodology ?? 'unknown';
|
|
141
|
+
const dashboardData = generateMultiServiceDashboardData({
|
|
142
|
+
services: loadedServices,
|
|
143
|
+
methodology,
|
|
144
|
+
});
|
|
145
|
+
if (argv['json-only']) {
|
|
146
|
+
output.result(dashboardData);
|
|
147
|
+
process.exit(0);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const html = generateMultiServiceHtml(dashboardData);
|
|
151
|
+
writeAndOpenDashboard(html, argv, output);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// 4. Load state (single-service / global scope)
|
|
61
155
|
const pathResolver = new StatePathResolver(projectRoot, service);
|
|
62
156
|
const stateManager = new StateManager(projectRoot, () => [], () => config ?? undefined, pathResolver,
|
|
63
157
|
// Empty Set (truthy) so StateManager.saveState's `isServiceScoped && globalSteps`
|
|
@@ -94,30 +188,9 @@ const dashboardCommand = {
|
|
|
94
188
|
process.exit(0);
|
|
95
189
|
return;
|
|
96
190
|
}
|
|
97
|
-
// 9. Generate HTML
|
|
191
|
+
// 9. Generate HTML + write + open
|
|
98
192
|
const html = generateHtml(dashboardData);
|
|
99
|
-
|
|
100
|
-
const outputPath = argv.output ?? path.join(os.tmpdir(), `scaffold-dashboard-${Date.now()}.html`);
|
|
101
|
-
// 11. Create parent directory if needed and write file
|
|
102
|
-
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
|
103
|
-
atomicWriteFile(outputPath, html);
|
|
104
|
-
// 12. Open in browser (unless --no-open)
|
|
105
|
-
if (!argv['no-open']) {
|
|
106
|
-
let opener = 'xdg-open';
|
|
107
|
-
if (process.platform === 'darwin')
|
|
108
|
-
opener = 'open';
|
|
109
|
-
if (process.platform === 'win32')
|
|
110
|
-
opener = 'start';
|
|
111
|
-
try {
|
|
112
|
-
execFileSync(opener, [outputPath]);
|
|
113
|
-
}
|
|
114
|
-
catch {
|
|
115
|
-
// Ignore errors when opening browser
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// 13. Report success
|
|
119
|
-
output.success(`Dashboard generated: ${outputPath}`);
|
|
120
|
-
process.exit(0);
|
|
193
|
+
writeAndOpenDashboard(html, argv, output);
|
|
121
194
|
},
|
|
122
195
|
};
|
|
123
196
|
export default dashboardCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,108 @@ function makeProjectDir(stateContent) {
|
|
|
38
38
|
fs.writeFileSync(path.join(dir, '.scaffold', 'state.json'), state, 'utf8');
|
|
39
39
|
return dir;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Create a multi-service project fixture.
|
|
43
|
+
* Writes:
|
|
44
|
+
* - .scaffold/config.yml with `project.services` entries (YAML)
|
|
45
|
+
* - .scaffold/state.json (v3 root, empty steps)
|
|
46
|
+
* - .scaffold/services/{svc}/state.json for each service in `services`
|
|
47
|
+
* If `omitServiceStates` is supplied, those named service state files are NOT
|
|
48
|
+
* written — used to test "broken service" handling.
|
|
49
|
+
*/
|
|
50
|
+
function makeMultiServiceProjectDir(opts) {
|
|
51
|
+
const dir = makeTmpDir();
|
|
52
|
+
fs.mkdirSync(path.join(dir, '.scaffold'), { recursive: true });
|
|
53
|
+
// config.yml with services[]
|
|
54
|
+
const yamlServices = opts.services
|
|
55
|
+
.map(s => ` - name: ${s.name}\n projectType: ${s.projectType}\n ${configBlockFor(s.projectType)}`)
|
|
56
|
+
.join('\n');
|
|
57
|
+
const yaml = `version: 2\nmethodology: deep\nplatforms: [claude-code]\nproject:\n services:\n${yamlServices}\n`;
|
|
58
|
+
fs.writeFileSync(path.join(dir, '.scaffold', 'config.yml'), yaml, 'utf8');
|
|
59
|
+
// v3 root state (global steps only; empty here)
|
|
60
|
+
const rootState = JSON.stringify({
|
|
61
|
+
'schema-version': 3,
|
|
62
|
+
'scaffold-version': '2.0.0',
|
|
63
|
+
init_methodology: 'deep',
|
|
64
|
+
config_methodology: 'deep',
|
|
65
|
+
'init-mode': 'greenfield',
|
|
66
|
+
created: '2024-01-01T00:00:00.000Z',
|
|
67
|
+
in_progress: null,
|
|
68
|
+
steps: {},
|
|
69
|
+
next_eligible: [],
|
|
70
|
+
'extra-steps': [],
|
|
71
|
+
});
|
|
72
|
+
fs.writeFileSync(path.join(dir, '.scaffold', 'state.json'), rootState, 'utf8');
|
|
73
|
+
// per-service state files
|
|
74
|
+
const omit = new Set(opts.omitServiceStates ?? []);
|
|
75
|
+
for (const svc of opts.services) {
|
|
76
|
+
if (omit.has(svc.name))
|
|
77
|
+
continue;
|
|
78
|
+
const svcDir = path.join(dir, '.scaffold', 'services', svc.name);
|
|
79
|
+
fs.mkdirSync(svcDir, { recursive: true });
|
|
80
|
+
const completedSlug = svc.stepCompletedSlug ?? 'create-prd';
|
|
81
|
+
const svcState = JSON.stringify({
|
|
82
|
+
'schema-version': 3,
|
|
83
|
+
'scaffold-version': '2.0.0',
|
|
84
|
+
init_methodology: 'deep',
|
|
85
|
+
config_methodology: 'deep',
|
|
86
|
+
'init-mode': 'greenfield',
|
|
87
|
+
created: '2024-01-01T00:00:00.000Z',
|
|
88
|
+
in_progress: null,
|
|
89
|
+
steps: {
|
|
90
|
+
[completedSlug]: {
|
|
91
|
+
status: 'completed',
|
|
92
|
+
source: 'pipeline',
|
|
93
|
+
at: '2024-01-02T00:00:00.000Z',
|
|
94
|
+
completed_by: 'claude',
|
|
95
|
+
depth: 2,
|
|
96
|
+
produces: ['docs/prd.md'],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
next_eligible: [],
|
|
100
|
+
'extra-steps': [],
|
|
101
|
+
});
|
|
102
|
+
fs.writeFileSync(path.join(svcDir, 'state.json'), svcState, 'utf8');
|
|
103
|
+
}
|
|
104
|
+
return dir;
|
|
105
|
+
}
|
|
106
|
+
function configBlockFor(projectType) {
|
|
107
|
+
// Minimal valid config blocks per projectType (matching schema coupling rules).
|
|
108
|
+
const indent = ' ';
|
|
109
|
+
switch (projectType) {
|
|
110
|
+
case 'backend':
|
|
111
|
+
return [
|
|
112
|
+
'backendConfig:',
|
|
113
|
+
`${indent}apiStyle: rest`,
|
|
114
|
+
`${indent}dataStore: [relational]`,
|
|
115
|
+
`${indent}authMechanism: apikey`,
|
|
116
|
+
`${indent}asyncMessaging: none`,
|
|
117
|
+
`${indent}deployTarget: container`,
|
|
118
|
+
`${indent}domain: fintech`,
|
|
119
|
+
].join('\n');
|
|
120
|
+
case 'library':
|
|
121
|
+
return [
|
|
122
|
+
'libraryConfig:',
|
|
123
|
+
`${indent}visibility: internal`,
|
|
124
|
+
`${indent}documentationLevel: api-docs`,
|
|
125
|
+
].join('\n');
|
|
126
|
+
case 'web-app':
|
|
127
|
+
return [
|
|
128
|
+
'webAppConfig:',
|
|
129
|
+
`${indent}frontendFramework: react`,
|
|
130
|
+
`${indent}renderingStrategy: ssr`,
|
|
131
|
+
`${indent}stateManagement: none`,
|
|
132
|
+
`${indent}styling: tailwind`,
|
|
133
|
+
`${indent}routing: file-based`,
|
|
134
|
+
`${indent}dataFetching: rest`,
|
|
135
|
+
`${indent}authMechanism: apikey`,
|
|
136
|
+
`${indent}deployTarget: container`,
|
|
137
|
+
`${indent}domain: fintech`,
|
|
138
|
+
].join('\n');
|
|
139
|
+
default:
|
|
140
|
+
return '';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
41
143
|
afterEach(() => {
|
|
42
144
|
for (const d of tmpDirs) {
|
|
43
145
|
try {
|
|
@@ -138,5 +240,113 @@ describe('dashboard command', () => {
|
|
|
138
240
|
expect(allOutput).toContain('Dashboard generated');
|
|
139
241
|
expect(allOutput).toContain(outputPath);
|
|
140
242
|
});
|
|
243
|
+
describe('multi-service mode', () => {
|
|
244
|
+
it('renders multi-service HTML when services[] is non-empty and --service is not set', async () => {
|
|
245
|
+
const dir = makeMultiServiceProjectDir({
|
|
246
|
+
services: [
|
|
247
|
+
{ name: 'svc-a', projectType: 'backend' },
|
|
248
|
+
{ name: 'svc-b', projectType: 'library' },
|
|
249
|
+
],
|
|
250
|
+
});
|
|
251
|
+
const outDir = makeTmpDir();
|
|
252
|
+
const outputPath = path.join(outDir, 'dashboard.html');
|
|
253
|
+
vi.spyOn(projectRootModule, 'findProjectRoot').mockReturnValue(dir);
|
|
254
|
+
await expect(runDashboardHandler({ ...BASE_ARGV, output: outputPath })).rejects.toThrow('process.exit(0)');
|
|
255
|
+
expect(fs.existsSync(outputPath)).toBe(true);
|
|
256
|
+
const html = fs.readFileSync(outputPath, 'utf8');
|
|
257
|
+
// Multi-service template marker (service cards, not present in single-service HTML).
|
|
258
|
+
expect(html).toContain('service-card');
|
|
259
|
+
expect(html).toContain('svc-a');
|
|
260
|
+
expect(html).toContain('svc-b');
|
|
261
|
+
});
|
|
262
|
+
it('--service flag bypasses multi-service mode even when services[] exists', async () => {
|
|
263
|
+
const dir = makeMultiServiceProjectDir({
|
|
264
|
+
services: [
|
|
265
|
+
{ name: 'svc-a', projectType: 'backend' },
|
|
266
|
+
{ name: 'svc-b', projectType: 'library' },
|
|
267
|
+
],
|
|
268
|
+
});
|
|
269
|
+
const outDir = makeTmpDir();
|
|
270
|
+
const outputPath = path.join(outDir, 'dashboard.html');
|
|
271
|
+
vi.spyOn(projectRootModule, 'findProjectRoot').mockReturnValue(dir);
|
|
272
|
+
await expect(runDashboardHandler({ ...BASE_ARGV, output: outputPath, service: 'svc-a' })).rejects.toThrow('process.exit(0)');
|
|
273
|
+
expect(fs.existsSync(outputPath)).toBe(true);
|
|
274
|
+
const html = fs.readFileSync(outputPath, 'utf8');
|
|
275
|
+
// Single-service HTML must NOT contain the multi-service service-card marker.
|
|
276
|
+
expect(html).not.toContain('service-card');
|
|
277
|
+
});
|
|
278
|
+
it('single-project config (no services) uses existing single-service path', async () => {
|
|
279
|
+
// makeProjectDir writes NO config.yml — loadConfig returns null, so services[] is undefined.
|
|
280
|
+
const dir = makeProjectDir();
|
|
281
|
+
const outDir = makeTmpDir();
|
|
282
|
+
const outputPath = path.join(outDir, 'dashboard.html');
|
|
283
|
+
vi.spyOn(projectRootModule, 'findProjectRoot').mockReturnValue(dir);
|
|
284
|
+
await expect(runDashboardHandler({ ...BASE_ARGV, output: outputPath })).rejects.toThrow('process.exit(0)');
|
|
285
|
+
const html = fs.readFileSync(outputPath, 'utf8');
|
|
286
|
+
// Single-service HTML should not contain multi-service card markers.
|
|
287
|
+
expect(html).not.toContain('service-card');
|
|
288
|
+
});
|
|
289
|
+
it('--json-only mode emits MultiServiceDashboardData envelope', async () => {
|
|
290
|
+
const dir = makeMultiServiceProjectDir({
|
|
291
|
+
services: [
|
|
292
|
+
{ name: 'svc-a', projectType: 'backend' },
|
|
293
|
+
{ name: 'svc-b', projectType: 'library' },
|
|
294
|
+
],
|
|
295
|
+
});
|
|
296
|
+
vi.spyOn(projectRootModule, 'findProjectRoot').mockReturnValue(dir);
|
|
297
|
+
await expect(runDashboardHandler({ ...BASE_ARGV, format: 'json', 'json-only': true })).rejects.toThrow('process.exit(0)');
|
|
298
|
+
const allStdout = stdoutWrite.mock.calls.map(c => String(c[0])).join('');
|
|
299
|
+
const parsed = JSON.parse(allStdout);
|
|
300
|
+
expect(parsed.success).toBe(true);
|
|
301
|
+
expect(parsed.data).toHaveProperty('services');
|
|
302
|
+
expect(parsed.data).toHaveProperty('aggregate');
|
|
303
|
+
expect(parsed.data.services).toHaveLength(2);
|
|
304
|
+
expect(parsed.data.aggregate?.totalServices).toBe(2);
|
|
305
|
+
// Must NOT contain single-service-only shape keys.
|
|
306
|
+
expect(parsed.data).not.toHaveProperty('steps');
|
|
307
|
+
expect(parsed.data).not.toHaveProperty('progress');
|
|
308
|
+
expect(parsed.data).not.toHaveProperty('decisions');
|
|
309
|
+
});
|
|
310
|
+
it('missing service state uses empty skeleton state (continues with remaining services)', async () => {
|
|
311
|
+
const dir = makeMultiServiceProjectDir({
|
|
312
|
+
services: [
|
|
313
|
+
{ name: 'svc-a', projectType: 'backend' },
|
|
314
|
+
{ name: 'svc-b', projectType: 'library' },
|
|
315
|
+
],
|
|
316
|
+
omitServiceStates: ['svc-b'], // svc-b has no state.json
|
|
317
|
+
});
|
|
318
|
+
vi.spyOn(projectRootModule, 'findProjectRoot').mockReturnValue(dir);
|
|
319
|
+
await expect(runDashboardHandler({ ...BASE_ARGV, format: 'json', 'json-only': true })).rejects.toThrow('process.exit(0)');
|
|
320
|
+
const allStdout = stdoutWrite.mock.calls.map(c => String(c[0])).join('');
|
|
321
|
+
const parsed = JSON.parse(allStdout);
|
|
322
|
+
expect(parsed.success).toBe(true);
|
|
323
|
+
expect(parsed.data.services).toHaveLength(2);
|
|
324
|
+
const svcB = parsed.data.services.find(s => s.name === 'svc-b');
|
|
325
|
+
expect(svcB).toBeDefined();
|
|
326
|
+
// Skeleton state = empty steps: total=0, completed=0, percentage=0.
|
|
327
|
+
expect(svcB?.total).toBe(0);
|
|
328
|
+
expect(svcB?.completed).toBe(0);
|
|
329
|
+
expect(svcB?.percentage).toBe(0);
|
|
330
|
+
// svc-a should still have its data intact.
|
|
331
|
+
const svcA = parsed.data.services.find(s => s.name === 'svc-a');
|
|
332
|
+
expect(svcA?.total).toBeGreaterThan(0);
|
|
333
|
+
});
|
|
334
|
+
it('re-throws non-STATE_MISSING errors (corrupt JSON does not become a skeleton — MMR P2 lock)', async () => {
|
|
335
|
+
// Regression guard: earlier bare catch collapsed every failure mode
|
|
336
|
+
// (corrupt JSON, schema-version mismatch, permission errors) into an
|
|
337
|
+
// empty skeleton, hiding real problems behind a 0% row.
|
|
338
|
+
const dir = makeMultiServiceProjectDir({
|
|
339
|
+
services: [
|
|
340
|
+
{ name: 'svc-a', projectType: 'backend' },
|
|
341
|
+
{ name: 'svc-b', projectType: 'library' },
|
|
342
|
+
],
|
|
343
|
+
});
|
|
344
|
+
// Corrupt svc-b's state.json — not missing, but parse-broken.
|
|
345
|
+
const svcBPath = path.join(dir, '.scaffold', 'services', 'svc-b', 'state.json');
|
|
346
|
+
fs.writeFileSync(svcBPath, '{ this is not valid json');
|
|
347
|
+
vi.spyOn(projectRootModule, 'findProjectRoot').mockReturnValue(dir);
|
|
348
|
+
await expect(runDashboardHandler({ ...BASE_ARGV, format: 'json', 'json-only': true })).rejects.toThrow(/STATE_PARSE_ERROR|state\.json/i);
|
|
349
|
+
});
|
|
350
|
+
});
|
|
141
351
|
});
|
|
142
352
|
//# sourceMappingURL=dashboard.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.test.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.test.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,4 +65,61 @@ export interface GeneratorOptions {
|
|
|
65
65
|
}
|
|
66
66
|
export declare function generateDashboardData(opts: GeneratorOptions): DashboardData;
|
|
67
67
|
export declare function generateHtml(data: DashboardData): string;
|
|
68
|
+
export interface ServiceSummary {
|
|
69
|
+
/** Service id from config (kebab-case). */
|
|
70
|
+
name: string;
|
|
71
|
+
/** Project type — backend / web-app / library / etc. */
|
|
72
|
+
projectType: string;
|
|
73
|
+
/** (completed + skipped) / total, 0-100. */
|
|
74
|
+
percentage: number;
|
|
75
|
+
completed: number;
|
|
76
|
+
skipped: number;
|
|
77
|
+
pending: number;
|
|
78
|
+
inProgress: number;
|
|
79
|
+
total: number;
|
|
80
|
+
/** Lowest-numbered phase with at least one pending or in_progress step. Null if pipeline complete. */
|
|
81
|
+
currentPhaseNumber: number | null;
|
|
82
|
+
/** Display name of the current phase. Null if complete. */
|
|
83
|
+
currentPhaseName: string | null;
|
|
84
|
+
/** state.next_eligible[0] or null. */
|
|
85
|
+
nextEligibleSlug: string | null;
|
|
86
|
+
/** Meta-prompt frontmatter.summary (fallback: description) of the next eligible step. */
|
|
87
|
+
nextEligibleSummary: string | null;
|
|
88
|
+
}
|
|
89
|
+
export interface MultiServiceAggregate {
|
|
90
|
+
totalServices: number;
|
|
91
|
+
/** Mean of service percentages, rounded. 0 for empty input. */
|
|
92
|
+
averagePercentage: number;
|
|
93
|
+
/** Count of services at 100%. */
|
|
94
|
+
servicesComplete: number;
|
|
95
|
+
/**
|
|
96
|
+
* Service count that has reached or passed each phase. A service "reached"
|
|
97
|
+
* phase N if it has any step in phase N that is completed or skipped.
|
|
98
|
+
*/
|
|
99
|
+
servicesByPhase: Array<{
|
|
100
|
+
phaseSlug: string;
|
|
101
|
+
phaseName: string;
|
|
102
|
+
phaseNumber: number;
|
|
103
|
+
reachedCount: number;
|
|
104
|
+
}>;
|
|
105
|
+
}
|
|
106
|
+
export interface MultiServiceDashboardData {
|
|
107
|
+
generatedAt: string;
|
|
108
|
+
methodology: string;
|
|
109
|
+
scaffoldVersion: string;
|
|
110
|
+
/** Preserves input order. */
|
|
111
|
+
services: ServiceSummary[];
|
|
112
|
+
aggregate: MultiServiceAggregate;
|
|
113
|
+
}
|
|
114
|
+
export interface MultiServiceGeneratorOptions {
|
|
115
|
+
services: Array<{
|
|
116
|
+
name: string;
|
|
117
|
+
projectType: string;
|
|
118
|
+
state: PipelineState;
|
|
119
|
+
metaPrompts?: Map<string, MetaPromptFile>;
|
|
120
|
+
}>;
|
|
121
|
+
methodology: string;
|
|
122
|
+
}
|
|
123
|
+
export declare function generateMultiServiceDashboardData(opts: MultiServiceGeneratorOptions): MultiServiceDashboardData;
|
|
124
|
+
export declare function generateMultiServiceHtml(data: MultiServiceDashboardData): string;
|
|
68
125
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/dashboard/generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAOrF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;IAC3D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CACnG;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACnG,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAA;IACpB,SAAS,EAAE,aAAa,EAAE,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CAC1C;AAyFD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAsC3E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAGxD"}
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/dashboard/generator.ts"],"names":[],"mappings":"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"}
|