@opensip-cli/fitness 0.1.7 → 0.1.9
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 +2 -2
- package/dist/cli/__tests__/fit-runner-progress.test.d.ts +2 -0
- package/dist/cli/__tests__/fit-runner-progress.test.d.ts.map +1 -0
- package/dist/cli/__tests__/fit-runner-progress.test.js +30 -0
- package/dist/cli/__tests__/fit-runner-progress.test.js.map +1 -0
- package/dist/cli/fit-runner-progress.d.ts +12 -0
- package/dist/cli/fit-runner-progress.d.ts.map +1 -0
- package/dist/cli/fit-runner-progress.js +25 -0
- package/dist/cli/fit-runner-progress.js.map +1 -0
- package/dist/cli/fit-runner.d.ts.map +1 -1
- package/dist/cli/fit-runner.js +34 -5
- package/dist/cli/fit-runner.js.map +1 -1
- package/dist/scope-augmentation.d.ts +19 -0
- package/dist/scope-augmentation.d.ts.map +1 -1
- package/dist/signalers/schema.d.ts +1 -1
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +12 -3
- package/dist/tool.js.map +1 -1
- package/package.json +139 -15
package/README.md
CHANGED
|
@@ -23,8 +23,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
|
|
|
23
23
|
## Documentation
|
|
24
24
|
|
|
25
25
|
- 📚 Project docs: https://opensip.ai/docs/opensip-cli/
|
|
26
|
-
- 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.
|
|
27
|
-
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.
|
|
26
|
+
- 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.9/docs/public/70-reference/02-package-catalog.md
|
|
27
|
+
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.9/packages/fitness/engine
|
|
28
28
|
|
|
29
29
|
## License
|
|
30
30
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-runner-progress.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-runner-progress.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { checkCountLabel, progressTotal, withCheckCountFromProgress, } from '../fit-runner-progress.js';
|
|
3
|
+
describe('fit live progress check count', () => {
|
|
4
|
+
it('formats the default header as the running count', () => {
|
|
5
|
+
expect(checkCountLabel({ running: 187, available: 190, verbose: false })).toBe('187 running');
|
|
6
|
+
});
|
|
7
|
+
it('formats the verbose header with available and filtered counts', () => {
|
|
8
|
+
expect(checkCountLabel({ running: 187, available: 190, verbose: true })).toBe('187 running, 190 available, 3 filtered');
|
|
9
|
+
});
|
|
10
|
+
it('derives the header count from stage-progress totals', () => {
|
|
11
|
+
expect(progressTotal({ type: 'stage-start', stage: 'checks', label: 'Running checks...' })).toBe(null);
|
|
12
|
+
expect(progressTotal({ type: 'stage-progress', stage: 'checks', completed: 1, total: 187 })).toBe(187);
|
|
13
|
+
});
|
|
14
|
+
it('forwards progress events while reporting authoritative totals', () => {
|
|
15
|
+
let listener;
|
|
16
|
+
const subscribe = (cb) => {
|
|
17
|
+
listener = cb;
|
|
18
|
+
};
|
|
19
|
+
const counts = [];
|
|
20
|
+
const events = [];
|
|
21
|
+
withCheckCountFromProgress(subscribe, (count) => counts.push(count))((event) => events.push(event));
|
|
22
|
+
const start = { type: 'stage-start', stage: 'checks', label: 'Running checks...' };
|
|
23
|
+
const progress = { type: 'stage-progress', stage: 'checks', completed: 4, total: 187 };
|
|
24
|
+
listener?.(start);
|
|
25
|
+
listener?.(progress);
|
|
26
|
+
expect(counts).toEqual([187]);
|
|
27
|
+
expect(events).toEqual([start, progress]);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=fit-runner-progress.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-runner-progress.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-runner-progress.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,eAAe,EACf,aAAa,EACb,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAInC,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3E,wCAAwC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CACJ,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CACpF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CACJ,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CACrF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,IAAI,QAAsC,CAAC;QAC3C,MAAM,SAAS,GAAG,CAAC,EAAoB,EAAQ,EAAE;YAC/C,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,0BAA0B,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CACnB,CAAC;QAEF,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAW,CAAC;QAC5F,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAW,CAAC;QAEhG,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;QAErB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ProgressCallback, ProgressEvent } from '@opensip-cli/cli-ui';
|
|
2
|
+
import type { SignalEnvelope } from '@opensip-cli/contracts';
|
|
3
|
+
export interface CheckCountLabelInput {
|
|
4
|
+
readonly running: number;
|
|
5
|
+
readonly available: number;
|
|
6
|
+
readonly verbose: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function progressTotal(event: ProgressEvent): number | null;
|
|
9
|
+
export declare function firstUnitCount(envelope: SignalEnvelope): number;
|
|
10
|
+
export declare function checkCountLabel({ running, available, verbose }: CheckCountLabelInput): string;
|
|
11
|
+
export declare function withCheckCountFromProgress(subscribe: (cb: ProgressCallback) => void, onCheckCount: (checkCount: number) => void): (cb: ProgressCallback) => void;
|
|
12
|
+
//# sourceMappingURL=fit-runner-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-runner-progress.d.ts","sourceRoot":"","sources":["../../src/cli/fit-runner-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,oBAAoB,GAAG,MAAM,CAK7F;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,EACzC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GACzC,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,CAUhC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function progressTotal(event) {
|
|
2
|
+
return event.type === 'stage-progress' ? event.total : null;
|
|
3
|
+
}
|
|
4
|
+
export function firstUnitCount(envelope) {
|
|
5
|
+
return envelope.verdict.summary.total;
|
|
6
|
+
}
|
|
7
|
+
export function checkCountLabel({ running, available, verbose }) {
|
|
8
|
+
const runningLabel = `${running} running`;
|
|
9
|
+
if (!verbose)
|
|
10
|
+
return runningLabel;
|
|
11
|
+
const filtered = Math.max(available - running, 0);
|
|
12
|
+
return `${runningLabel}, ${available} available, ${filtered} filtered`;
|
|
13
|
+
}
|
|
14
|
+
export function withCheckCountFromProgress(subscribe, onCheckCount) {
|
|
15
|
+
return (cb) => {
|
|
16
|
+
subscribe((event) => {
|
|
17
|
+
const total = progressTotal(event);
|
|
18
|
+
if (total !== null) {
|
|
19
|
+
onCheckCount(total);
|
|
20
|
+
}
|
|
21
|
+
cb(event);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=fit-runner-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-runner-progress.js","sourceRoot":"","sources":["../../src/cli/fit-runner-progress.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,OAAO,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAwB;IACnF,MAAM,YAAY,GAAG,GAAG,OAAO,UAAU,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,YAAY,KAAK,SAAS,eAAe,QAAQ,WAAW,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,SAAyC,EACzC,YAA0C;IAE1C,OAAO,CAAC,EAAE,EAAE,EAAE;QACZ,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,EAAE,CAAC,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-runner.d.ts","sourceRoot":"","sources":["../../src/cli/fit-runner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA4BH,OAAO,EACL,KAAK,UAAU,EAIhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"fit-runner.d.ts","sourceRoot":"","sources":["../../src/cli/fit-runner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA4BH,OAAO,EACL,KAAK,UAAU,EAIhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAgXxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,kBAAkB,CAAC,EAAE,SAAS,GAAG,eAAe,EAChD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAgC5B"}
|
package/dist/cli/fit-runner.js
CHANGED
|
@@ -32,6 +32,7 @@ import { Box, Static, useApp, render } from 'ink';
|
|
|
32
32
|
import React, { useEffect, useState } from 'react';
|
|
33
33
|
import { envelopeToFitRows } from './fit/envelope-view.js';
|
|
34
34
|
import { buildFitnessSessionPayload } from './fit/result-builders.js';
|
|
35
|
+
import { checkCountLabel, firstUnitCount, withCheckCountFromProgress, } from './fit-runner-progress.js';
|
|
35
36
|
import { ResultsTable, WarningsBlock } from './fit-runner-views.js';
|
|
36
37
|
import { ensureChecksLoaded, executeFit, getEnabledCheckCount } from './fit.js';
|
|
37
38
|
// Theme constants used by tool-specific sub-components below. The shared
|
|
@@ -61,15 +62,28 @@ function executeFitWithProgress(args, emit) {
|
|
|
61
62
|
onProgress: (completed, total) => emit({ type: 'stage-progress', stage: 'checks', completed, total }),
|
|
62
63
|
});
|
|
63
64
|
}
|
|
65
|
+
function rememberCheckCount(current, checkCount) {
|
|
66
|
+
if (current.phase !== 'running')
|
|
67
|
+
return current;
|
|
68
|
+
if (current.checkCount === checkCount)
|
|
69
|
+
return current;
|
|
70
|
+
return { ...current, checkCount };
|
|
71
|
+
}
|
|
64
72
|
function FitRunner({ args, setExitCode, onEnvelope, onSession, liveContext, }) {
|
|
65
73
|
const { exit } = useApp();
|
|
66
74
|
const [state, setState] = useState({ phase: 'loading' });
|
|
75
|
+
const rememberProgressTotal = (total) => {
|
|
76
|
+
setState((current) => rememberCheckCount(current, total));
|
|
77
|
+
};
|
|
67
78
|
useEffect(() => {
|
|
68
79
|
let cancelled = false;
|
|
69
80
|
void (async () => {
|
|
70
|
-
// Phase 1: Load checks
|
|
81
|
+
// Phase 1: Load checks so the worker has a populated registry. Do not use
|
|
82
|
+
// the registry count for the header: it is the available enabled-check
|
|
83
|
+
// count, before recipe/config runtime filters such as disabledChecks.
|
|
84
|
+
// The authoritative run count arrives on the first progress event.
|
|
71
85
|
await ensureChecksLoaded(args.cwd);
|
|
72
|
-
const
|
|
86
|
+
const availableCount = getEnabledCheckCount();
|
|
73
87
|
if (cancelled)
|
|
74
88
|
return;
|
|
75
89
|
// Execute OFF the main process (ADR-0028): fork the CLI to `fit-run-worker`,
|
|
@@ -96,7 +110,8 @@ function FitRunner({ args, setExitCode, onEnvelope, onSession, liveContext, }) {
|
|
|
96
110
|
},
|
|
97
111
|
inProcess: (emit) => executeFitWithProgress(args, emit),
|
|
98
112
|
});
|
|
99
|
-
|
|
113
|
+
const subscribe = withCheckCountFromProgress(run.onProgress, rememberProgressTotal);
|
|
114
|
+
setState({ phase: 'running', checkCount: null, availableCount, subscribe });
|
|
100
115
|
let fitResult;
|
|
101
116
|
try {
|
|
102
117
|
fitResult = await run.result;
|
|
@@ -134,7 +149,13 @@ function FitRunner({ args, setExitCode, onEnvelope, onSession, liveContext, }) {
|
|
|
134
149
|
// now (ADR-0011): `renderFitLive` returns this envelope and the tool's
|
|
135
150
|
// `registerLiveView` callback delivers it once the Ink app exits.
|
|
136
151
|
onEnvelope?.(result.envelope);
|
|
137
|
-
setState({
|
|
152
|
+
setState({
|
|
153
|
+
phase: 'done',
|
|
154
|
+
result,
|
|
155
|
+
warnings,
|
|
156
|
+
checkCount: firstUnitCount(result.envelope),
|
|
157
|
+
availableCount,
|
|
158
|
+
});
|
|
138
159
|
setTimeout(() => exit(), 100);
|
|
139
160
|
})();
|
|
140
161
|
return () => {
|
|
@@ -155,6 +176,7 @@ function FitRunner({ args, setExitCode, onEnvelope, onSession, liveContext, }) {
|
|
|
155
176
|
// known. RunHeader's metadata only changes once (when loading→running), and
|
|
156
177
|
// after that it's stable for the rest of the run — perfect Static fit.
|
|
157
178
|
const checkCount = state.phase === 'running' || state.phase === 'done' ? state.checkCount : null;
|
|
179
|
+
const availableCount = state.phase === 'running' || state.phase === 'done' ? state.availableCount : null;
|
|
158
180
|
const staticItems = computeStaticItems(args.quiet === true, checkCount);
|
|
159
181
|
// Presentation settings resolved once in the pre-action hook. The live
|
|
160
182
|
// view runs inside that scope, so it reads the same banner size + version
|
|
@@ -172,7 +194,14 @@ function FitRunner({ args, setExitCode, onEnvelope, onSession, liveContext, }) {
|
|
|
172
194
|
}
|
|
173
195
|
const metadata = [
|
|
174
196
|
{ label: 'Recipe', value: recipe },
|
|
175
|
-
{
|
|
197
|
+
{
|
|
198
|
+
label: 'Checks',
|
|
199
|
+
value: checkCountLabel({
|
|
200
|
+
running: checkCount ?? 0,
|
|
201
|
+
available: availableCount ?? checkCount ?? 0,
|
|
202
|
+
verbose: args.verbose === true,
|
|
203
|
+
}),
|
|
204
|
+
},
|
|
176
205
|
];
|
|
177
206
|
return (_jsx(RunHeader, { tool: FIT_TOOL_TITLE, description: FIT_TOOL_DESCRIPTION, metadata: metadata }, item));
|
|
178
207
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-runner.js","sourceRoot":"","sources":["../../src/cli/fit-runner.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,qBAAqB,GAItB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIhF,yEAAyE;AACzE,uEAAuE;AACvE,mEAAmE;AACnE,oDAAoD;AACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,oBAAoB,GACxB,wEAAwE,CAAC;AAE3E,iFAAiF;AACjF,4EAA4E;AAC5E,yEAAyE;AACzE,MAAM,mBAAmB,GAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;AAC3F,MAAM,mBAAmB,GAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;AAC3F,MAAM,WAAW,GAAmC,GAAG,EAAE;IACvD,+EAA+E;IAC/E,8CAA8C;AAChD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,IAAgB,EAChB,IAAoC;IAEpC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC3E,OAAO,UAAU,CAAC,IAAI,EAAE;QACtB,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAC/B,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACtE,CAAC,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"fit-runner.js","sourceRoot":"","sources":["../../src/cli/fit-runner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,21 @@ export interface FitnessLoadState {
|
|
|
48
48
|
* `ensureChecksLoaded` call. */
|
|
49
49
|
loadWarnings: string[];
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Per-run holder for the shared, lazily-built type-checked TypeScript Program
|
|
53
|
+
* (D2). A single `ts.Program` + bound `TypeChecker` is expensive (~1s / ~0.6 GB
|
|
54
|
+
* on a ~900-file corpus) but type-aware checks need it, so it is built ONCE per
|
|
55
|
+
* run and reused by every type-aware TS check, then released on dispose.
|
|
56
|
+
*
|
|
57
|
+
* `value` is intentionally `unknown`: the build logic lives in
|
|
58
|
+
* `@opensip-cli/checks-typescript` (which owns the `lang-typescript`/`typescript`
|
|
59
|
+
* runtime dep), so the fitness engine and core never name lang-typescript's
|
|
60
|
+
* `TypeCheckedProgram` — keeping the heavy `typescript` dep out of the engine
|
|
61
|
+
* and every non-TS check run. The TS pack casts `value` to its concrete type.
|
|
62
|
+
*/
|
|
63
|
+
export interface SharedTsProgramCell {
|
|
64
|
+
value: unknown;
|
|
65
|
+
}
|
|
51
66
|
/**
|
|
52
67
|
* Per-RunScope fitness state. Constructed by the fitness tool's
|
|
53
68
|
* `contributeScope()` hook and attached to `scope.fitness`.
|
|
@@ -66,6 +81,10 @@ export interface FitnessSubscope {
|
|
|
66
81
|
* cleared on scope dispose via the disposer `contributeScope` returns.
|
|
67
82
|
* Replaces the module singleton on every production path. */
|
|
68
83
|
readonly fileCache: FileCache;
|
|
84
|
+
/** Lazily-built shared type-checked TS Program for this run (D2). Built by
|
|
85
|
+
* checks-typescript's `getSharedTypeCheckedProgram` on the first type-aware
|
|
86
|
+
* check, reused by all, and cleared by the dispose hook. */
|
|
87
|
+
readonly tsProgram: SharedTsProgramCell;
|
|
69
88
|
}
|
|
70
89
|
declare module '@opensip-cli/core' {
|
|
71
90
|
interface ScopeContribution {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-augmentation.d.ts","sourceRoot":"","sources":["../src/scope-augmentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;qDAEiD;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2EAA2E;IAC3E,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;qCACiC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;qEACiE;IACjE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;gDAC4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC;;;kEAG8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scope-augmentation.d.ts","sourceRoot":"","sources":["../src/scope-augmentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;qDAEiD;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2EAA2E;IAC3E,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;qCACiC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;qEACiE;IACjE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;gDAC4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC;;;kEAG8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;iEAE6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,iBAAiB;QACzB;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,eAAe,CAAC;KAC3B;CACF"}
|
|
@@ -35,7 +35,7 @@ export declare const SignalersConfigSchema: z.ZodObject<{
|
|
|
35
35
|
exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
36
|
verbose: z.ZodOptional<z.ZodBoolean>;
|
|
37
37
|
json: z.ZodOptional<z.ZodBoolean>;
|
|
38
|
-
reportTo: z.ZodOptional<z.
|
|
38
|
+
reportTo: z.ZodOptional<z.ZodString>;
|
|
39
39
|
apiKey: z.ZodOptional<z.ZodString>;
|
|
40
40
|
fileTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
41
41
|
ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
package/dist/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AA6BH,OAAO,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAIV,IAAI,EAEL,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AA6BH,OAAO,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAIV,IAAI,EAEL,MAAM,mBAAmB,CAAC;AAwI3B;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAMhD,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE,eAAO,MAAM,WAAW,EAAE,IAkCxB,CAAC"}
|
package/dist/tool.js
CHANGED
|
@@ -168,6 +168,11 @@ const registerFitRecipe = (contribution) => {
|
|
|
168
168
|
*/
|
|
169
169
|
function contributeScope() {
|
|
170
170
|
const fileCache = new FileCache();
|
|
171
|
+
// Lazily populated by checks-typescript's getSharedTypeCheckedProgram; held
|
|
172
|
+
// here so one ts.Program is shared by every type-aware check in the run and
|
|
173
|
+
// released on dispose. `value` is opaque (unknown) — the engine never names
|
|
174
|
+
// lang-typescript's TypeCheckedProgram, keeping the typescript dep out of here.
|
|
175
|
+
const tsProgram = { value: undefined };
|
|
171
176
|
return {
|
|
172
177
|
contribution: {
|
|
173
178
|
fitness: {
|
|
@@ -175,9 +180,13 @@ function contributeScope() {
|
|
|
175
180
|
recipes: createRecipeRegistry(),
|
|
176
181
|
load: createFitnessLoadState(),
|
|
177
182
|
fileCache,
|
|
183
|
+
tsProgram,
|
|
178
184
|
},
|
|
179
185
|
},
|
|
180
|
-
onDispose: () =>
|
|
186
|
+
onDispose: () => {
|
|
187
|
+
fileCache.clear();
|
|
188
|
+
tsProgram.value = undefined;
|
|
189
|
+
},
|
|
181
190
|
};
|
|
182
191
|
}
|
|
183
192
|
// =============================================================================
|
|
@@ -203,8 +212,8 @@ export const fitnessTool = defineTool({
|
|
|
203
212
|
// DECOUPLED `fitnessConfigDeclaration.namespace = 'fitness'` literal, NOT
|
|
204
213
|
// metadata.name, so existing `fitness:` config blocks keep validating. The
|
|
205
214
|
// session `tool` column is already `'fit'` (sessionReplay.tool + the session
|
|
206
|
-
// contributions), so aligning the name REDUCES mismatch. Q6 (
|
|
207
|
-
//
|
|
215
|
+
// contributions), so aligning the name REDUCES mismatch. Q6 (decided): keep
|
|
216
|
+
// the `fitness:` config namespace — no `fit:` alias or migration.
|
|
208
217
|
name: 'fit', // command verb + human key (was 'fitness')
|
|
209
218
|
version: readPackageVersion(import.meta.url),
|
|
210
219
|
description: 'Run fitness checks against a codebase',
|
package/dist/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensip-cli/fitness",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Fitness checks engine for OpenSIP CLI",
|
|
6
6
|
"keywords": [
|
|
@@ -40,23 +40,140 @@
|
|
|
40
40
|
"commands": [
|
|
41
41
|
{
|
|
42
42
|
"name": "fit",
|
|
43
|
-
"description": "Run fitness checks"
|
|
43
|
+
"description": "Run fitness checks",
|
|
44
|
+
"commonFlags": [
|
|
45
|
+
"cwd",
|
|
46
|
+
"json",
|
|
47
|
+
"quiet",
|
|
48
|
+
"verbose",
|
|
49
|
+
"debug",
|
|
50
|
+
"reportTo",
|
|
51
|
+
"apiKey",
|
|
52
|
+
"open"
|
|
53
|
+
],
|
|
54
|
+
"options": [
|
|
55
|
+
{
|
|
56
|
+
"flag": "--recipe",
|
|
57
|
+
"value": "<name>",
|
|
58
|
+
"description": "Use a named recipe (default, quick-smoke, backend, etc.)"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"flag": "--check",
|
|
62
|
+
"value": "<slug>",
|
|
63
|
+
"description": "Run a single check by slug"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"flag": "--tags",
|
|
67
|
+
"value": "<tags>",
|
|
68
|
+
"description": "Filter checks by tags (repeatable or comma-separated)",
|
|
69
|
+
"arrayDefault": []
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"flag": "--list",
|
|
73
|
+
"description": "List available checks",
|
|
74
|
+
"default": false
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"flag": "--recipes",
|
|
78
|
+
"description": "List available recipes",
|
|
79
|
+
"default": false
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"flag": "--exclude",
|
|
83
|
+
"value": "<slug>",
|
|
84
|
+
"description": "Exclude check (repeatable)",
|
|
85
|
+
"arrayDefault": []
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"flag": "--config",
|
|
89
|
+
"value": "<path>",
|
|
90
|
+
"description": "Path to opensip-cli.config.yml (overrides package.json pointer and default)"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"flag": "--show",
|
|
94
|
+
"value": "<session>",
|
|
95
|
+
"description": "Replay a stored fit session by id, or latest for the latest fit session"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"flag": "--gate-save",
|
|
99
|
+
"description": "Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)",
|
|
100
|
+
"default": false
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"flag": "--gate-compare",
|
|
104
|
+
"description": "Architecture-gate: compare current findings against the saved baseline; exit 1 on regression",
|
|
105
|
+
"default": false
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"scope": "project",
|
|
109
|
+
"output": "raw-stream",
|
|
110
|
+
"rawStreamReason": "runtime-render-dispatch"
|
|
44
111
|
},
|
|
45
112
|
{
|
|
46
113
|
"name": "list",
|
|
47
|
-
"description": "List available fitness checks"
|
|
114
|
+
"description": "List available fitness checks",
|
|
115
|
+
"parent": "fit",
|
|
116
|
+
"commonFlags": [
|
|
117
|
+
"cwd",
|
|
118
|
+
"json"
|
|
119
|
+
],
|
|
120
|
+
"scope": "project",
|
|
121
|
+
"output": "command-result"
|
|
48
122
|
},
|
|
49
123
|
{
|
|
50
124
|
"name": "recipes",
|
|
51
|
-
"description": "List available fitness recipes"
|
|
125
|
+
"description": "List available fitness recipes",
|
|
126
|
+
"parent": "fit",
|
|
127
|
+
"commonFlags": [
|
|
128
|
+
"cwd",
|
|
129
|
+
"json"
|
|
130
|
+
],
|
|
131
|
+
"scope": "project",
|
|
132
|
+
"output": "command-result"
|
|
52
133
|
},
|
|
53
134
|
{
|
|
54
135
|
"name": "export",
|
|
55
|
-
"description": "Export fit artifacts
|
|
136
|
+
"description": "Export fit artifacts: --format baseline (the SARIF-shaped gate baseline)",
|
|
137
|
+
"parent": "fit",
|
|
138
|
+
"commonFlags": [
|
|
139
|
+
"cwd",
|
|
140
|
+
"json"
|
|
141
|
+
],
|
|
142
|
+
"options": [
|
|
143
|
+
{
|
|
144
|
+
"flag": "--format",
|
|
145
|
+
"value": "<fmt>",
|
|
146
|
+
"description": "Export artifact: baseline (the SARIF-shaped gate baseline)",
|
|
147
|
+
"required": true,
|
|
148
|
+
"choices": [
|
|
149
|
+
"baseline"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"flag": "--out",
|
|
154
|
+
"value": "<path>",
|
|
155
|
+
"description": "Output file path for the SARIF baseline",
|
|
156
|
+
"required": true
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"scope": "project",
|
|
160
|
+
"output": "raw-stream",
|
|
161
|
+
"rawStreamReason": "file-export"
|
|
56
162
|
},
|
|
57
163
|
{
|
|
58
164
|
"name": "fit-run-worker",
|
|
59
|
-
"description": "[internal] Run fit headless and stream progress + result over IPC (forked by the live view)"
|
|
165
|
+
"description": "[internal] Run fit headless and stream progress + result over IPC (forked by the live view)",
|
|
166
|
+
"visibility": "internal",
|
|
167
|
+
"commonFlags": [],
|
|
168
|
+
"args": [
|
|
169
|
+
{
|
|
170
|
+
"name": "specPath",
|
|
171
|
+
"description": "Path to a JSON FitOptions spec file"
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"scope": "project",
|
|
175
|
+
"output": "raw-stream",
|
|
176
|
+
"rawStreamReason": "worker-ipc"
|
|
60
177
|
}
|
|
61
178
|
],
|
|
62
179
|
"capabilities": [
|
|
@@ -102,7 +219,14 @@
|
|
|
102
219
|
]
|
|
103
220
|
}
|
|
104
221
|
}
|
|
105
|
-
]
|
|
222
|
+
],
|
|
223
|
+
"pluginLayout": {
|
|
224
|
+
"domain": "fit",
|
|
225
|
+
"userSubdirs": [
|
|
226
|
+
"checks",
|
|
227
|
+
"recipes"
|
|
228
|
+
]
|
|
229
|
+
}
|
|
106
230
|
},
|
|
107
231
|
"dependencies": {
|
|
108
232
|
"@opentelemetry/api": "^1.9.1",
|
|
@@ -114,19 +238,19 @@
|
|
|
114
238
|
"react": "^19.2.7",
|
|
115
239
|
"typescript": "~6.0.3",
|
|
116
240
|
"zod": "^4.4.3",
|
|
117
|
-
"@opensip-cli/
|
|
118
|
-
"@opensip-cli/
|
|
119
|
-
"@opensip-cli/
|
|
120
|
-
"@opensip-cli/datastore": "0.1.
|
|
121
|
-
"@opensip-cli/
|
|
122
|
-
"@opensip-cli/
|
|
123
|
-
"@opensip-cli/targeting": "0.1.
|
|
241
|
+
"@opensip-cli/cli-ui": "0.1.9",
|
|
242
|
+
"@opensip-cli/config": "0.1.9",
|
|
243
|
+
"@opensip-cli/core": "0.1.9",
|
|
244
|
+
"@opensip-cli/datastore": "0.1.9",
|
|
245
|
+
"@opensip-cli/session-store": "0.1.9",
|
|
246
|
+
"@opensip-cli/contracts": "0.1.9",
|
|
247
|
+
"@opensip-cli/targeting": "0.1.9"
|
|
124
248
|
},
|
|
125
249
|
"devDependencies": {
|
|
126
250
|
"@types/node": "^24.13.2",
|
|
127
251
|
"@types/react": "^19.2.17",
|
|
128
252
|
"vitest": "^4.1.8",
|
|
129
|
-
"@opensip-cli/lang-typescript": "0.1.
|
|
253
|
+
"@opensip-cli/lang-typescript": "0.1.9"
|
|
130
254
|
},
|
|
131
255
|
"scripts": {
|
|
132
256
|
"build": "tsc",
|