@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 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.7/docs/public/70-reference/02-package-catalog.md
27
- - 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.7/packages/fitness/engine
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fit-runner-progress.test.d.ts.map
@@ -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;AAS3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAwUxD,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"}
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"}
@@ -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 to get count for header
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 checkCount = getEnabledCheckCount();
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
- setState({ phase: 'running', checkCount, subscribe: run.onProgress });
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({ phase: 'done', result, warnings, checkCount });
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
- { label: 'Checks', value: String(checkCount) },
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":"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"}
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;CAC/B;AAED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,iBAAiB;QACzB;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,eAAe,CAAC;KAC3B;CACF"}
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.ZodURL>;
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>>;
@@ -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;AA+H3B;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAMhD,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE,eAAO,MAAM,WAAW,EAAE,IAkCxB,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: () => fileCache.clear(),
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 (flipping the
207
- // namespace literal to `fit:`) stays open — no `fit:` config alias is added.
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,6EAA6E;AAC7E,oDAAoD;AACpD,OAAO,yBAAyB,CAAC;AAajC,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,SAAS,gBAAgB,CAAC,GAAmB;IAC3C,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;QAClE,MAAM,OAAO,GAAG,IAAkB,CAAC;QACnC,2EAA2E;QAC3E,4EAA4E;QAC5E,8EAA8E;QAC9E,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE;YAC3D,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC,CAAC;QACH,wEAAwE;QACxE,wEAAwE;QACxE,gEAAgE;QAChE,wEAAwE;QACxE,0CAA0C;QAC1C,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACtC,4EAA4E;YAC5E,iEAAiE;YACjE,MAAM,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC5C,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QACD,2EAA2E;QAC3E,oEAAoE;QACpE,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,eAAe,GAAoD;IACvE,mBAAmB,CAAC,gBAAgB,CAAC;IACrC,4EAA4E;IAC5E,yEAAyE;IACzE,kDAAkD;IAClD,yBAAyB;IACzB,4BAA4B;IAC5B,+EAA+E;IAC/E,+BAA+B;IAC/B,oBAAoB;IACpB,uBAAuB;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAwB,CAAC,YAAY,EAAE,EAAE;IAC7D,oBAAoB,EAAE,CAAC,QAAQ,CAAC,YAAqB,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAwB,CAAC,YAAY,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,YAA6B,CAAC;IAC7C,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO;IACjE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,SAAS,eAAe;IACtB,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,OAAO;QACL,YAAY,EAAE;YACZ,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB,EAAE;gBAC7B,OAAO,EAAE,oBAAoB,EAAE;gBAC/B,IAAI,EAAE,sBAAsB,EAAE;gBAC9B,SAAS;aACV;SACF;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAEhD,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AAExE,MAAM,CAAC,MAAM,WAAW,GAAS,UAAU,CAAC;IAC1C,QAAQ,EAAE;QACR,EAAE,EAAE,iBAAiB,EAAE,yDAAyD;QAChF,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,IAAI,EAAE,KAAK,EAAE,2CAA2C;QACxD,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,WAAW,EAAE,uCAAuC;KACrD;IACD,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,eAAe;IAC7B,eAAe,EAAE;QACf,sBAAsB,EAAE,wBAAwB;QAChD,eAAe;QACf,iBAAiB,EAAE,wBAAwB;QAC3C,aAAa,EAAE;YACb,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,oBAAoB;SACpC;QACD,MAAM,EAAE,wBAAwB;QAChC,oBAAoB,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE;QACvF,mBAAmB,EAAE,0BAA0B;QAC/C,gBAAgB,EAAE,mBAAmB;QACrC,gBAAgB,EAAE,mBAAmB;QACrC,mBAAmB,EAAE,sBAAsB;QAC3C,UAAU,EAAE,KAAK,IAAmB,EAAE;YACpC,0EAA0E;QAC5E,CAAC;KACF;CACF,CAAC,CAAC"}
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.7",
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 (--format baseline)"
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/contracts": "0.1.7",
118
- "@opensip-cli/core": "0.1.7",
119
- "@opensip-cli/cli-ui": "0.1.7",
120
- "@opensip-cli/datastore": "0.1.7",
121
- "@opensip-cli/config": "0.1.7",
122
- "@opensip-cli/session-store": "0.1.7",
123
- "@opensip-cli/targeting": "0.1.7"
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.7"
253
+ "@opensip-cli/lang-typescript": "0.1.9"
130
254
  },
131
255
  "scripts": {
132
256
  "build": "tsc",