@opensip-cli/fitness 0.1.5 → 0.1.7

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.
Files changed (119) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/fit-execute-opts.test.js +2 -2
  3. package/dist/__tests__/fit-execute-opts.test.js.map +1 -1
  4. package/dist/__tests__/public-api.test.js +2 -1
  5. package/dist/__tests__/public-api.test.js.map +1 -1
  6. package/dist/__tests__/tool.test.js +24 -13
  7. package/dist/__tests__/tool.test.js.map +1 -1
  8. package/dist/cli/__tests__/fit-gate-mode.test.js +1 -1
  9. package/dist/cli/__tests__/fit-gate-mode.test.js.map +1 -1
  10. package/dist/cli/__tests__/fit-modes-live.test.d.ts +1 -1
  11. package/dist/cli/__tests__/fit-modes-live.test.js +13 -6
  12. package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -1
  13. package/dist/cli/__tests__/report-data.test.js +3 -3
  14. package/dist/cli/__tests__/report-data.test.js.map +1 -1
  15. package/dist/cli/fit/__tests__/display-fold.test.js +2 -2
  16. package/dist/cli/fit/__tests__/display-fold.test.js.map +1 -1
  17. package/dist/cli/fit/__tests__/fit-export-command-spec.test.d.ts +9 -0
  18. package/dist/cli/fit/__tests__/fit-export-command-spec.test.d.ts.map +1 -0
  19. package/dist/cli/fit/__tests__/fit-export-command-spec.test.js +75 -0
  20. package/dist/cli/fit/__tests__/fit-export-command-spec.test.js.map +1 -0
  21. package/dist/cli/fit/check-loader.d.ts +1 -1
  22. package/dist/cli/fit/check-loader.js +1 -1
  23. package/dist/cli/fit/config-loader.d.ts +1 -1
  24. package/dist/cli/fit/config-loader.js +1 -1
  25. package/dist/cli/fit/envelope-view.d.ts.map +1 -1
  26. package/dist/cli/fit/envelope-view.js +2 -14
  27. package/dist/cli/fit/envelope-view.js.map +1 -1
  28. package/dist/cli/fit/fit-aux-command-specs.d.ts +27 -17
  29. package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -1
  30. package/dist/cli/fit/fit-aux-command-specs.js +91 -53
  31. package/dist/cli/fit/fit-aux-command-specs.js.map +1 -1
  32. package/dist/cli/fit/recipe-selector.test.js +2 -2
  33. package/dist/cli/fit/recipe-selector.test.js.map +1 -1
  34. package/dist/cli/fit/result-builders.d.ts +29 -19
  35. package/dist/cli/fit/result-builders.d.ts.map +1 -1
  36. package/dist/cli/fit/result-builders.js +29 -24
  37. package/dist/cli/fit/result-builders.js.map +1 -1
  38. package/dist/cli/fit-modes.d.ts.map +1 -1
  39. package/dist/cli/fit-modes.js +7 -4
  40. package/dist/cli/fit-modes.js.map +1 -1
  41. package/dist/cli/fit-runner-views.d.ts +1 -1
  42. package/dist/cli/fit-runner-views.js +1 -1
  43. package/dist/cli/fit-runner.d.ts.map +1 -1
  44. package/dist/cli/fit-runner.js +18 -12
  45. package/dist/cli/fit-runner.js.map +1 -1
  46. package/dist/cli/fit-worker.d.ts.map +1 -1
  47. package/dist/cli/fit-worker.js +1 -0
  48. package/dist/cli/fit-worker.js.map +1 -1
  49. package/dist/cli/fit.d.ts +5 -3
  50. package/dist/cli/fit.d.ts.map +1 -1
  51. package/dist/cli/fit.js +6 -4
  52. package/dist/cli/fit.js.map +1 -1
  53. package/dist/framework/__tests__/concurrent-file-cache.test.d.ts +24 -0
  54. package/dist/framework/__tests__/concurrent-file-cache.test.d.ts.map +1 -0
  55. package/dist/framework/__tests__/concurrent-file-cache.test.js +151 -0
  56. package/dist/framework/__tests__/concurrent-file-cache.test.js.map +1 -0
  57. package/dist/framework/__tests__/define-check.test.js +38 -1
  58. package/dist/framework/__tests__/define-check.test.js.map +1 -1
  59. package/dist/framework/__tests__/define-regex-list-check.test.js +5 -1
  60. package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -1
  61. package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js +3 -1
  62. package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js.map +1 -1
  63. package/dist/framework/__tests__/execution-context.test.js +32 -9
  64. package/dist/framework/__tests__/execution-context.test.js.map +1 -1
  65. package/dist/framework/__tests__/file-accessor.test.js +7 -4
  66. package/dist/framework/__tests__/file-accessor.test.js.map +1 -1
  67. package/dist/framework/__tests__/file-cache-autoclear.test.d.ts +25 -0
  68. package/dist/framework/__tests__/file-cache-autoclear.test.d.ts.map +1 -0
  69. package/dist/framework/__tests__/file-cache-autoclear.test.js +116 -0
  70. package/dist/framework/__tests__/file-cache-autoclear.test.js.map +1 -0
  71. package/dist/framework/__tests__/register-helpers.test.js +2 -2
  72. package/dist/framework/__tests__/register-helpers.test.js.map +1 -1
  73. package/dist/framework/__tests__/scope-registry.test.js +2 -2
  74. package/dist/framework/__tests__/scope-registry.test.js.map +1 -1
  75. package/dist/framework/define-check.d.ts.map +1 -1
  76. package/dist/framework/define-check.js +9 -0
  77. package/dist/framework/define-check.js.map +1 -1
  78. package/dist/framework/execution-context.d.ts +9 -2
  79. package/dist/framework/execution-context.d.ts.map +1 -1
  80. package/dist/framework/execution-context.js +21 -7
  81. package/dist/framework/execution-context.js.map +1 -1
  82. package/dist/framework/file-accessor.d.ts +12 -0
  83. package/dist/framework/file-accessor.d.ts.map +1 -1
  84. package/dist/framework/file-accessor.js +8 -3
  85. package/dist/framework/file-accessor.js.map +1 -1
  86. package/dist/framework/file-cache.d.ts +11 -1
  87. package/dist/framework/file-cache.d.ts.map +1 -1
  88. package/dist/framework/file-cache.js +11 -1
  89. package/dist/framework/file-cache.js.map +1 -1
  90. package/dist/framework/ignore-processing.d.ts.map +1 -1
  91. package/dist/framework/ignore-processing.js +26 -11
  92. package/dist/framework/ignore-processing.js.map +1 -1
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +4 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/persistence/session-replay.d.ts +8 -3
  98. package/dist/persistence/session-replay.d.ts.map +1 -1
  99. package/dist/persistence/session-replay.js +7 -8
  100. package/dist/persistence/session-replay.js.map +1 -1
  101. package/dist/persistence/session-replay.test.js +9 -7
  102. package/dist/persistence/session-replay.test.js.map +1 -1
  103. package/dist/plugins/__tests__/loader.test.js +2 -2
  104. package/dist/plugins/__tests__/loader.test.js.map +1 -1
  105. package/dist/recipes/__tests__/run-one-check.test.js +16 -1
  106. package/dist/recipes/__tests__/run-one-check.test.js.map +1 -1
  107. package/dist/recipes/__tests__/service.test.js +46 -3
  108. package/dist/recipes/__tests__/service.test.js.map +1 -1
  109. package/dist/recipes/service.d.ts +8 -1
  110. package/dist/recipes/service.d.ts.map +1 -1
  111. package/dist/recipes/service.js +33 -4
  112. package/dist/recipes/service.js.map +1 -1
  113. package/dist/scope-augmentation.d.ts +7 -1
  114. package/dist/scope-augmentation.d.ts.map +1 -1
  115. package/dist/tool.d.ts +4 -3
  116. package/dist/tool.d.ts.map +1 -1
  117. package/dist/tool.js +58 -85
  118. package/dist/tool.js.map +1 -1
  119. package/package.json +14 -14
