projscan 4.3.0 → 4.3.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.
@@ -1,26 +1,103 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
1
3
  import chalk from 'chalk';
2
4
  import { assertFormatSupported, getRootPath, maybeCompactBanner, program, setupLogLevel, } from '../_shared.js';
3
5
  import { computeMissionProofReport } from '../../core/missionProof.js';
6
+ import { MISSION_PROOF_BASELINE_STATUSES, loadMissionProofBaseline, missionProofBaselineTemplate, parseMissionProofBaselineInput, validateMissionProofBaselineRuns, } from '../../core/missionProofBaseline.js';
7
+ import { renderMissionProofMarkdown } from '../../core/missionProofMarkdown.js';
8
+ import { renderMissionProofSummary } from '../../core/missionProofSummary.js';
4
9
  export function registerMissionProof() {
5
10
  program
6
11
  .command('mission-proof')
7
12
  .description('Summarize local Mission Control proof and compare it with optional manual baseline runs')
8
13
  .option('--mission <dir>', 'Mission Control bundle directory, repeatable (default: .projscan/mission)', collectMission, [])
14
+ .option('--all', 'discover .projscan/mission and direct child bundles under .projscan/missions')
15
+ .option('--latest', 'select the most recently updated saved mission bundle')
16
+ .option('--list', 'list saved mission bundles and exit')
17
+ .option('--needs-attention', 'filter --list to saved mission bundles that are not passed')
18
+ .option('--mission-status <status>', 'filter --list by saved mission status: passed, failed, running, not_run, or unknown')
9
19
  .option('--baseline <path>', 'JSON file with manual runs to compare against Mission Control proof')
20
+ .option('--init-baseline <file>', 'write a local manual-baseline JSON template and exit')
21
+ .option('--add-baseline-run <file>', 'append one measured manual run to a local baseline JSON file')
22
+ .option('--check-baseline <file>', 'validate a local manual-baseline JSON file and exit')
23
+ .option('--id <id>', 'manual baseline run id for --add-baseline-run')
24
+ .option('--status <status>', 'manual baseline status for --add-baseline-run: passed, failed, running, not_run, or unknown')
25
+ .option('--minutes-spent <minutes>', 'minutes spent in the manual baseline run', parseNonNegativeNumber)
26
+ .option('--reruns <count>', 'reruns in the manual baseline run', parseNonNegativeNumber)
27
+ .option('--failed-gates <count>', 'failed gates in the manual baseline run', parseNonNegativeNumber)
28
+ .option('--reviewer-approvals <count>', 'reviewer approvals in the manual baseline run', parseNonNegativeNumber)
29
+ .option('--write <file>', 'write a JSON or Markdown mission proof artifact to this path')
30
+ .option('--require-passed', 'exit non-zero unless every selected mission bundle passed proof')
31
+ .option('--summary', 'print one compact Mission Proof status line for terminal logs')
10
32
  .action(async (cmdOpts) => {
11
33
  setupLogLevel();
12
34
  maybeCompactBanner();
13
- const format = assertFormatSupported('mission-proof');
14
35
  try {
15
- const report = await computeMissionProofReport(getRootPath(), {
16
- missions: cmdOpts.mission,
36
+ const rootPath = getRootPath();
37
+ if (cmdOpts.list === true) {
38
+ const missions = filterSavedMissionBundles(sortSavedMissionBundles(await discoverSavedMissionBundles(rootPath)), cmdOpts);
39
+ printMissionBundleList(missions, assertFormatSupported('mission-proof'));
40
+ return;
41
+ }
42
+ if (typeof cmdOpts.initBaseline === 'string' && cmdOpts.initBaseline.length > 0) {
43
+ const target = await writeBaselineTemplate(rootPath, cmdOpts.initBaseline);
44
+ printBaselineTemplateWrite(target, assertFormatSupported('mission-proof'));
45
+ return;
46
+ }
47
+ if (typeof cmdOpts.addBaselineRun === 'string' && cmdOpts.addBaselineRun.length > 0) {
48
+ const run = baselineRunFromOptions(cmdOpts);
49
+ const result = await appendBaselineRun(rootPath, cmdOpts.addBaselineRun, run);
50
+ printBaselineRunAppend(result, run, assertFormatSupported('mission-proof'));
51
+ return;
52
+ }
53
+ if (typeof cmdOpts.checkBaseline === 'string' && cmdOpts.checkBaseline.length > 0) {
54
+ const baseline = await loadMissionProofBaseline(rootPath, cmdOpts.checkBaseline);
55
+ const target = path.resolve(rootPath, cmdOpts.checkBaseline);
56
+ printBaselineCheck(baseline, target, assertFormatSupported('mission-proof'));
57
+ return;
58
+ }
59
+ const format = assertFormatSupported('mission-proof');
60
+ const missions = await resolveMissionDirs(rootPath, cmdOpts.mission, cmdOpts.all === true, cmdOpts.latest === true);
61
+ const report = await computeMissionProofReport(rootPath, {
62
+ missions,
17
63
  baselineFile: typeof cmdOpts.baseline === 'string' ? cmdOpts.baseline : undefined,
18
64
  });
65
+ if (typeof cmdOpts.write === 'string' && cmdOpts.write.length > 0) {
66
+ const writeFormat = resolveWriteFormat(format, cmdOpts.write);
67
+ const target = path.resolve(rootPath, cmdOpts.write);
68
+ await fs.mkdir(path.dirname(target), { recursive: true });
69
+ await fs.writeFile(target, renderMissionProofForFormat(report, writeFormat), 'utf-8');
70
+ if (cmdOpts.summary === true) {
71
+ console.log(renderMissionProofSummary(report));
72
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
73
+ return;
74
+ }
75
+ if (writeFormat === 'json') {
76
+ console.log(JSON.stringify({ writtenTo: target, format: writeFormat }, null, 2));
77
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
78
+ return;
79
+ }
80
+ console.log(chalk.green(`Wrote mission proof report to ${target}`));
81
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
82
+ return;
83
+ }
84
+ if (cmdOpts.summary === true) {
85
+ console.log(renderMissionProofSummary(report));
86
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
87
+ return;
88
+ }
19
89
  if (format === 'json') {
20
90
  console.log(JSON.stringify(report, null, 2));
91
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
92
+ return;
93
+ }
94
+ if (format === 'markdown') {
95
+ console.log(renderMissionProofMarkdown(report).trimEnd());
96
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
21
97
  return;
22
98
  }
23
99
  printMissionProof(report);
100
+ enforceRequirePassedGate(report, cmdOpts.requirePassed === true);
24
101
  }
25
102
  catch (err) {
26
103
  console.error(chalk.red(err instanceof Error ? err.message : String(err)));
@@ -31,6 +108,347 @@ export function registerMissionProof() {
31
108
  function collectMission(value, previous) {
32
109
  return [...previous, value];
33
110
  }
111
+ function parseNonNegativeNumber(value) {
112
+ const parsed = Number(value);
113
+ if (!Number.isFinite(parsed) || parsed < 0) {
114
+ throw new Error('value must be a non-negative number');
115
+ }
116
+ return parsed;
117
+ }
118
+ async function writeBaselineTemplate(rootPath, targetPath) {
119
+ const target = path.resolve(rootPath, targetPath);
120
+ await fs.mkdir(path.dirname(target), { recursive: true });
121
+ await fs.writeFile(target, JSON.stringify(missionProofBaselineTemplate(), null, 2) + '\n', { flag: 'wx' });
122
+ return target;
123
+ }
124
+ function baselineRunFromOptions(cmdOpts) {
125
+ const id = typeof cmdOpts.id === 'string' && cmdOpts.id.length > 0 ? cmdOpts.id : undefined;
126
+ if (!id)
127
+ throw new Error('--add-baseline-run requires --id <id>.');
128
+ const status = parseBaselineStatus(cmdOpts.status);
129
+ const run = { id, status };
130
+ addOptionalNumber(run, 'minutesSpent', cmdOpts.minutesSpent);
131
+ addOptionalNumber(run, 'reruns', cmdOpts.reruns);
132
+ addOptionalNumber(run, 'failedGates', cmdOpts.failedGates);
133
+ addOptionalNumber(run, 'reviewerApprovals', cmdOpts.reviewerApprovals);
134
+ return run;
135
+ }
136
+ function parseBaselineStatus(value) {
137
+ if (typeof value === 'string' && MISSION_PROOF_BASELINE_STATUSES.includes(value))
138
+ return value;
139
+ throw new Error('--add-baseline-run requires --status passed, failed, running, not_run, or unknown.');
140
+ }
141
+ function addOptionalNumber(run, field, value) {
142
+ if (typeof value === 'number')
143
+ run[field] = value;
144
+ }
145
+ async function appendBaselineRun(rootPath, targetPath, run) {
146
+ const target = path.resolve(rootPath, targetPath);
147
+ const existing = await readBaselineForAppend(target, targetPath);
148
+ const runs = validateMissionProofBaselineRuns(existing, targetPath);
149
+ if (runs.some((existingRun) => existingRun.id === run.id)) {
150
+ throw new Error(`Mission proof baseline already has a run with id ${run.id}: ${targetPath}`);
151
+ }
152
+ const nextRuns = [...runs, run];
153
+ await fs.mkdir(path.dirname(target), { recursive: true });
154
+ await fs.writeFile(target, JSON.stringify({ ...existing, schemaVersion: 1, runs: nextRuns }, null, 2) + '\n');
155
+ return { target, runCount: nextRuns.length };
156
+ }
157
+ async function readBaselineForAppend(target, targetPath) {
158
+ let raw;
159
+ try {
160
+ raw = await fs.readFile(target, 'utf8');
161
+ }
162
+ catch (err) {
163
+ if (isNodeError(err) && err.code === 'ENOENT')
164
+ return { schemaVersion: 1, runs: [] };
165
+ throw err;
166
+ }
167
+ return parseMissionProofBaselineInput(raw, targetPath);
168
+ }
169
+ async function resolveMissionDirs(rootPath, missions, includeAll, latestOnly) {
170
+ if (latestOnly)
171
+ return [await resolveLatestMissionDir(rootPath)];
172
+ if (!includeAll)
173
+ return missions;
174
+ const selected = new Set(missions);
175
+ await addMissionIfPresent(rootPath, '.projscan/mission', selected);
176
+ await addMissionChildren(rootPath, '.projscan/missions', selected);
177
+ return [...selected];
178
+ }
179
+ async function resolveLatestMissionDir(rootPath) {
180
+ const candidates = await discoverSavedMissionBundles(rootPath);
181
+ if (candidates.length === 0) {
182
+ throw new Error('No saved mission bundles found under .projscan/mission or .projscan/missions.\n' +
183
+ 'Create one with: projscan start --save-mission .projscan/mission --intent "<goal>"');
184
+ }
185
+ return sortSavedMissionBundles(candidates)[0].missionDir;
186
+ }
187
+ async function discoverSavedMissionBundles(rootPath) {
188
+ const candidates = [];
189
+ const current = await findMissionBundle(rootPath, '.projscan/mission');
190
+ if (current)
191
+ candidates.push(current);
192
+ let entries;
193
+ try {
194
+ entries = await fs.readdir(path.resolve(rootPath, '.projscan/missions'), { withFileTypes: true });
195
+ }
196
+ catch {
197
+ return candidates;
198
+ }
199
+ for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
200
+ if (!entry.isDirectory())
201
+ continue;
202
+ const mission = await findMissionBundle(rootPath, path.join('.projscan/missions', entry.name));
203
+ if (mission)
204
+ candidates.push(mission);
205
+ }
206
+ return candidates;
207
+ }
208
+ function sortSavedMissionBundles(candidates) {
209
+ return [...candidates].sort((a, b) => b.mtimeMs - a.mtimeMs || a.missionDir.localeCompare(b.missionDir));
210
+ }
211
+ function filterSavedMissionBundles(candidates, cmdOpts) {
212
+ const exactStatus = parseOptionalMissionStatus(cmdOpts.missionStatus);
213
+ return candidates.filter((candidate) => {
214
+ if (cmdOpts.needsAttention === true && candidate.status === 'passed')
215
+ return false;
216
+ if (exactStatus && candidate.status !== exactStatus)
217
+ return false;
218
+ return true;
219
+ });
220
+ }
221
+ function parseOptionalMissionStatus(value) {
222
+ if (typeof value === 'undefined')
223
+ return undefined;
224
+ if (typeof value === 'string' && MISSION_PROOF_BASELINE_STATUSES.includes(value)) {
225
+ return value;
226
+ }
227
+ throw new Error('--mission-status must be passed, failed, running, not_run, or unknown.');
228
+ }
229
+ async function addMissionChildren(rootPath, relativeRoot, selected) {
230
+ let entries;
231
+ try {
232
+ entries = await fs.readdir(path.resolve(rootPath, relativeRoot), { withFileTypes: true });
233
+ }
234
+ catch {
235
+ return;
236
+ }
237
+ for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
238
+ if (!entry.isDirectory())
239
+ continue;
240
+ await addMissionIfPresent(rootPath, path.join(relativeRoot, entry.name), selected);
241
+ }
242
+ }
243
+ async function addMissionIfPresent(rootPath, missionDir, selected) {
244
+ if (selected.has(missionDir))
245
+ return;
246
+ const mission = await findMissionBundle(rootPath, missionDir);
247
+ if (mission)
248
+ selected.add(mission.missionDir);
249
+ }
250
+ async function findMissionBundle(rootPath, missionDir) {
251
+ const summaryPath = path.resolve(rootPath, missionDir, 'proof-logs', 'summary.json');
252
+ try {
253
+ const stat = await fs.stat(summaryPath);
254
+ if (stat.isFile()) {
255
+ return {
256
+ missionDir,
257
+ status: await readMissionSummaryStatus(summaryPath),
258
+ mtimeMs: stat.mtimeMs,
259
+ updatedAt: new Date(stat.mtimeMs).toISOString(),
260
+ };
261
+ }
262
+ }
263
+ catch {
264
+ return null;
265
+ }
266
+ return null;
267
+ }
268
+ async function readMissionSummaryStatus(summaryPath) {
269
+ try {
270
+ const parsed = JSON.parse(await fs.readFile(summaryPath, 'utf8'));
271
+ return parseMissionRunStatus(parsed.status);
272
+ }
273
+ catch {
274
+ return 'unknown';
275
+ }
276
+ }
277
+ function parseMissionRunStatus(value) {
278
+ return typeof value === 'string' && MISSION_PROOF_BASELINE_STATUSES.includes(value)
279
+ ? value
280
+ : 'unknown';
281
+ }
282
+ function resolveWriteFormat(format, target) {
283
+ if (format === 'json' || format === 'markdown')
284
+ return format;
285
+ const ext = path.extname(target).toLowerCase();
286
+ if (ext === '.json')
287
+ return 'json';
288
+ return 'markdown';
289
+ }
290
+ function renderMissionProofForFormat(report, format) {
291
+ return format === 'json'
292
+ ? JSON.stringify(report, null, 2) + '\n'
293
+ : renderMissionProofMarkdown(report);
294
+ }
295
+ function printBaselineTemplateWrite(target, format) {
296
+ if (format === 'json') {
297
+ console.log(JSON.stringify({ writtenTo: target, runCount: 0, template: true }, null, 2));
298
+ return;
299
+ }
300
+ if (format === 'markdown') {
301
+ console.log([
302
+ '# Mission Proof Baseline',
303
+ '',
304
+ `- Template written: ${target}`,
305
+ '- Runs: 0',
306
+ '',
307
+ ].join('\n'));
308
+ return;
309
+ }
310
+ console.log(chalk.green(`Wrote mission proof baseline template to ${target}`));
311
+ }
312
+ function printBaselineRunAppend(result, run, format) {
313
+ if (format === 'json') {
314
+ console.log(JSON.stringify({ writtenTo: result.target, addedRun: run, runCount: result.runCount }, null, 2));
315
+ return;
316
+ }
317
+ if (format === 'markdown') {
318
+ console.log([
319
+ '# Mission Proof Baseline',
320
+ '',
321
+ `- Added run: ${run.id}`,
322
+ `- File: ${result.target}`,
323
+ `- Runs: ${result.runCount}`,
324
+ '',
325
+ ].join('\n'));
326
+ return;
327
+ }
328
+ console.log(chalk.green(`Added baseline run ${run.id} to ${result.target}`));
329
+ }
330
+ function printBaselineCheck(baseline, target, format) {
331
+ if (format === 'json') {
332
+ console.log(JSON.stringify({
333
+ valid: true,
334
+ path: target,
335
+ runCount: baseline.runs.length,
336
+ totals: baseline.totals,
337
+ }, null, 2));
338
+ return;
339
+ }
340
+ if (format === 'markdown') {
341
+ console.log([
342
+ '# Mission Proof Baseline',
343
+ '',
344
+ `- Valid: true`,
345
+ `- Path: ${target}`,
346
+ `- Runs: ${baseline.runs.length}`,
347
+ `- Minutes spent: ${baseline.totals.minutesSpent}`,
348
+ `- Reruns: ${baseline.totals.reruns}`,
349
+ `- Failed gates: ${baseline.totals.failedGates}`,
350
+ '',
351
+ ].join('\n'));
352
+ return;
353
+ }
354
+ console.log(chalk.green(`Mission proof baseline valid: ${target} (${baseline.runs.length} run(s))`));
355
+ }
356
+ function printMissionBundleList(missions, format) {
357
+ const payload = {
358
+ missions: missions.map(missionBundleListItem),
359
+ totals: missionBundleListTotals(missions),
360
+ };
361
+ if (format === 'json') {
362
+ console.log(JSON.stringify(payload, null, 2));
363
+ return;
364
+ }
365
+ if (format === 'markdown') {
366
+ const lines = ['# Saved Mission Bundles', ''];
367
+ if (payload.missions.length === 0) {
368
+ lines.push('No saved mission bundles found.');
369
+ }
370
+ else {
371
+ lines.push('## Totals');
372
+ lines.push(`- Missions: ${payload.totals.missions}`);
373
+ lines.push(`- Passed: ${payload.totals.passed}`);
374
+ lines.push(`- Failed: ${payload.totals.failed}`);
375
+ lines.push(`- Running: ${payload.totals.running}`);
376
+ lines.push(`- Not run: ${payload.totals.notRun}`);
377
+ lines.push(`- Unknown: ${payload.totals.unknown}`);
378
+ lines.push('');
379
+ for (const mission of payload.missions) {
380
+ lines.push(`## ${mission.missionDir}`);
381
+ lines.push(`- Status: ${mission.status}`);
382
+ lines.push(`- Updated: ${mission.updatedAt}`);
383
+ lines.push('- Resume:');
384
+ lines.push('```bash');
385
+ lines.push(mission.resumeCommand);
386
+ lines.push('```');
387
+ lines.push('- Proof:');
388
+ lines.push('```bash');
389
+ lines.push(mission.proofCommand);
390
+ lines.push('```');
391
+ lines.push('');
392
+ }
393
+ }
394
+ console.log(lines.join('\n'));
395
+ return;
396
+ }
397
+ if (payload.missions.length === 0) {
398
+ console.log('No saved mission bundles found under .projscan/mission or .projscan/missions.');
399
+ return;
400
+ }
401
+ console.log(chalk.bold('Saved Mission Bundles'));
402
+ for (const mission of payload.missions) {
403
+ console.log(`- ${mission.missionDir}: ${mission.status} (${mission.updatedAt})`);
404
+ console.log(` Resume: ${mission.resumeCommand}`);
405
+ console.log(` Proof: ${mission.proofCommand}`);
406
+ }
407
+ }
408
+ function missionBundleListItem(mission) {
409
+ return {
410
+ missionDir: mission.missionDir,
411
+ status: mission.status,
412
+ updatedAt: mission.updatedAt,
413
+ resumeCommand: `projscan start --mission ${shellToken(mission.missionDir)}`,
414
+ proofCommand: `projscan mission-proof --mission ${shellToken(mission.missionDir)} --format markdown`,
415
+ };
416
+ }
417
+ function missionBundleListTotals(missions) {
418
+ return {
419
+ missions: missions.length,
420
+ passed: missions.filter((mission) => mission.status === 'passed').length,
421
+ failed: missions.filter((mission) => mission.status === 'failed').length,
422
+ running: missions.filter((mission) => mission.status === 'running').length,
423
+ notRun: missions.filter((mission) => mission.status === 'not_run').length,
424
+ unknown: missions.filter((mission) => mission.status === 'unknown').length,
425
+ };
426
+ }
427
+ function shellToken(value) {
428
+ return /^[A-Za-z0-9_./:-]+$/.test(value) ? value : JSON.stringify(value);
429
+ }
430
+ function isNodeError(value) {
431
+ return value instanceof Error && 'code' in value;
432
+ }
433
+ function enforceRequirePassedGate(report, enabled) {
434
+ if (!enabled)
435
+ return;
436
+ const totals = report.missionControl.totals;
437
+ if (totals.missions > 0 && totals.passed === totals.missions)
438
+ return;
439
+ console.error(chalk.red('Mission proof gate failed: ' + summarizeGateFailure(totals)));
440
+ process.exit(1);
441
+ }
442
+ function summarizeGateFailure(totals) {
443
+ const details = [
444
+ totals.failed > 0 ? `${totals.failed} failed` : undefined,
445
+ totals.running > 0 ? `${totals.running} running` : undefined,
446
+ totals.notRun > 0 ? `${totals.notRun} not run` : undefined,
447
+ totals.unavailable > 0 ? `${totals.unavailable} unavailable` : undefined,
448
+ ].filter(Boolean);
449
+ const suffix = details.length > 0 ? `; ${details.join('; ')}` : '';
450
+ return `${totals.passed} of ${totals.missions} mission bundle(s) passed${suffix}.`;
451
+ }
34
452
  function printMissionProof(report) {
35
453
  const totals = report.missionControl.totals;
36
454
  const color = totals.failed > 0 || totals.unavailable > 0 ? chalk.yellow : chalk.green;
@@ -1 +1 @@
1
- {"version":3,"file":"missionProof.js","sourceRoot":"","sources":["../../../src/cli/commands/missionProof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"missionProof.js","sourceRoot":"","sources":["../../../src/cli/commands/missionProof.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
- import fs from 'node:fs/promises';
2
- import path from 'node:path';
3
1
  import { loadMissionOutcome } from './missionOutcome.js';
2
+ import { loadMissionProofBaseline } from './missionProofBaseline.js';
4
3
  export async function computeMissionProofReport(rootPath, options = {}) {
5
4
  const missions = normalizeMissions(options.missions);
6
5
  const outcomes = await Promise.all(missions.map((mission) => loadMissionOutcome(rootPath, mission)));
7
6
  const missionTotals = totalsFromOutcomes(outcomes);
8
7
  const baseline = options.baselineFile
9
- ? await loadBaseline(rootPath, options.baselineFile)
8
+ ? await loadMissionProofBaseline(rootPath, options.baselineFile)
10
9
  : undefined;
11
10
  const comparison = baseline ? {
12
11
  completionRateDelta: round(missionTotals.proofCompletionRate - baseline.totals.proofCompletionRate),
@@ -52,36 +51,6 @@ function totalsFromOutcomes(outcomes) {
52
51
  function countStatus(outcomes, status) {
53
52
  return outcomes.filter((outcome) => outcome.status === status).length;
54
53
  }
55
- async function loadBaseline(rootPath, baselineFile) {
56
- const resolved = path.resolve(rootPath, baselineFile);
57
- const input = JSON.parse(await fs.readFile(resolved, 'utf8'));
58
- const runs = Array.isArray(input.runs) ? input.runs : [];
59
- const totals = totalsFromBaselineRuns(runs);
60
- return {
61
- path: path.relative(rootPath, resolved) || resolved,
62
- runs,
63
- totals,
64
- };
65
- }
66
- function totalsFromBaselineRuns(runs) {
67
- const passed = runs.filter((run) => run.status === 'passed').length;
68
- return {
69
- missions: runs.length,
70
- passed,
71
- failed: runs.filter((run) => run.status === 'failed').length,
72
- running: runs.filter((run) => run.status === 'running').length,
73
- notRun: runs.filter((run) => run.status === 'not_run').length,
74
- unavailable: runs.filter((run) => run.status === 'unknown').length,
75
- proofCompletionRate: runs.length > 0 ? round(passed / runs.length) : 0,
76
- reruns: sum(runs.map((run) => run.reruns)),
77
- failedGates: sum(runs.map((run) => run.failedGates)),
78
- reviewerApprovals: sum(runs.map((run) => run.reviewerApprovals)),
79
- minutesSpent: sum(runs.map((run) => run.minutesSpent)),
80
- };
81
- }
82
- function sum(values) {
83
- return values.reduce((total, value) => total + (typeof value === 'number' && Number.isFinite(value) ? value : 0), 0);
84
- }
85
54
  function buildRiskAvoided(totals, comparison) {
86
55
  const lines = [];
87
56
  if (totals.failedGates > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"missionProof.js","sourceRoot":"","sources":["../../src/core/missionProof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"missionProof.js","sourceRoot":"","sources":["../../src/core/missionProof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MissionProofBaselineRun, MissionProofReport } from '../types.js';
2
+ export interface MissionProofBaselineInput {
3
+ runs?: unknown;
4
+ [key: string]: unknown;
5
+ }
6
+ export declare const MISSION_PROOF_BASELINE_STATUSES: readonly ["passed", "failed", "running", "not_run", "unknown"];
7
+ export declare function loadMissionProofBaseline(rootPath: string, baselineFile: string): Promise<NonNullable<MissionProofReport['baseline']>>;
8
+ export declare function missionProofBaselineTemplate(): Record<string, unknown>;
9
+ export declare function parseMissionProofBaselineInput(raw: string, baselineFile: string): MissionProofBaselineInput;
10
+ export declare function validateMissionProofBaselineRuns(input: MissionProofBaselineInput, baselineFile: string): MissionProofBaselineRun[];