@opensip-cli/fitness 0.1.9 → 0.1.11

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 (187) hide show
  1. package/README.md +4 -2
  2. package/dist/__tests__/check-utils.test.js +11 -0
  3. package/dist/__tests__/check-utils.test.js.map +1 -1
  4. package/dist/__tests__/fit-execute-opts.test.js +35 -1
  5. package/dist/__tests__/fit-execute-opts.test.js.map +1 -1
  6. package/dist/__tests__/public-api.test.js +7 -2
  7. package/dist/__tests__/public-api.test.js.map +1 -1
  8. package/dist/__tests__/tool.test.js +18 -9
  9. package/dist/__tests__/tool.test.js.map +1 -1
  10. package/dist/check-utils/check-authoring-helpers.d.ts +14 -0
  11. package/dist/check-utils/check-authoring-helpers.d.ts.map +1 -0
  12. package/dist/check-utils/check-authoring-helpers.js +18 -0
  13. package/dist/check-utils/check-authoring-helpers.js.map +1 -0
  14. package/dist/check-utils/index.d.ts +1 -0
  15. package/dist/check-utils/index.d.ts.map +1 -1
  16. package/dist/check-utils/index.js +1 -0
  17. package/dist/check-utils/index.js.map +1 -1
  18. package/dist/cli/__tests__/fit-fail-closed.test.d.ts +8 -0
  19. package/dist/cli/__tests__/fit-fail-closed.test.d.ts.map +1 -0
  20. package/dist/cli/__tests__/fit-fail-closed.test.js +200 -0
  21. package/dist/cli/__tests__/fit-fail-closed.test.js.map +1 -0
  22. package/dist/cli/__tests__/fit-modes-live.test.js +33 -3
  23. package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -1
  24. package/dist/cli/__tests__/fit-runner.test.d.ts +5 -0
  25. package/dist/cli/__tests__/fit-runner.test.d.ts.map +1 -0
  26. package/dist/cli/__tests__/fit-runner.test.js +145 -0
  27. package/dist/cli/__tests__/fit-runner.test.js.map +1 -0
  28. package/dist/cli/__tests__/report-data.test.js +37 -2
  29. package/dist/cli/__tests__/report-data.test.js.map +1 -1
  30. package/dist/cli/fit/__tests__/envelope-view-table.test.d.ts +2 -0
  31. package/dist/cli/fit/__tests__/envelope-view-table.test.d.ts.map +1 -0
  32. package/dist/cli/fit/__tests__/envelope-view-table.test.js +64 -0
  33. package/dist/cli/fit/__tests__/envelope-view-table.test.js.map +1 -0
  34. package/dist/cli/fit/__tests__/fit-export-command-spec.test.js +5 -2
  35. package/dist/cli/fit/__tests__/fit-export-command-spec.test.js.map +1 -1
  36. package/dist/cli/fit/check-loader.d.ts.map +1 -1
  37. package/dist/cli/fit/check-loader.js +28 -25
  38. package/dist/cli/fit/check-loader.js.map +1 -1
  39. package/dist/cli/fit/envelope-view.d.ts +1 -3
  40. package/dist/cli/fit/envelope-view.d.ts.map +1 -1
  41. package/dist/cli/fit/envelope-view.js +1 -7
  42. package/dist/cli/fit/envelope-view.js.map +1 -1
  43. package/dist/cli/fit/fit-aux-command-specs.d.ts +4 -4
  44. package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -1
  45. package/dist/cli/fit/fit-aux-command-specs.js +13 -15
  46. package/dist/cli/fit/fit-aux-command-specs.js.map +1 -1
  47. package/dist/cli/fit/fit-command-spec.d.ts +3 -3
  48. package/dist/cli/fit/fit-command-spec.d.ts.map +1 -1
  49. package/dist/cli/fit/fit-command-spec.js +5 -9
  50. package/dist/cli/fit/fit-command-spec.js.map +1 -1
  51. package/dist/cli/fit/load-outcome.d.ts +24 -0
  52. package/dist/cli/fit/load-outcome.d.ts.map +1 -0
  53. package/dist/cli/fit/load-outcome.js +211 -0
  54. package/dist/cli/fit/load-outcome.js.map +1 -0
  55. package/dist/cli/fit/result-builders.d.ts.map +1 -1
  56. package/dist/cli/fit/result-builders.js +3 -4
  57. package/dist/cli/fit/result-builders.js.map +1 -1
  58. package/dist/cli/fit-modes.d.ts.map +1 -1
  59. package/dist/cli/fit-modes.js +50 -18
  60. package/dist/cli/fit-modes.js.map +1 -1
  61. package/dist/cli/fit-runner-progress.d.ts +0 -2
  62. package/dist/cli/fit-runner-progress.d.ts.map +1 -1
  63. package/dist/cli/fit-runner-progress.js +0 -3
  64. package/dist/cli/fit-runner-progress.js.map +1 -1
  65. package/dist/cli/fit-runner.d.ts +1 -34
  66. package/dist/cli/fit-runner.d.ts.map +1 -1
  67. package/dist/cli/fit-runner.js +90 -241
  68. package/dist/cli/fit-runner.js.map +1 -1
  69. package/dist/cli/fit-worker.d.ts.map +1 -1
  70. package/dist/cli/fit-worker.js +0 -1
  71. package/dist/cli/fit-worker.js.map +1 -1
  72. package/dist/cli/fit.d.ts +1 -0
  73. package/dist/cli/fit.d.ts.map +1 -1
  74. package/dist/cli/fit.js +6 -0
  75. package/dist/cli/fit.js.map +1 -1
  76. package/dist/cli/report-data.d.ts.map +1 -1
  77. package/dist/cli/report-data.js +0 -1
  78. package/dist/cli/report-data.js.map +1 -1
  79. package/dist/framework/__tests__/define-check.test.js +0 -1
  80. package/dist/framework/__tests__/define-check.test.js.map +1 -1
  81. package/dist/framework/__tests__/define-regex-list-check.test.js +15 -0
  82. package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -1
  83. package/dist/framework/__tests__/scope-registry.test.js +2 -0
  84. package/dist/framework/__tests__/scope-registry.test.js.map +1 -1
  85. package/dist/framework/abortable-exec.d.ts.map +1 -1
  86. package/dist/framework/abortable-exec.js +0 -1
  87. package/dist/framework/abortable-exec.js.map +1 -1
  88. package/dist/framework/check-config.d.ts +0 -8
  89. package/dist/framework/check-config.d.ts.map +1 -1
  90. package/dist/framework/check-config.js +0 -1
  91. package/dist/framework/check-config.js.map +1 -1
  92. package/dist/framework/constants.d.ts.map +1 -1
  93. package/dist/framework/constants.js +0 -1
  94. package/dist/framework/constants.js.map +1 -1
  95. package/dist/framework/define-check.d.ts.map +1 -1
  96. package/dist/framework/define-check.js +0 -1
  97. package/dist/framework/define-check.js.map +1 -1
  98. package/dist/framework/define-regex-list-check.d.ts +6 -0
  99. package/dist/framework/define-regex-list-check.d.ts.map +1 -1
  100. package/dist/framework/define-regex-list-check.js +4 -0
  101. package/dist/framework/define-regex-list-check.js.map +1 -1
  102. package/dist/framework/file-accessor.d.ts.map +1 -1
  103. package/dist/framework/file-accessor.js +0 -4
  104. package/dist/framework/file-accessor.js.map +1 -1
  105. package/dist/framework/file-cache.d.ts +1 -0
  106. package/dist/framework/file-cache.d.ts.map +1 -1
  107. package/dist/framework/file-cache.js +1 -4
  108. package/dist/framework/file-cache.js.map +1 -1
  109. package/dist/framework/import-graph.d.ts.map +1 -1
  110. package/dist/framework/import-graph.js +0 -1
  111. package/dist/framework/import-graph.js.map +1 -1
  112. package/dist/framework/parse-cache.d.ts.map +1 -1
  113. package/dist/framework/parse-cache.js +0 -1
  114. package/dist/framework/parse-cache.js.map +1 -1
  115. package/dist/framework/scope-registry.d.ts.map +1 -1
  116. package/dist/framework/scope-registry.js +7 -1
  117. package/dist/framework/scope-registry.js.map +1 -1
  118. package/dist/framework/severity-mapping.d.ts.map +1 -1
  119. package/dist/framework/severity-mapping.js +0 -1
  120. package/dist/framework/severity-mapping.js.map +1 -1
  121. package/dist/identity.d.ts +11 -0
  122. package/dist/identity.d.ts.map +1 -0
  123. package/dist/identity.js +11 -0
  124. package/dist/identity.js.map +1 -0
  125. package/dist/index.d.ts +1 -1
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +1 -1
  128. package/dist/index.js.map +1 -1
  129. package/dist/plugins/loader.d.ts.map +1 -1
  130. package/dist/plugins/loader.js +2 -1
  131. package/dist/plugins/loader.js.map +1 -1
  132. package/dist/recipes/__tests__/execution-branches.test.d.ts.map +1 -1
  133. package/dist/recipes/__tests__/execution-branches.test.js +0 -1
  134. package/dist/recipes/__tests__/execution-branches.test.js.map +1 -1
  135. package/dist/recipes/__tests__/service.test.d.ts.map +1 -1
  136. package/dist/recipes/__tests__/service.test.js +0 -1
  137. package/dist/recipes/__tests__/service.test.js.map +1 -1
  138. package/dist/recipes/check-result-processor.d.ts.map +1 -1
  139. package/dist/recipes/check-result-processor.js +0 -1
  140. package/dist/recipes/check-result-processor.js.map +1 -1
  141. package/dist/recipes/service-adhoc.d.ts +24 -0
  142. package/dist/recipes/service-adhoc.d.ts.map +1 -0
  143. package/dist/recipes/service-adhoc.js +53 -0
  144. package/dist/recipes/service-adhoc.js.map +1 -0
  145. package/dist/recipes/service-check-resolution.d.ts +18 -0
  146. package/dist/recipes/service-check-resolution.d.ts.map +1 -0
  147. package/dist/recipes/service-check-resolution.js +65 -0
  148. package/dist/recipes/service-check-resolution.js.map +1 -0
  149. package/dist/recipes/service-prepare.d.ts +23 -0
  150. package/dist/recipes/service-prepare.d.ts.map +1 -0
  151. package/dist/recipes/service-prepare.js +30 -0
  152. package/dist/recipes/service-prepare.js.map +1 -0
  153. package/dist/recipes/service-prewarm.d.ts +12 -0
  154. package/dist/recipes/service-prewarm.d.ts.map +1 -0
  155. package/dist/recipes/service-prewarm.js +25 -0
  156. package/dist/recipes/service-prewarm.js.map +1 -0
  157. package/dist/recipes/service-session.d.ts +17 -0
  158. package/dist/recipes/service-session.d.ts.map +1 -0
  159. package/dist/recipes/service-session.js +78 -0
  160. package/dist/recipes/service-session.js.map +1 -0
  161. package/dist/recipes/service.d.ts +2 -19
  162. package/dist/recipes/service.d.ts.map +1 -1
  163. package/dist/recipes/service.js +23 -219
  164. package/dist/recipes/service.js.map +1 -1
  165. package/dist/scaffold/index.d.ts +3 -0
  166. package/dist/scaffold/index.d.ts.map +1 -0
  167. package/dist/scaffold/index.js +3 -0
  168. package/dist/scaffold/index.js.map +1 -0
  169. package/dist/scope-augmentation.d.ts +11 -0
  170. package/dist/scope-augmentation.d.ts.map +1 -1
  171. package/dist/signalers/loader.d.ts.map +1 -1
  172. package/dist/signalers/loader.js +0 -2
  173. package/dist/signalers/loader.js.map +1 -1
  174. package/dist/targets/loader.d.ts.map +1 -1
  175. package/dist/targets/loader.js +0 -2
  176. package/dist/targets/loader.js.map +1 -1
  177. package/dist/tool.d.ts.map +1 -1
  178. package/dist/tool.js +12 -16
  179. package/dist/tool.js.map +1 -1
  180. package/dist/types/severity.d.ts.map +1 -1
  181. package/dist/types/severity.js +0 -1
  182. package/dist/types/severity.js.map +1 -1
  183. package/package.json +27 -16
  184. package/dist/cli/fit-runner-views.d.ts +0 -33
  185. package/dist/cli/fit-runner-views.d.ts.map +0 -1
  186. package/dist/cli/fit-runner-views.js +0 -92
  187. package/dist/cli/fit-runner-views.js.map +0 -1