@@ -5,9 +5,9 @@
5
5
  * including file access, pattern matching, and abort support.
6
6
  */
7
7
  import { SystemError } from '@opensip-cli/core';
8
- import { type FileCache } from './file-cache.js';
9
8
  import { PathMatcher } from './path-matcher.js';
10
9
  import type { ResolvedScope } from './check-config.js';
10
+ import type { FileCache } from './file-cache.js';
11
11
  /**
12
12
  * Check identifier (UUID format).
13
13
  */
@@ -78,7 +78,14 @@ export interface RunOptions {
78
78
  * `tests/fixtures/`, etc., contrary to user intent.
79
79
  */
80
80
  readonly globalExcludes?: readonly string[];
81
- /** Per-service FileCache instance (for SaaS isolation; falls back to global). */
81
+ /**
82
+ * Per-run FileCache instance. On the production path the recipe service passes
83
+ * the resolved `scope.fitness.fileCache` here. Optional only for the no-scope
84
+ * direct `run()` / unit-test path; when omitted, `createExecutionContext`
85
+ * resolves `currentScope()?.fitness?.fileCache` and throws
86
+ * `SYSTEM.FITNESS.NO_FILE_CACHE` if neither is present on a file-reading path
87
+ * (no module-singleton fallback — parallel-tool-invocations Phase 1).
88
+ */
82
89
  readonly fileCache?: FileCache;
83
90
  }
84
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/framework/execution-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/framework/execution-context.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,9 @@
8
8
  * including file access, pattern matching, and abort support.
9
9
  */
10
10
  import * as fs from 'node:fs/promises';
11
- import { SystemError, currentScope, logger as defaultLogger } from '@opensip-cli/core';
11
+ import { SystemError, currentLogger, currentScope } from '@opensip-cli/core';
12
12
  import { applyGlobalExcludes } from '../targets/index.js';
13
13
  import { DEFAULT_EXCLUSION_PATTERNS } from './constants.js';
14
- import { fileCache as globalFileCache } from './file-cache.js';
15
14
  import { PathMatcher } from './path-matcher.js';
16
15
  import { extractSnippet } from './result-builder.js';
17
16
  /**
@@ -38,9 +37,12 @@ export class CheckAbortedError extends SystemError {
38
37
  * through the substrate `applyGlobalExcludes` (ADR-0037) — the SAME
39
38
  * single implementation the scope-resolution path uses, so globalExcludes
40
39
  * is single-sourced on both paths (no separate Minimatch path in fitness).
40
+ *
41
+ * `fc` is the per-run cache resolved by {@link createExecutionContext}
42
+ * (`options.fileCache ?? currentScope().fitness.fileCache`) — REQUIRED, no
43
+ * module-singleton fallback (parallel-tool-invocations Phase 1).
41
44
  */
42
- function createMatchFilesFunction(cwd, matcher, targetFiles, globalExcludes, fileCacheInstance) {
43
- const fc = fileCacheInstance ?? globalFileCache;
45
+ function createMatchFilesFunction(cwd, matcher, fc, targetFiles, globalExcludes) {
44
46
  return async (patterns, options) => {
45
47
  if (patterns && patterns.length > 0) {
46
48
  const customMatcher = PathMatcher.create({
@@ -71,7 +73,19 @@ function createMatchFilesFunction(cwd, matcher, targetFiles, globalExcludes, fil
71
73
  * Creates the execution context for a check.
72
74
  */
73
75
  export function createExecutionContext(config, cwd, matcher, options) {
74
- const fc = options?.fileCache ?? globalFileCache;
76
+ // Resolve the per-run cache: the explicit option (recipe service passes
77
+ // `execOpts.fileCache` on the production path) or the entered scope's
78
+ // canonical `scope.fitness.fileCache`. No module-singleton fallback — a
79
+ // file-reading production path MUST run inside a scope carrying the fitness
80
+ // subscope (parallel-tool-invocations Phase 1). The no-scope direct `run()`
81
+ // path may pass `options.fileCache` explicitly; absent both, file reads throw.
82
+ const fc = options?.fileCache ?? currentScope()?.fitness?.fileCache;
83
+ if (!fc) {
84
+ throw new SystemError(`No per-run FileCache available for check '${config.slug}'. A file-reading ` +
85
+ `check must run inside a RunScope carrying scope.fitness.fileCache (the CLI ` +
86
+ `pre-action-hook installs it via the fitness tool's contributeScope), or be ` +
87
+ `passed an explicit options.fileCache.`, { code: 'SYSTEM.FITNESS.NO_FILE_CACHE' });
88
+ }
75
89
  return {
76
90
  cwd,
77
91
  checkId: config.id,
@@ -108,7 +122,7 @@ export function createExecutionContext(config, cwd, matcher, options) {
108
122
  fileExists(filePath) {
109
123
  return fc.exists(filePath);
110
124
  },
111
- matchFiles: createMatchFilesFunction(cwd, matcher, options?.targetFiles, options?.globalExcludes, fc),
125
+ matchFiles: createMatchFilesFunction(cwd, matcher, fc, options?.targetFiles, options?.globalExcludes),
112
126
  getMatcher() {
113
127
  return matcher;
114
128
  },
@@ -122,7 +136,7 @@ export function createExecutionContext(config, cwd, matcher, options) {
122
136
  // that exercise an ExecutionContext directly). Audit-round-2
123
137
  // Finding D: this was previously `console.log` which bypassed
124
138
  // the structured channel and could not be suppressed.
125
- const log = currentScope()?.logger ?? defaultLogger;
139
+ const log = currentLogger();
126
140
  log.info({
127
141
  evt: 'fitness.check.verbose',
128
142
  module: 'fitness:framework',
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/framework/execution-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/framework/execution-context.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * analyzeAll mode checks that need to correlate across files.
6
6
  */
7
7
  import type { FileAccessor } from './check-config.js';
8
+ import type { FileCache } from './file-cache.js';
8
9
  /** Options for creating a FileAccessor instance. */
9
10
  export interface FileAccessorOptions {
10
11
  readonly cacheCapacity?: number;
@@ -14,6 +15,17 @@ export interface FileAccessorOptions {
14
15
  * BaseCheckConfig.contentFilter for the canonical doc.
15
16
  */
16
17
  readonly contentFilter?: 'raw' | 'strip-strings' | 'strip-strings-and-comments';
18
+ /**
19
+ * Per-run scope cache (`scope.fitness.fileCache`). When present, `read()`
20
+ * resolves prewarmed content from it before hitting disk — closing the
21
+ * analyzeAll global-cache miss (parallel-tool-invocations Phase 1). Optional:
22
+ * the no-scope single-check direct path and isolated unit tests legitimately
23
+ * have no scope cache and fall through to a disk read. The production
24
+ * guarantee that the analyzeAll call site passes the scope cache is enforced
25
+ * at the `createExecutionContext` resolve-or-throw boundary + a call-site test,
26
+ * not by a required parameter.
27
+ */
28
+ readonly fileCache?: FileCache;
17
29
  }
18
30
  /** Create a FileAccessor for lazy-loading files with LRU caching. */
19
31
  export declare function createFileAccessor(filePaths: readonly string[], options?: FileAccessorOptions): FileAccessor;
@@ -1 +1 @@
1
- {"version":3,"file":"file-accessor.d.ts","sourceRoot":"","sources":["../../src/framework/file-accessor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkDtD,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,4BAA4B,CAAC;CACjF;AA0FD,qEAAqE;AAErE,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAEd"}
1
+ {"version":3,"file":"file-accessor.d.ts","sourceRoot":"","sources":["../../src/framework/file-accessor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkDjD,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,4BAA4B,CAAC;IAChF;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAgGD,qEAAqE;AAErE,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAEd"}
@@ -6,7 +6,6 @@
6
6
  */
7
7
  import * as fs from 'node:fs/promises';
8
8
  import { ValidationError, applyContentFilter } from '@opensip-cli/core';
9
- import { fileCache } from './file-cache.js';
10
9
  // =============================================================================
11
10
  // LRU CACHE
12
11
  // =============================================================================
@@ -53,12 +52,15 @@ class FileAccessorImpl {
53
52
  pathSet;
54
53
  signal;
55
54
  contentFilterMode;
55
+ /** Per-run scope cache; undefined on the no-scope direct path (→ disk read). */
56
+ fileCache;
56
57
  constructor(filePaths, options = {}) {
57
58
  this.paths = filePaths;
58
59
  this.pathSet = new Set(filePaths);
59
60
  this.cache = new LRUCache(options.cacheCapacity ?? DEFAULT_CACHE_CAPACITY);
60
61
  this.signal = options.signal;
61
62
  this.contentFilterMode = options.contentFilter;
63
+ this.fileCache = options.fileCache;
62
64
  }
63
65
  async read(filePath) {
64
66
  // in-memory: single-threaded Node.js access pattern
@@ -73,8 +75,11 @@ class FileAccessorImpl {
73
75
  if (cached !== undefined) {
74
76
  return cached;
75
77
  }
76
- // Try global file cache first (populated by prewarm or previous checks)
77
- let content = fileCache.getCached(filePath);
78
+ // Try the per-run scope cache first (populated by prewarm or previous
79
+ // checks). On the no-scope direct path no cache is injected, so we fall
80
+ // straight through to the disk read below (parallel-tool-invocations Phase 1
81
+ // — the module-singleton read is gone).
82
+ let content = this.fileCache?.getCached(filePath);
78
83
  if (content === undefined) {
79
84
  const fileStats = await fs.stat(filePath);
80
85
  if (fileStats.size > 10_000_000) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-accessor.js","sourceRoot":"","sources":["../../src/framework/file-accessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-accessor.js","sourceRoot":"","sources":["../../src/framework/file-accessor.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,17 @@ export declare class FileCache {
59
59
  };
60
60
  }
61
61
  /**
62
- * Shared file cache instance.
62
+ * TEST-ONLY shared file cache instance.
63
+ *
64
+ * Production resolves the per-run cache from `currentScope()?.fitness?.fileCache`
65
+ * (created once per run by the fitness tool's `contributeScope()`); after
66
+ * parallel-tool-invocations Phase 1, ZERO production code reads this singleton.
67
+ * It is retained solely for isolated unit tests that exercise the cache without
68
+ * a scope (they seed/clear it directly, or pass it explicitly as
69
+ * `options.fileCache`). New production imports are forbidden by the
70
+ * `no-module-level-run-state` dogfood check (Phase 3). Note that
71
+ * `no-module-singleton.mjs` still allowlists this symbol by file
72
+ * (`EXEMPT_BY_FILE`).
63
73
  */
64
74
  export declare const fileCache: FileCache;
65
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"file-cache.d.ts","sourceRoot":"","sources":["../../src/framework/file-cache.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAQH;;GAEG;AACH,UAAU,YAAY;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yBAAyB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAYD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAA8C;IAErE;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAiE9E;;;OAGG;IACH,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5C;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;;OAGG;IACH,KAAK,IAAI,SAAS,MAAM,EAAE;IAI1B;;OAEG;IACH,qFAAqF;IACrF,OAAO,CAAC,iBAAiB;IAkBzB,IAAI,KAAK,IAAI;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,CAMA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,wBAAwB,iFAO3B,CAAC"}
1
+ {"version":3,"file":"file-cache.d.ts","sourceRoot":"","sources":["../../src/framework/file-cache.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAQH;;GAEG;AACH,UAAU,YAAY;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yBAAyB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAYD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAA8C;IAErE;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAiE9E;;;OAGG;IACH,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5C;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;;OAGG;IACH,KAAK,IAAI,SAAS,MAAM,EAAE;IAI1B;;OAEG;IACH,qFAAqF;IACrF,OAAO,CAAC,iBAAiB;IAkBzB,IAAI,KAAK,IAAI;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,CAMA;CACF;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,WAAkB,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,wBAAwB,iFAO3B,CAAC"}
@@ -182,7 +182,17 @@ export class FileCache {
182
182
  }
183
183
  }
184
184
  /**
185
- * Shared file cache instance.
185
+ * TEST-ONLY shared file cache instance.
186
+ *
187
+ * Production resolves the per-run cache from `currentScope()?.fitness?.fileCache`
188
+ * (created once per run by the fitness tool's `contributeScope()`); after
189
+ * parallel-tool-invocations Phase 1, ZERO production code reads this singleton.
190
+ * It is retained solely for isolated unit tests that exercise the cache without
191
+ * a scope (they seed/clear it directly, or pass it explicitly as
192
+ * `options.fileCache`). New production imports are forbidden by the
193
+ * `no-module-level-run-state` dogfood check (Phase 3). Note that
194
+ * `no-module-singleton.mjs` still allowlists this symbol by file
195
+ * (`EXEMPT_BY_FILE`).
186
196
  */
187
197
  export const fileCache = new FileCache();
188
198
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"file-cache.js","sourceRoot":"","sources":["../../src/framework/file-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-cache.js","sourceRoot":"","sources":["../../src/framework/file-cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-processing.d.ts","sourceRoot":"","sources":["../../src/framework/ignore-processing.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC;IACT,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,cAAc,EAAE,CAAC;CACrC,CAAC,CAkCD;AA+GD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,EAAE,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,WAAW,CAwBb"}
1
+ {"version":3,"file":"ignore-processing.d.ts","sourceRoot":"","sources":["../../src/framework/ignore-processing.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAkBhD;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC;IACT,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,cAAc,EAAE,CAAC;CACrC,CAAC,CAuCD;AAkHD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,EAAE,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,WAAW,CAwBb"}
@@ -10,11 +10,23 @@
10
10
  * anti-recursion: a finding pointing at a directive line is never suppressed)
11
11
  * lives once in `@opensip-cli/core`.
12
12
  */
13
- import { filterSignalsBySuppressions, logger } from '@opensip-cli/core';
13
+ import { readFile as readFileFromDisk } from 'node:fs/promises';
14
+ import { currentScope, filterSignalsBySuppressions, logger } from '@opensip-cli/core';
14
15
  import { countErrors, countWarnings } from '../types/severity.js';
15
16
  import { extractGroup, isWeakReason, parseDirectiveLine } from './directive-inventory.js';
16
17
  import { FITNESS_KEYWORDS } from './directive-parsing.js';
17
- import { fileCache } from './file-cache.js';
18
+ /**
19
+ * Read file content for directive collection from the per-run scope cache when
20
+ * present (`scope.fitness.fileCache`), else directly from disk. The module
21
+ * singleton is no longer read here (parallel-tool-invocations Phase 1) — the
22
+ * no-scope direct single-check path legitimately has no scope cache and falls
23
+ * through to a disk read, preserving prior single-check behaviour.
24
+ */
25
+ async function readViaCacheOrDisk(fc, filePath) {
26
+ if (fc)
27
+ return fc.get(filePath);
28
+ return readFileFromDisk(filePath, 'utf8');
29
+ }
18
30
  // =============================================================================
19
31
  // SIGNAL FILTERING
20
32
  // =============================================================================
@@ -32,10 +44,13 @@ import { fileCache } from './file-cache.js';
32
44
  * `DirectiveEntry` audit collection expects.
33
45
  */
34
46
  export async function filterSignalsByDirectives(signals, checkId, initialIgnoredCount) {
47
+ // Resolve the per-run cache once; runs inside the run's scope on the
48
+ // production path. The same instance is threaded into directive re-reads below.
49
+ const fc = currentScope()?.fitness?.fileCache;
35
50
  const { kept, suppressed } = await filterSignalsBySuppressions({
36
51
  signals,
37
52
  keywords: FITNESS_KEYWORDS,
38
- readFile: (filePath) => fileCache.get(filePath),
53
+ readFile: (filePath) => readViaCacheOrDisk(fc, filePath),
39
54
  ruleIdOf: () => checkId,
40
55
  });
41
56
  const appliedFileIgnores = new Set();
@@ -53,7 +68,7 @@ export async function filterSignalsByDirectives(signals, checkId, initialIgnored
53
68
  lineSet.add(match.line);
54
69
  }
55
70
  }
56
- const appliedDirectives = await collectAppliedDirectives(checkId, appliedFileIgnores, appliedLineIgnores);
71
+ const appliedDirectives = await collectAppliedDirectives(checkId, appliedFileIgnores, appliedLineIgnores, fc);
57
72
  return {
58
73
  filteredSignals: [...kept],
59
74
  ignoredCount: initialIgnoredCount + suppressed.length,
@@ -74,10 +89,10 @@ function toDirectiveEntry(filePath, lineNumber, parsed) {
74
89
  weakReason: isWeakReason(parsed.reason),
75
90
  };
76
91
  }
77
- async function collectFileIgnoreDirectives(checkId, appliedFileIgnores) {
92
+ async function collectFileIgnoreDirectives(checkId, appliedFileIgnores, fc) {
78
93
  const results = await Promise.all([...appliedFileIgnores].map(async (filePath) => {
79
94
  try {
80
- const content = await fileCache.get(filePath);
95
+ const content = await readViaCacheOrDisk(fc, filePath);
81
96
  const lines = content.split('\n');
82
97
  for (let i = 0; i < Math.min(lines.length, 50); i++) {
83
98
  const parsed = parseDirectiveLine(lines[i] ?? '');
@@ -97,11 +112,11 @@ async function collectFileIgnoreDirectives(checkId, appliedFileIgnores) {
97
112
  }));
98
113
  return results.filter((d) => d !== null);
99
114
  }
100
- async function collectLineIgnoreDirectives(checkId, appliedLineIgnores) {
115
+ async function collectLineIgnoreDirectives(checkId, appliedLineIgnores, fc) {
101
116
  const results = await Promise.all([...appliedLineIgnores.entries()].map(async ([filePath, suppressedLines]) => {
102
117
  const found = [];
103
118
  try {
104
- const content = await fileCache.get(filePath);
119
+ const content = await readViaCacheOrDisk(fc, filePath);
105
120
  const lines = content.split('\n');
106
121
  for (let i = 0; i < lines.length; i++) {
107
122
  const parsed = parseDirectiveLine(lines[i] ?? '');
@@ -134,10 +149,10 @@ async function collectLineIgnoreDirectives(checkId, appliedLineIgnores) {
134
149
  }
135
150
  return directives;
136
151
  }
137
- async function collectAppliedDirectives(checkId, appliedFileIgnores, appliedLineIgnores) {
152
+ async function collectAppliedDirectives(checkId, appliedFileIgnores, appliedLineIgnores, fc) {
138
153
  const [fileDirectives, lineDirectives] = await Promise.all([
139
- collectFileIgnoreDirectives(checkId, appliedFileIgnores),
140
- collectLineIgnoreDirectives(checkId, appliedLineIgnores),
154
+ collectFileIgnoreDirectives(checkId, appliedFileIgnores, fc),
155
+ collectLineIgnoreDirectives(checkId, appliedLineIgnores, fc),
141
156
  ]);
142
157
  return [...fileDirectives, ...lineDirectives];
143
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-processing.js","sourceRoot":"","sources":["../../src/framework/ignore-processing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ignore-processing.js","sourceRoot":"","sources":["../../src/framework/ignore-processing.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -36,6 +36,7 @@ export type { Finding, Severity, FindingSeverity, ToolOutput, CheckResult, Check
36
36
  export { getLineNumber, extractSnippet, isAPIFile } from './framework/result-builder.js';
37
37
  export { execAbortable } from './framework/abortable-exec.js';
38
38
  export { fileCache } from './framework/file-cache.js';
39
+ export type { FileCache } from './framework/file-cache.js';
39
40
  export { buildImportGraph, findStronglyConnectedComponents } from './framework/import-graph.js';
40
41
  export type { ImportGraph } from './framework/import-graph.js';
41
42
  export { isInsideStringLiteral, stripStringLiterals, stripStringsAndComments, stripStringsAndCommentsPreservingPositions, } from './framework/strip-literals.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAI9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAKlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,YAAY,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,YAAY,EACV,OAAO,EACP,QAAQ,EACR,eAAe,EACf,UAAU,EACV,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAChG,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0CAA0C,GAC3C,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAKhC,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM9E,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAI9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAKlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,YAAY,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,YAAY,EACV,OAAO,EACP,QAAQ,EACR,eAAe,EACf,UAAU,EACV,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAK9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAItD,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAChG,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0CAA0C,GAC3C,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAKhC,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM9E,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -43,7 +43,10 @@ export { isCheck, collectCheckObjects } from './framework/check-types.js';
43
43
  // ── Authoring helpers — snippet/line extraction, file access ────────
44
44
  export { getLineNumber, extractSnippet, isAPIFile } from './framework/result-builder.js';
45
45
  export { execAbortable } from './framework/abortable-exec.js';
46
- // File cache (checks read content through it; pack tests may seed/clear it).
46
+ // TEST-ONLY re-export production reads the per-run cache from
47
+ // scope.fitness.fileCache (resolved via currentScope()). Retained for isolated
48
+ // unit tests that seed/clear the singleton; new production imports are forbidden
49
+ // by the no-module-level-run-state dogfood check (parallel-tool-invocations Phase 3).
47
50
  export { fileCache } from './framework/file-cache.js';
48
51
  export { buildImportGraph, findStronglyConnectedComponents } from './framework/import-graph.js';
49
52
  // Regex-based string/comment strippers — language-agnostic, good enough for
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,yEAAyE;AACzE,yEAAyE;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAOrD,sEAAsE;AACtE,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,wEAAwE;AACxE,gFAAgF;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,sEAAsE;AACtE,8EAA8E;AAC9E,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAWvD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAc1E,uEAAuE;AACvE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,6EAA6E;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAGhG,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0CAA0C,GAC3C,MAAM,+BAA+B,CAAC;AAEvC,sEAAsE;AACtE,+EAA+E;AAC/E,0EAA0E;AAC1E,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,6EAA6E;AAC7E,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAahC,sEAAsE;AACtE,+EAA+E;AAC/E,6EAA6E;AAC7E,4DAA4D;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,yEAAyE;AACzE,yEAAyE;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAOrD,sEAAsE;AACtE,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,wEAAwE;AACxE,gFAAgF;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,sEAAsE;AACtE,8EAA8E;AAC9E,oEAAoE;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAWvD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAc1E,uEAAuE;AACvE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,gEAAgE;AAChE,+EAA+E;AAC/E,iFAAiF;AACjF,sFAAsF;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKtD,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAGhG,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAC1E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0CAA0C,GAC3C,MAAM,+BAA+B,CAAC;AAEvC,sEAAsE;AACtE,+EAA+E;AAC/E,0EAA0E;AAC1E,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,6EAA6E;AAC7E,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAahC,sEAAsE;AACtE,+EAA+E;AAC/E,6EAA6E;AAC7E,4DAA4D;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC"}
@@ -1,14 +1,19 @@
1
- import type { FitDoneResult, StoredSession, ToolSessionReplay } from '@opensip-cli/contracts';
1
+ import type { RunPresentation, StoredSession, ToolSessionReplay } from '@opensip-cli/contracts';
2
2
  /**
3
- * Project a stored fit session back into a {@link SignalEnvelope}/{@link FitDoneResult}.
3
+ * Project a stored fit session back into a {@link SignalEnvelope}/{@link RunPresentation}.
4
4
  *
5
5
  * The structural decode of the opaque payload is shared across tools
6
6
  * (`decodeSessionPayload`); this function owns only fit's projection — the
7
7
  * envelope vocabulary (`tool: 'fit'`, recipe label) and the per-finding signal
8
8
  * shape (`category: 'quality'`, severity mapping, id prefix).
9
9
  *
10
+ * The replay RENDER path reads only `replay.envelope` + `replay.fidelity` (the
11
+ * host builds the shared `SessionReplayResult` from those); the inner
12
+ * `RunPresentation` `result` is a uniform, render-only carrier and is not on the
13
+ * replay render path.
14
+ *
10
15
  * @throws {Error | TypeError} when the stored payload is not the expected shape
11
16
  * (propagated from `decodeSessionPayload`).
12
17
  */
13
- export declare function fitReplayFromSession(stored: StoredSession): ToolSessionReplay<FitDoneResult>;
18
+ export declare function fitReplayFromSession(stored: StoredSession): ToolSessionReplay<RunPresentation>;
14
19
  //# sourceMappingURL=session-replay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACb,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAwD5F"}
1
+ {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EAEf,aAAa,EACb,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAkD9F"}
@@ -1,13 +1,18 @@
1
1
  import { currentScope, extractPayloadVersion } from '@opensip-cli/core';
2
2
  import { decodeSessionPayload } from '@opensip-cli/session-store';
3
3
  /**
4
- * Project a stored fit session back into a {@link SignalEnvelope}/{@link FitDoneResult}.
4
+ * Project a stored fit session back into a {@link SignalEnvelope}/{@link RunPresentation}.
5
5
  *
6
6
  * The structural decode of the opaque payload is shared across tools
7
7
  * (`decodeSessionPayload`); this function owns only fit's projection — the
8
8
  * envelope vocabulary (`tool: 'fit'`, recipe label) and the per-finding signal
9
9
  * shape (`category: 'quality'`, severity mapping, id prefix).
10
10
  *
11
+ * The replay RENDER path reads only `replay.envelope` + `replay.fidelity` (the
12
+ * host builds the shared `SessionReplayResult` from those); the inner
13
+ * `RunPresentation` `result` is a uniform, render-only carrier and is not on the
14
+ * replay render path.
15
+ *
11
16
  * @throws {Error | TypeError} when the stored payload is not the expected shape
12
17
  * (propagated from `decodeSessionPayload`).
13
18
  */
@@ -47,13 +52,7 @@ export function fitReplayFromSession(stored) {
47
52
  return {
48
53
  fidelity: 'projection',
49
54
  envelope,
50
- result: {
51
- type: 'fit-done',
52
- label: stored.recipe ? `recipe ${stored.recipe}` : `session ${stored.id}`,
53
- cwd: stored.cwd,
54
- envelope,
55
- configFound: true,
56
- },
55
+ result: { type: 'run-presentation', tool: 'fitness', envelope },
57
56
  };
58
57
  }
59
58
  function replaySignal(stored, source, finding, checkIndex, findingIndex) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-replay.js","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-replay.js","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAe,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAA8B,MAAM,4BAA4B,CAAC;AAU9F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtE,qDAAqD;IACrD,uGAAuG;IACvG,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,iFAAiF;QACjF,uFAAuF;QACvF,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,KAAK,EAAE,WAAW,EAAE,KAAK,CACvB,MAAM,EACN,MAAM,EACN,yCAAyC,OAAO,qBAAqB,EACrE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,CAClC,CAAC;QACF,mFAAmF;IACrF,CAAC;IAED,MAAM,KAAK,GAAiB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,EAAE,KAAK,CAAC,SAAS;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvF,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAC3D,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAC3C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CACzE,CACF,CAAC;IACF,MAAM,QAAQ,GAAmB;QAC/B,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACjE,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;QACD,KAAK;QACL,OAAO;KACR,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,QAAQ;QACR,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,MAAqB,EACrB,MAAc,EACd,OAA8B,EAC9B,UAAkB,EAClB,YAAoB;IAEpB,OAAO;QACL,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQ,UAAU,IAAI,YAAY,EAAE;QACpD,MAAM;QACN,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QAC1D,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;YAChC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO,CAAC,QAAQ;oBACtB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC7D,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;iBACpE;aACF,CAAC;QACN,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC"}
@@ -56,7 +56,7 @@ function realPayload() {
56
56
  return buildFitnessSessionPayload(env);
57
57
  }
58
58
  describe('fitReplayFromSession', () => {
59
- it('round-trips a stored payload back into a projection envelope + result', () => {
59
+ it('round-trips a stored payload back into a projection envelope + run-presentation result', () => {
60
60
  const replay = fitReplayFromSession(storedSession(realPayload()));
61
61
  expect(replay.fidelity).toBe('projection');
62
62
  expect(replay.envelope.tool).toBe('fit');
@@ -68,18 +68,20 @@ describe('fitReplayFromSession', () => {
68
68
  const located = replay.envelope.signals.find((s) => s.ruleId === 'fit:a');
69
69
  expect(located?.code).toEqual({ file: 'src/x.ts', line: 3, column: 5 });
70
70
  expect(located?.suggestion).toBe('fix it');
71
- expect(replay.result.type).toBe('fit-done');
72
- expect(replay.result.configFound).toBe(true);
71
+ // The inner replay result is the uniform render-only RunPresentation carrying
72
+ // the projected envelope (the host renders replay via SessionReplayResult, not
73
+ // this inner result).
74
+ expect(replay.result.type).toBe('run-presentation');
75
+ expect(replay.result.tool).toBe('fitness');
76
+ expect(replay.result.envelope).toBe(replay.envelope);
73
77
  });
74
- it('labels by recipe when present and carries recipe onto the envelope', () => {
78
+ it('carries the recipe onto the envelope when present', () => {
75
79
  const replay = fitReplayFromSession(storedSession(realPayload(), { recipe: 'example' }));
76
80
  expect(replay.envelope.recipe).toBe('example');
77
- expect(replay.result.label).toBe('recipe example');
78
81
  });
79
- it('labels by session id when no recipe is set', () => {
82
+ it('leaves the envelope recipe unset when no recipe is stored', () => {
80
83
  const replay = fitReplayFromSession(storedSession(realPayload()));
81
84
  expect(replay.envelope.recipe).toBeUndefined();
82
- expect(replay.result.label).toBe('session FIT_1');
83
85
  });
84
86
  it('preserves a finding with no optional location fields (undefined branches)', () => {
85
87
  const payload = {