package/README.md CHANGED
@@ -10,6 +10,8 @@ This package is the **engine** behind a first-party `opensip-cli` tool. The CLI
10
10
 
11
11
  Part of [**opensip-cli**](https://github.com/opensip-ai/opensip-cli) — an open-source codebase intelligence CLI: fitness checks (`fit`), static call-graph analysis (`graph`), and simulation (`sim`).
12
12
 
13
+ **Distribution model:** the published `opensip-cli` npm package is a full-stack bundle of first-party tools, check packs, and language adapters. Third-party tools install separately via the `opensipTools` manifest and host allowlist; a slim install without bundled tools is not a current goal.
14
+
13
15
  ## Install
14
16
 
15
17
  Most users install the CLI, which bundles the first-party tools:
@@ -23,8 +25,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
23
25
  ## Documentation
24
26
 
25
27
  - 📚 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.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
+ - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.11/docs/public/70-reference/02-package-catalog.md
29
+ - 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.11/packages/fitness/engine
28
30
 
29
31
  ## License
30
32
 
@@ -7,6 +7,7 @@
7
7
  * in the engine to deduplicate.
8
8
  */
9
9
  import { describe, expect, it } from 'vitest';
10
+ import { isCheckAuthoringSource } from '../check-utils/check-authoring-helpers.js';
10
11
  import { getCheckIcon, getCheckDisplayName, makeDisplayHelpers } from '../check-utils/display.js';
11
12
  import { createPathMatcher } from '../check-utils/path-matching.js';
12
13
  import { isCommentLine } from '../check-utils/source-analysis.js';
@@ -124,6 +125,16 @@ describe('isCommentLine', () => {
124
125
  });
125
126
  });
126
127
  });
128
+ describe('isCheckAuthoringSource', () => {
129
+ it('matches fitness check-pack source paths', () => {
130
+ expect(isCheckAuthoringSource('packages/fitness/checks-typescript/src/checks/quality/patterns/foo.ts')).toBe(true);
131
+ expect(isCheckAuthoringSource('packages/fitness/checks-universal/src/checks/security/bar.ts')).toBe(true);
132
+ });
133
+ it('does not match fitness engine or product runtime', () => {
134
+ expect(isCheckAuthoringSource('packages/fitness/engine/src/tool.ts')).toBe(false);
135
+ expect(isCheckAuthoringSource('packages/core/src/lib/registry.ts')).toBe(false);
136
+ });
137
+ });
127
138
  describe('isTestFile', () => {
128
139
  describe('with default options', () => {
129
140
  it('detects __tests__ directory pattern', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"check-utils.test.js","sourceRoot":"","sources":["../../src/__tests__/check-utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-utils.test.js","sourceRoot":"","sources":["../../src/__tests__/check-utils.test.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,44 @@ import { join } from 'node:path';
17
17
  import { LanguageRegistry, RunScope, generatePrefixedId, runWithScope, applyToolContributeScope, } from '@opensip-cli/core';
18
18
  import { DataStoreFactory } from '@opensip-cli/datastore';
19
19
  import { SessionRepo } from '@opensip-cli/session-store';
20
- import { afterEach, beforeEach, describe, expect, it } from 'vitest';
20
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
21
21
  import { buildFitnessSessionPayload } from '../cli/fit/result-builders.js';
22
22
  import { executeFit } from '../cli/fit.js';
23
23
  import { fitnessTool } from '../tool.js';
24
+ // Unit tests run without built @opensip-cli/checks-* dist artifacts — seed a stub
25
+ // check so executeFit reaches the recipe path (ADR-0060 fail-closed otherwise).
26
+ vi.mock('../cli/fit/check-loader.js', async (importOriginal) => {
27
+ const actual = await importOriginal();
28
+ const { currentCheckRegistry, currentFitnessLoadState } = await import('../framework/scope-registry.js');
29
+ const { defineCheck } = await import('../framework/define-check.js');
30
+ return {
31
+ ...actual,
32
+ ensureChecksLoaded: vi.fn((projectDir = '') => {
33
+ const key = projectDir;
34
+ const load = currentFitnessLoadState();
35
+ if (load.loadedFor === key)
36
+ return;
37
+ const registry = currentCheckRegistry();
38
+ if (registry.listEnabled().length === 0) {
39
+ registry.register(defineCheck({
40
+ id: '00000000-0000-4000-8000-000000000099',
41
+ slug: 'stub-check',
42
+ description: 'stub',
43
+ tags: ['test'],
44
+ analyze: () => [],
45
+ }), '@opensip-cli/test');
46
+ }
47
+ load.loadedFor = key;
48
+ load.pluginLoadErrors = [];
49
+ load.checkPackErrors = [];
50
+ load.loadWarnings = [];
51
+ load.degradedDiagnostics = [];
52
+ load.commandError = undefined;
53
+ load.loadDegraded = undefined;
54
+ load.outcomeFinalized = true;
55
+ }),
56
+ };
57
+ });
24
58
  let projectDir;
25
59
  let datastore;
26
60
  beforeEach(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"fit-execute-opts.test.js","sourceRoot":"","sources":["../../src/__tests__/fit-execute-opts.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fit-execute-opts.test.js","sourceRoot":"","sources":["../../src/__tests__/fit-execute-opts.test.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ const EXPECTED_VALUE_EXPORTS = [
38
38
  'getLineNumber',
39
39
  'isAPIFile',
40
40
  'isCheck',
41
+ 'isCheckAuthoringSource',
41
42
  'isCommentLine',
42
43
  'isInsideStringLiteral',
43
44
  'isTestFile',
@@ -59,8 +60,12 @@ describe('@opensip-cli/fitness public barrel', () => {
59
60
  });
60
61
  it('exposes `fitnessTool` (and its `tool` alias) as the Tool descriptor', () => {
61
62
  expect(barrel.fitnessTool).toBeDefined();
62
- // Task 2.4 (Q1): metadata.name == the command verb (`fit`).
63
- expect(barrel.fitnessTool.metadata.name).toBe('fit');
63
+ expect(barrel.fitnessTool.identity).toEqual({
64
+ name: 'fitness',
65
+ aliases: ['fit'],
66
+ layoutKey: 'fit',
67
+ });
68
+ expect(barrel.fitnessTool.metadata.name).toBe('fitness');
64
69
  expect(barrel.fitnessTool.metadata.id).toBe('afd68bd3-ff3c-4935-a5b6-76d8fc7a5224');
65
70
  expect(barrel.tool).toBe(barrel.fitnessTool);
66
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.test.js","sourceRoot":"","sources":["../../src/__tests__/public-api.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG;IAC7B,mBAAmB;IACnB,kBAAkB;IAClB,+BAA+B;IAC/B,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,iCAAiC;IACjC,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,eAAe;IACf,WAAW;IACX,SAAS;IACT,eAAe;IACf,uBAAuB;IACvB,YAAY;IACZ,oBAAoB;IACpB,oBAAoB;IACpB,6BAA6B;IAC7B,qBAAqB;IACrB,yBAAyB;IACzB,4CAA4C;IAC5C,MAAM;IACN,0BAA0B;CAC3B,CAAC,IAAI,EAAE,CAAC;AAET,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAwB,CAAC,KAAK,SAAS,CAAC;aAC7D,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,4DAA4D;QAC5D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,wEAAwE;QACxE,yEAAyE;QACzE,KAAK,MAAM,IAAI,IAAI;YACjB,iBAAiB;YACjB,sBAAsB;YACtB,uBAAuB;YACvB,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,cAAc;YACd,mBAAmB;YACnB,oBAAoB;SACrB,EAAE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"public-api.test.js","sourceRoot":"","sources":["../../src/__tests__/public-api.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG;IAC7B,mBAAmB;IACnB,kBAAkB;IAClB,+BAA+B;IAC/B,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;IACb,cAAc;IACd,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,iCAAiC;IACjC,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,eAAe;IACf,WAAW;IACX,SAAS;IACT,wBAAwB;IACxB,eAAe;IACf,uBAAuB;IACvB,YAAY;IACZ,oBAAoB;IACpB,oBAAoB;IACpB,6BAA6B;IAC7B,qBAAqB;IACrB,yBAAyB;IACzB,4CAA4C;IAC5C,MAAM;IACN,0BAA0B;CAC3B,CAAC,IAAI,EAAE,CAAC;AAET,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAwB,CAAC,KAAK,SAAS,CAAC;aAC7D,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YAC1C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,wEAAwE;QACxE,yEAAyE;QACzE,KAAK,MAAM,IAAI,IAAI;YACjB,iBAAiB;YACjB,sBAAsB;YACtB,uBAAuB;YACvB,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,cAAc;YACd,mBAAmB;YACnB,oBAAoB;SACrB,EAAE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -15,11 +15,16 @@ import { fitnessTool } from '../tool.js';
15
15
  const HERE = dirname(fileURLToPath(import.meta.url));
16
16
  const PKG = JSON.parse(readFileSync(resolve(HERE, '../../package.json'), 'utf8'));
17
17
  describe('fitnessTool contract conformance', () => {
18
- it("metadata.name is the command verb 'fit'; id is the stable UUID", () => {
19
- // tool-command-surface-taxonomy Task 2.4 (Q1): metadata.name == the command
20
- // verb (`fit`). The config namespace literal stays `fitness` (decoupled).
21
- expect(fitnessTool.metadata.name).toBe('fit');
18
+ it("metadata.name is the canonical identity 'fitness'; id is the stable UUID", () => {
19
+ expect(fitnessTool.identity).toEqual({
20
+ name: 'fitness',
21
+ aliases: ['fit'],
22
+ layoutKey: 'fit',
23
+ });
24
+ expect(fitnessTool.metadata.name).toBe('fitness');
22
25
  expect(fitnessTool.metadata.id).toBe('afd68bd3-ff3c-4935-a5b6-76d8fc7a5224');
26
+ expect(fitnessTool.pluginLayout?.domain).toBe('fit');
27
+ expect(resolveToolHooks(fitnessTool).sessionReplay?.tool).toBe('fit');
23
28
  });
24
29
  it('metadata.version matches package.json', () => {
25
30
  expect(fitnessTool.metadata.version).toBe(PKG.version);
@@ -27,9 +32,9 @@ describe('fitnessTool contract conformance', () => {
27
32
  it('metadata.description is non-empty', () => {
28
33
  expect(fitnessTool.metadata.description.length).toBeGreaterThan(0);
29
34
  });
30
- it('commands list includes fit + the nested list/recipes/export children', () => {
35
+ it('commands list includes fitness + the nested list/recipes/export children', () => {
31
36
  const names = (fitnessTool.commands ?? []).map((c) => c.name);
32
- expect(names).toEqual(expect.arrayContaining(['fit', 'list', 'recipes', 'export']));
37
+ expect(names).toEqual(expect.arrayContaining(['fitness', 'list', 'recipes', 'export']));
33
38
  // The legacy flat-root aliases are gone.
34
39
  expect(names).not.toContain('fit-list');
35
40
  expect(names).not.toContain('fit-recipes');
@@ -47,16 +52,20 @@ describe('fitnessTool contract conformance', () => {
47
52
  expect(Array.isArray(fitnessTool.commandSpecs)).toBe(true);
48
53
  const specNames = (fitnessTool.commandSpecs ?? []).map((s) => s.name);
49
54
  expect(specNames).toEqual([
50
- 'fit',
55
+ 'fitness',
51
56
  // Grouped Tier-2 children (the canonical `<tool> <verb>` grammar) —
52
- // name 'list' / 'recipes', parent 'fit'.
57
+ // name 'list' / 'recipes', parent 'fitness'.
53
58
  'list',
54
59
  'recipes',
55
- // Canonical nested export — name 'export', parent 'fit'.
60
+ // Canonical nested export — name 'export', parent 'fitness'.
56
61
  'export',
57
62
  // [internal] headless run forked by the live view (ADR-0028).
58
63
  'fit-run-worker',
59
64
  ]);
65
+ expect(fitnessTool.commandSpecs?.[0]?.aliases).toEqual(['fit']);
66
+ for (const child of fitnessTool.commandSpecs?.filter((s) => ['list', 'recipes', 'export'].includes(s.name)) ?? []) {
67
+ expect(child.parent).toBe('fitness');
68
+ }
60
69
  });
61
70
  it('the nested list/recipes/export children declare no Commander aliases', () => {
62
71
  const byName = new Map((fitnessTool.commandSpecs ?? []).map((s) => [s.name, s]));
@@ -1 +1 @@
1
- {"version":3,"file":"tool.test.js","sourceRoot":"","sources":["../../src/__tests__/tool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.test.js","sourceRoot":"","sources":["../../src/__tests__/tool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Check-authoring source path detection.
3
+ *
4
+ * Fitness check packs (`packages/fitness/checks-*`) intentionally contain
5
+ * literal examples of the patterns their checks detect (regex strings, fixture
6
+ * slugs, semgrep references). Helpers here let checks skip that corpus without
7
+ * per-file suppressions.
8
+ */
9
+ /**
10
+ * True when `filePath` lives under a fitness check pack (`checks-typescript`,
11
+ * `checks-universal`, `checks-go`, …).
12
+ */
13
+ export declare function isCheckAuthoringSource(filePath: string): boolean;
14
+ //# sourceMappingURL=check-authoring-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-authoring-helpers.d.ts","sourceRoot":"","sources":["../../src/check-utils/check-authoring-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview Check-authoring source path detection.
3
+ *
4
+ * Fitness check packs (`packages/fitness/checks-*`) intentionally contain
5
+ * literal examples of the patterns their checks detect (regex strings, fixture
6
+ * slugs, semgrep references). Helpers here let checks skip that corpus without
7
+ * per-file suppressions.
8
+ */
9
+ /** Paths under first-party fitness check packs. */
10
+ const CHECK_AUTHORING_PATH = /packages\/fitness\/checks-[^/]+\//;
11
+ /**
12
+ * True when `filePath` lives under a fitness check pack (`checks-typescript`,
13
+ * `checks-universal`, `checks-go`, …).
14
+ */
15
+ export function isCheckAuthoringSource(filePath) {
16
+ return CHECK_AUTHORING_PATH.test(filePath.replaceAll('\\', '/'));
17
+ }
18
+ //# sourceMappingURL=check-authoring-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-authoring-helpers.js","sourceRoot":"","sources":["../../src/check-utils/check-authoring-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mDAAmD;AACnD,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAEjE;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,OAAO,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  export { isCommentLine } from './source-analysis.js';
10
10
  export type { IsCommentLineOptions } from './source-analysis.js';
11
+ export { isCheckAuthoringSource } from './check-authoring-helpers.js';
11
12
  export { isTestFile } from './test-helpers.js';
12
13
  export type { IsTestFileOptions } from './test-helpers.js';
13
14
  export { applyCheckDisplay, getCheckDisplayName, getCheckIcon, makeDisplayHelpers, } from './display.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check-utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check-utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -7,6 +7,7 @@
7
7
  * natural shared home.
8
8
  */
9
9
  export { isCommentLine } from './source-analysis.js';
10
+ export { isCheckAuthoringSource } from './check-authoring-helpers.js';
10
11
  export { isTestFile } from './test-helpers.js';
11
12
  export { applyCheckDisplay, getCheckDisplayName, getCheckIcon, makeDisplayHelpers, } from './display.js';
12
13
  export { createPathMatcher } from './path-matching.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check-utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check-utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Fitness fail-closed outcomes (ADR-0060, Phase 4).
3
+ *
4
+ * Setup failures before a credible scan return command-error — no findings
5
+ * envelope, no runFaulted-driven FAIL (0 Errors, 0 Warnings) presentation.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=fit-fail-closed.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-fail-closed.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-fail-closed.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Fitness fail-closed outcomes (ADR-0060, Phase 4).
3
+ *
4
+ * Setup failures before a credible scan return command-error — no findings
5
+ * envelope, no runFaulted-driven FAIL (0 Errors, 0 Warnings) presentation.
6
+ */
7
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
8
+ import { tmpdir } from 'node:os';
9
+ import { join } from 'node:path';
10
+ import { CLI_DIAGNOSTIC_CODES } from '@opensip-cli/contracts';
11
+ import { LanguageRegistry, RunScope, applyToolContributeScope, runWithScope, } from '@opensip-cli/core';
12
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
13
+ import { createFitnessLoadState, currentCheckRegistry, currentFitnessLoadState, } from '../../framework/scope-registry.js';
14
+ import { fitnessTool } from '../../tool.js';
15
+ import { finalizeFitLoadOutcome } from '../fit/load-outcome.js';
16
+ import { executeFit } from '../fit.js';
17
+ const DEFAULT_FIT_CONFIG = {
18
+ targets: {
19
+ source: {
20
+ description: 'minimal',
21
+ languages: ['typescript'],
22
+ concerns: ['backend'],
23
+ include: ['src/**/*.ts'],
24
+ },
25
+ },
26
+ };
27
+ const loadAllPluginsMock = vi.hoisted(() => vi.fn());
28
+ const loadCapabilityDomainMock = vi.hoisted(() => vi.fn());
29
+ vi.mock('../../plugins/loader.js', async (importOriginal) => {
30
+ const actual = await importOriginal();
31
+ return {
32
+ ...actual,
33
+ loadAllPlugins: loadAllPluginsMock,
34
+ };
35
+ });
36
+ vi.mock('@opensip-cli/core', async (importOriginal) => {
37
+ const actual = await importOriginal();
38
+ return {
39
+ ...actual,
40
+ loadCapabilityDomain: loadCapabilityDomainMock,
41
+ };
42
+ });
43
+ let projectDir;
44
+ function fitArgs(cwd) {
45
+ return {
46
+ json: false,
47
+ list: false,
48
+ recipes: false,
49
+ verbose: false,
50
+ debug: false,
51
+ quiet: true,
52
+ open: false,
53
+ cwd,
54
+ exclude: [],
55
+ gateSave: false,
56
+ gateCompare: false,
57
+ };
58
+ }
59
+ function withFitScope(fn, configDocument = DEFAULT_FIT_CONFIG) {
60
+ const scope = new RunScope({
61
+ languages: new LanguageRegistry(),
62
+ runId: 'run_test',
63
+ });
64
+ applyToolContributeScope(scope, fitnessTool);
65
+ Object.assign(scope, { configDocument });
66
+ return runWithScope(scope, fn);
67
+ }
68
+ function writeMinimalConfig(dir) {
69
+ writeFileSync(join(dir, 'opensip-cli.config.yml'), `targets:
70
+ source:
71
+ description: minimal
72
+ languages: [typescript]
73
+ concerns: [backend]
74
+ include:
75
+ - "src/**/*.ts"
76
+ `);
77
+ mkdirSync(join(dir, 'src'), { recursive: true });
78
+ writeFileSync(join(dir, 'src', 'index.ts'), 'export const x = 1;\n');
79
+ }
80
+ beforeEach(() => {
81
+ projectDir = mkdtempSync(join(tmpdir(), 'opensip-fit-fail-closed-'));
82
+ writeMinimalConfig(projectDir);
83
+ loadAllPluginsMock.mockReset();
84
+ loadCapabilityDomainMock.mockReset();
85
+ loadAllPluginsMock.mockResolvedValue({ plugins: [], totals: {}, errors: [] });
86
+ loadCapabilityDomainMock.mockResolvedValue([]);
87
+ });
88
+ afterEach(() => {
89
+ rmSync(projectDir, { recursive: true, force: true });
90
+ });
91
+ describe('executeFit fail-closed (ADR-0060)', () => {
92
+ it('returns command-error when the check registry is empty', async () => {
93
+ await withFitScope(async () => {
94
+ const result = await executeFit(fitArgs(projectDir));
95
+ expect(result.envelope).toBeUndefined();
96
+ expect(result.result.type).toBe('error');
97
+ if (result.result.type !== 'error')
98
+ return;
99
+ expect(result.result.code).toBe(CLI_DIAGNOSTIC_CODES.OPENSIP_FIT_EMPTY_CHECK_REGISTRY);
100
+ expect(result.result.diagnostic?.code).toBe(CLI_DIAGNOSTIC_CODES.OPENSIP_FIT_EMPTY_CHECK_REGISTRY);
101
+ expect(result.result.diagnostic?.logRef).toBeDefined();
102
+ });
103
+ });
104
+ it('scrubs absolute module paths from required plugin command-error detail', async () => {
105
+ const pluginPath = join(projectDir, 'opensip-cli', 'fit', 'checks');
106
+ mkdirSync(pluginPath, { recursive: true });
107
+ writeFileSync(join(pluginPath, 'broken.mjs'), 'export default {};\n');
108
+ const absolute = '/Users/sb/proj/node_modules/.pnpm/@opensip-cli+core@file+packages+core/node_modules/@opensip-cli/core/dist/missing.js';
109
+ loadAllPluginsMock.mockResolvedValue({
110
+ plugins: [],
111
+ totals: {},
112
+ errors: [`broken.mjs: Cannot find module '${absolute}'`],
113
+ });
114
+ await withFitScope(async () => {
115
+ const result = await executeFit(fitArgs(projectDir));
116
+ expect(result.result.type).toBe('error');
117
+ if (result.result.type !== 'error')
118
+ return;
119
+ expect(result.result.diagnostic?.message).not.toContain('/Users/sb/proj/node_modules');
120
+ const detail = result.result.diagnostic?.detail;
121
+ if (detail !== undefined) {
122
+ expect(detail).not.toContain('/Users/sb/proj/node_modules');
123
+ }
124
+ });
125
+ });
126
+ it('returns command-error when a required project-local plugin fails to load', async () => {
127
+ const pluginPath = join(projectDir, 'opensip-cli', 'fit', 'checks');
128
+ mkdirSync(pluginPath, { recursive: true });
129
+ writeFileSync(join(pluginPath, 'broken.mjs'), 'export default {};\n');
130
+ loadAllPluginsMock.mockResolvedValue({
131
+ plugins: [],
132
+ totals: {},
133
+ errors: ['broken.mjs: Cannot find module @opensip/missing'],
134
+ });
135
+ await withFitScope(async () => {
136
+ const result = await executeFit(fitArgs(projectDir));
137
+ expect(result.envelope).toBeUndefined();
138
+ expect(result.result.type).toBe('error');
139
+ if (result.result.type !== 'error')
140
+ return;
141
+ expect(result.result.code).toBe(CLI_DIAGNOSTIC_CODES.OPENSIP_PLUGIN_LOAD_FAILED);
142
+ });
143
+ });
144
+ it('classifies required checkPackages load failure as command-error', async () => {
145
+ await withFitScope(() => {
146
+ const load = currentFitnessLoadState();
147
+ Object.assign(load, createFitnessLoadState());
148
+ load.loadedFor = projectDir;
149
+ load.checkPackErrors = ['@acme/required-pack → fit-pack: ERR_MODULE_NOT_FOUND'];
150
+ currentCheckRegistry().register({
151
+ config: {
152
+ id: '00000000-0000-4000-8000-000000000002',
153
+ slug: 'other-check',
154
+ description: 'other',
155
+ tags: [],
156
+ checkScope: 'file',
157
+ },
158
+ analyze: () => [],
159
+ }, 'test');
160
+ finalizeFitLoadOutcome(projectDir);
161
+ expect(load.commandError?.code).toBe(CLI_DIAGNOSTIC_CODES.OPENSIP_FIT_CHECK_PACK_LOAD_FAILED);
162
+ return Promise.resolve();
163
+ }, {
164
+ plugins: { checkPackages: ['@acme/required-pack'] },
165
+ targets: {
166
+ source: {
167
+ description: 'minimal',
168
+ languages: ['typescript'],
169
+ concerns: ['backend'],
170
+ include: ['src/**/*.ts'],
171
+ },
172
+ },
173
+ });
174
+ });
175
+ it('marks optional plugin failure as degraded when built-in checks are registered', async () => {
176
+ await withFitScope(() => {
177
+ const load = currentFitnessLoadState();
178
+ Object.assign(load, createFitnessLoadState());
179
+ load.loadedFor = projectDir;
180
+ load.pluginLoadErrors = ['optional-third-party: import failed'];
181
+ load.checkPackErrors = [];
182
+ currentCheckRegistry().register({
183
+ config: {
184
+ id: '00000000-0000-4000-8000-000000000001',
185
+ slug: 'stub-check',
186
+ description: 'stub',
187
+ tags: [],
188
+ checkScope: 'file',
189
+ },
190
+ analyze: () => [],
191
+ }, 'test');
192
+ finalizeFitLoadOutcome(projectDir);
193
+ expect(load.commandError).toBeUndefined();
194
+ expect(load.loadDegraded).toBe(true);
195
+ expect(load.degradedDiagnostics.length).toBeGreaterThan(0);
196
+ return Promise.resolve();
197
+ });
198
+ });
199
+ });
200
+ //# sourceMappingURL=fit-fail-closed.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-fail-closed.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-fail-closed.test.ts"],"names":[],"mappings":"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"}