@opensip-cli/fitness 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/__tests__/fit-execute-opts.test.js +2 -2
- package/dist/__tests__/fit-execute-opts.test.js.map +1 -1
- package/dist/__tests__/public-api.test.js +2 -1
- package/dist/__tests__/public-api.test.js.map +1 -1
- package/dist/__tests__/tool.test.js +24 -13
- package/dist/__tests__/tool.test.js.map +1 -1
- package/dist/cli/__tests__/fit-gate-mode.test.js +1 -1
- package/dist/cli/__tests__/fit-gate-mode.test.js.map +1 -1
- package/dist/cli/__tests__/fit-modes-live.test.d.ts +1 -1
- package/dist/cli/__tests__/fit-modes-live.test.js +13 -6
- package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -1
- package/dist/cli/__tests__/fit-runner-progress.test.d.ts +2 -0
- package/dist/cli/__tests__/fit-runner-progress.test.d.ts.map +1 -0
- package/dist/cli/__tests__/fit-runner-progress.test.js +30 -0
- package/dist/cli/__tests__/fit-runner-progress.test.js.map +1 -0
- package/dist/cli/__tests__/report-data.test.js +3 -3
- package/dist/cli/__tests__/report-data.test.js.map +1 -1
- package/dist/cli/fit/__tests__/display-fold.test.js +2 -2
- package/dist/cli/fit/__tests__/display-fold.test.js.map +1 -1
- package/dist/cli/fit/__tests__/fit-export-command-spec.test.d.ts +9 -0
- package/dist/cli/fit/__tests__/fit-export-command-spec.test.d.ts.map +1 -0
- package/dist/cli/fit/__tests__/fit-export-command-spec.test.js +75 -0
- package/dist/cli/fit/__tests__/fit-export-command-spec.test.js.map +1 -0
- package/dist/cli/fit/check-loader.d.ts +1 -1
- package/dist/cli/fit/check-loader.js +1 -1
- package/dist/cli/fit/config-loader.d.ts +1 -1
- package/dist/cli/fit/config-loader.js +1 -1
- package/dist/cli/fit/envelope-view.d.ts.map +1 -1
- package/dist/cli/fit/envelope-view.js +2 -14
- package/dist/cli/fit/envelope-view.js.map +1 -1
- package/dist/cli/fit/fit-aux-command-specs.d.ts +27 -17
- package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -1
- package/dist/cli/fit/fit-aux-command-specs.js +91 -53
- package/dist/cli/fit/fit-aux-command-specs.js.map +1 -1
- package/dist/cli/fit/recipe-selector.test.js +2 -2
- package/dist/cli/fit/recipe-selector.test.js.map +1 -1
- package/dist/cli/fit/result-builders.d.ts +29 -19
- package/dist/cli/fit/result-builders.d.ts.map +1 -1
- package/dist/cli/fit/result-builders.js +29 -24
- package/dist/cli/fit/result-builders.js.map +1 -1
- package/dist/cli/fit-modes.d.ts.map +1 -1
- package/dist/cli/fit-modes.js +7 -4
- package/dist/cli/fit-modes.js.map +1 -1
- package/dist/cli/fit-runner-progress.d.ts +12 -0
- package/dist/cli/fit-runner-progress.d.ts.map +1 -0
- package/dist/cli/fit-runner-progress.js +25 -0
- package/dist/cli/fit-runner-progress.js.map +1 -0
- package/dist/cli/fit-runner-views.d.ts +1 -1
- package/dist/cli/fit-runner-views.js +1 -1
- package/dist/cli/fit-runner.d.ts.map +1 -1
- package/dist/cli/fit-runner.js +51 -16
- package/dist/cli/fit-runner.js.map +1 -1
- package/dist/cli/fit-worker.d.ts.map +1 -1
- package/dist/cli/fit-worker.js +1 -0
- package/dist/cli/fit-worker.js.map +1 -1
- package/dist/cli/fit.d.ts +5 -3
- package/dist/cli/fit.d.ts.map +1 -1
- package/dist/cli/fit.js +6 -4
- package/dist/cli/fit.js.map +1 -1
- package/dist/framework/__tests__/concurrent-file-cache.test.d.ts +24 -0
- package/dist/framework/__tests__/concurrent-file-cache.test.d.ts.map +1 -0
- package/dist/framework/__tests__/concurrent-file-cache.test.js +151 -0
- package/dist/framework/__tests__/concurrent-file-cache.test.js.map +1 -0
- package/dist/framework/__tests__/define-check.test.js +38 -1
- package/dist/framework/__tests__/define-check.test.js.map +1 -1
- package/dist/framework/__tests__/define-regex-list-check.test.js +5 -1
- package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -1
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js +3 -1
- package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js.map +1 -1
- package/dist/framework/__tests__/execution-context.test.js +32 -9
- package/dist/framework/__tests__/execution-context.test.js.map +1 -1
- package/dist/framework/__tests__/file-accessor.test.js +7 -4
- package/dist/framework/__tests__/file-accessor.test.js.map +1 -1
- package/dist/framework/__tests__/file-cache-autoclear.test.d.ts +25 -0
- package/dist/framework/__tests__/file-cache-autoclear.test.d.ts.map +1 -0
- package/dist/framework/__tests__/file-cache-autoclear.test.js +116 -0
- package/dist/framework/__tests__/file-cache-autoclear.test.js.map +1 -0
- package/dist/framework/__tests__/register-helpers.test.js +2 -2
- package/dist/framework/__tests__/register-helpers.test.js.map +1 -1
- package/dist/framework/__tests__/scope-registry.test.js +2 -2
- package/dist/framework/__tests__/scope-registry.test.js.map +1 -1
- package/dist/framework/define-check.d.ts.map +1 -1
- package/dist/framework/define-check.js +9 -0
- package/dist/framework/define-check.js.map +1 -1
- package/dist/framework/execution-context.d.ts +9 -2
- package/dist/framework/execution-context.d.ts.map +1 -1
- package/dist/framework/execution-context.js +20 -6
- package/dist/framework/execution-context.js.map +1 -1
- package/dist/framework/file-accessor.d.ts +12 -0
- package/dist/framework/file-accessor.d.ts.map +1 -1
- package/dist/framework/file-accessor.js +8 -3
- package/dist/framework/file-accessor.js.map +1 -1
- package/dist/framework/file-cache.d.ts +11 -1
- package/dist/framework/file-cache.d.ts.map +1 -1
- package/dist/framework/file-cache.js +11 -1
- package/dist/framework/file-cache.js.map +1 -1
- package/dist/framework/ignore-processing.d.ts.map +1 -1
- package/dist/framework/ignore-processing.js +26 -11
- package/dist/framework/ignore-processing.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/persistence/session-replay.d.ts +8 -3
- package/dist/persistence/session-replay.d.ts.map +1 -1
- package/dist/persistence/session-replay.js +7 -8
- package/dist/persistence/session-replay.js.map +1 -1
- package/dist/persistence/session-replay.test.js +9 -7
- package/dist/persistence/session-replay.test.js.map +1 -1
- package/dist/plugins/__tests__/loader.test.js +2 -2
- package/dist/plugins/__tests__/loader.test.js.map +1 -1
- package/dist/recipes/__tests__/run-one-check.test.js +16 -1
- package/dist/recipes/__tests__/run-one-check.test.js.map +1 -1
- package/dist/recipes/__tests__/service.test.js +46 -3
- package/dist/recipes/__tests__/service.test.js.map +1 -1
- package/dist/recipes/service.d.ts +8 -1
- package/dist/recipes/service.d.ts.map +1 -1
- package/dist/recipes/service.js +33 -4
- package/dist/recipes/service.js.map +1 -1
- package/dist/scope-augmentation.d.ts +26 -1
- package/dist/scope-augmentation.d.ts.map +1 -1
- package/dist/signalers/schema.d.ts +1 -1
- package/dist/tool.d.ts +4 -3
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +67 -85
- package/dist/tool.js.map +1 -1
- package/package.json +14 -14
package/README.md
CHANGED
|
@@ -23,8 +23,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
|
|
|
23
23
|
## Documentation
|
|
24
24
|
|
|
25
25
|
- 📚 Project docs: https://opensip.ai/docs/opensip-cli/
|
|
26
|
-
- 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.
|
|
27
|
-
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.
|
|
26
|
+
- 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.8/docs/public/70-reference/02-package-catalog.md
|
|
27
|
+
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.8/packages/fitness/engine
|
|
28
28
|
|
|
29
29
|
## License
|
|
30
30
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
15
15
|
import { tmpdir } from 'node:os';
|
|
16
16
|
import { join } from 'node:path';
|
|
17
|
-
import { LanguageRegistry, RunScope, generatePrefixedId, runWithScope } from '@opensip-cli/core';
|
|
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
20
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
@@ -64,7 +64,7 @@ function withFitScope(fn) {
|
|
|
64
64
|
// carrying both an (empty) language registry and fitness's contributed
|
|
65
65
|
// registries so check loading + recipe selection resolve.
|
|
66
66
|
const scope = new RunScope({ languages: new LanguageRegistry() });
|
|
67
|
-
|
|
67
|
+
applyToolContributeScope(scope, fitnessTool);
|
|
68
68
|
Object.assign(scope, {
|
|
69
69
|
configDocument: {
|
|
70
70
|
targets: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-execute-opts.test.js","sourceRoot":"","sources":["../../src/__tests__/fit-execute-opts.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"fit-execute-opts.test.js","sourceRoot":"","sources":["../../src/__tests__/fit-execute-opts.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzC,IAAI,UAAkB,CAAC;AACvB,IAAI,SAAoB,CAAC;AAEzB,UAAU,CAAC,GAAG,EAAE;IACd,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC9D,mEAAmE;IACnE,iCAAiC;IACjC,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,EAC1C;;;;;;;CAOH,CACE,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC5E,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,SAAS,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO;QACL,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;QACX,GAAG;QACH,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAI,EAAoB;IAC3C,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,0DAA0D;IAC1D,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAClE,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACnB,cAAc,EAAE;YACd,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,WAAW,EAAE,SAAS;oBACtB,SAAS,EAAE,CAAC,YAAY,CAAC;oBACzB,QAAQ,EAAE,CAAC,SAAS,CAAC;oBACrB,OAAO,EAAE,CAAC,aAAa,CAAC;iBACzB;aACF;SACF;KACF,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7E,4DAA4D;QAC5D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,8EAA8E;QAC9E,2EAA2E;QAC3E,MAAM,CAAE,SAAqC,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1E,MAAM,CAAE,SAAqC,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QAEzE,uDAAuD;QACvD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAS,CAAC;QACrC,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAC9B,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,0BAA0B;YACrC,WAAW,EAAE,0BAA0B;YACvC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK;YAC7B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;YAC/B,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,0BAA0B,CAAC,QAAQ,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,KAAK,GAA2C,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CACxC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC/B,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,mEAAmE;QACnE,oEAAoE;QACpE,kEAAkE;QAClE,gEAAgE;QAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -59,7 +59,8 @@ describe('@opensip-cli/fitness public barrel', () => {
|
|
|
59
59
|
});
|
|
60
60
|
it('exposes `fitnessTool` (and its `tool` alias) as the Tool descriptor', () => {
|
|
61
61
|
expect(barrel.fitnessTool).toBeDefined();
|
|
62
|
-
|
|
62
|
+
// Task 2.4 (Q1): metadata.name == the command verb (`fit`).
|
|
63
|
+
expect(barrel.fitnessTool.metadata.name).toBe('fit');
|
|
63
64
|
expect(barrel.fitnessTool.metadata.id).toBe('afd68bd3-ff3c-4935-a5b6-76d8fc7a5224');
|
|
64
65
|
expect(barrel.tool).toBe(barrel.fitnessTool);
|
|
65
66
|
});
|
|
@@ -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,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,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,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"}
|
|
@@ -9,13 +9,16 @@
|
|
|
9
9
|
import { readFileSync } from 'node:fs';
|
|
10
10
|
import { dirname, resolve } from 'node:path';
|
|
11
11
|
import { fileURLToPath } from 'node:url';
|
|
12
|
+
import { resolveToolHooks } from '@opensip-cli/core';
|
|
12
13
|
import { describe, expect, it } from 'vitest';
|
|
13
14
|
import { fitnessTool } from '../tool.js';
|
|
14
15
|
const HERE = dirname(fileURLToPath(import.meta.url));
|
|
15
16
|
const PKG = JSON.parse(readFileSync(resolve(HERE, '../../package.json'), 'utf8'));
|
|
16
17
|
describe('fitnessTool contract conformance', () => {
|
|
17
|
-
it("metadata.name is the
|
|
18
|
-
|
|
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');
|
|
19
22
|
expect(fitnessTool.metadata.id).toBe('afd68bd3-ff3c-4935-a5b6-76d8fc7a5224');
|
|
20
23
|
});
|
|
21
24
|
it('metadata.version matches package.json', () => {
|
|
@@ -24,34 +27,42 @@ describe('fitnessTool contract conformance', () => {
|
|
|
24
27
|
it('metadata.description is non-empty', () => {
|
|
25
28
|
expect(fitnessTool.metadata.description.length).toBeGreaterThan(0);
|
|
26
29
|
});
|
|
27
|
-
it('commands list includes fit
|
|
28
|
-
const names = fitnessTool.commands.map((c) => c.name);
|
|
29
|
-
expect(names).toEqual(expect.arrayContaining(['fit', '
|
|
30
|
+
it('commands list includes fit + the nested list/recipes/export children', () => {
|
|
31
|
+
const names = (fitnessTool.commands ?? []).map((c) => c.name);
|
|
32
|
+
expect(names).toEqual(expect.arrayContaining(['fit', 'list', 'recipes', 'export']));
|
|
33
|
+
// The legacy flat-root aliases are gone.
|
|
34
|
+
expect(names).not.toContain('fit-list');
|
|
35
|
+
expect(names).not.toContain('fit-recipes');
|
|
36
|
+
expect(names).not.toContain('fit-baseline-export');
|
|
30
37
|
});
|
|
31
38
|
it("does not own the cross-tool 'report' command", () => {
|
|
32
|
-
const names = fitnessTool.commands.map((c) => c.name);
|
|
39
|
+
const names = (fitnessTool.commands ?? []).map((c) => c.name);
|
|
33
40
|
expect(names).not.toContain('report');
|
|
34
41
|
expect(names).not.toContain('dashboard');
|
|
35
42
|
});
|
|
36
43
|
it('contributes report data via the Tool.collectReportData seam', () => {
|
|
37
|
-
expect(typeof fitnessTool.collectReportData).toBe('function');
|
|
44
|
+
expect(typeof resolveToolHooks(fitnessTool).collectReportData).toBe('function');
|
|
38
45
|
});
|
|
39
46
|
it('declares its command surface via commandSpecs (Phase 4), not register()', () => {
|
|
40
47
|
expect(Array.isArray(fitnessTool.commandSpecs)).toBe(true);
|
|
41
48
|
const specNames = (fitnessTool.commandSpecs ?? []).map((s) => s.name);
|
|
42
49
|
expect(specNames).toEqual([
|
|
43
50
|
'fit',
|
|
44
|
-
|
|
45
|
-
'
|
|
46
|
-
'
|
|
51
|
+
// Grouped Tier-2 children (the canonical `<tool> <verb>` grammar) —
|
|
52
|
+
// name 'list' / 'recipes', parent 'fit'.
|
|
53
|
+
'list',
|
|
54
|
+
'recipes',
|
|
55
|
+
// Canonical nested export — name 'export', parent 'fit'.
|
|
56
|
+
'export',
|
|
47
57
|
// [internal] headless run forked by the live view (ADR-0028).
|
|
48
58
|
'fit-run-worker',
|
|
49
59
|
]);
|
|
50
60
|
});
|
|
51
|
-
it('
|
|
61
|
+
it('the nested list/recipes/export children declare no Commander aliases', () => {
|
|
52
62
|
const byName = new Map((fitnessTool.commandSpecs ?? []).map((s) => [s.name, s]));
|
|
53
|
-
expect(byName.get('
|
|
54
|
-
expect(byName.get('
|
|
63
|
+
expect(byName.get('list')?.aliases ?? []).toEqual([]);
|
|
64
|
+
expect(byName.get('recipes')?.aliases ?? []).toEqual([]);
|
|
65
|
+
expect(byName.get('export')?.aliases ?? []).toEqual([]);
|
|
55
66
|
});
|
|
56
67
|
});
|
|
57
68
|
//# sourceMappingURL=tool.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.test.js","sourceRoot":"","sources":["../../src/__tests__/tool.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAE/E,CAAC;AAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"tool.test.js","sourceRoot":"","sources":["../../src/__tests__/tool.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAE/E,CAAC;AAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpF,yCAAyC;QACzC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;YACxB,KAAK;YACL,oEAAoE;YACpE,yCAAyC;YACzC,MAAM;YACN,SAAS;YACT,yDAAyD;YACzD,QAAQ;YACR,8DAA8D;YAC9D,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -29,7 +29,7 @@ const envelopeWith = (passed) => ({
|
|
|
29
29
|
const fitResult = (passed) => {
|
|
30
30
|
const envelope = envelopeWith(passed);
|
|
31
31
|
return {
|
|
32
|
-
result: { type: '
|
|
32
|
+
result: { type: 'run-presentation', tool: 'fitness', envelope },
|
|
33
33
|
envelope,
|
|
34
34
|
};
|
|
35
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-gate-mode.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-gate-mode.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,GAEb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,IAAI,SAAoB,CAAC;AAEzB,gFAAgF;AAChF,MAAM,YAAY,GAAG,CAAC,MAAe,EAAkB,EAAE,CACvD,CAAC;IACC,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,CAAC;IAChB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;CAC1D,CAA8B,CAAC;AAElC,0EAA0E;AAC1E,MAAM,SAAS,GAAG,CAAC,MAAe,EAA0C,EAAE;IAC5E,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"fit-gate-mode.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-gate-mode.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The animated Ink live view is a TTY-only affordance. On a TTY `runLiveMode`
|
|
5
5
|
* renders live (and the tool's `registerLiveView` callback delivers signals);
|
|
6
6
|
* in a pipe / CI / redirect (non-TTY) it falls back to running the engine,
|
|
7
|
-
* rendering the static
|
|
7
|
+
* rendering the static RunPresentation through the seam, then delivering the
|
|
8
8
|
* envelope once at the composition root. `runJsonMode` emits the envelope via
|
|
9
9
|
* `cli.emitEnvelope` and delivers once. These tests pin the dispatch + the
|
|
10
10
|
* single `deliverSignals` egress call (the root owns exit 4, tested there).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* The animated Ink live view is a TTY-only affordance. On a TTY `runLiveMode`
|
|
5
5
|
* renders live (and the tool's `registerLiveView` callback delivers signals);
|
|
6
6
|
* in a pipe / CI / redirect (non-TTY) it falls back to running the engine,
|
|
7
|
-
* rendering the static
|
|
7
|
+
* rendering the static RunPresentation through the seam, then delivering the
|
|
8
8
|
* envelope once at the composition root. `runJsonMode` emits the envelope via
|
|
9
9
|
* `cli.emitEnvelope` and delivers once. These tests pin the dispatch + the
|
|
10
10
|
* single `deliverSignals` egress call (the root owns exit 4, tested there).
|
|
@@ -89,9 +89,9 @@ describe('runLiveMode', () => {
|
|
|
89
89
|
expect(deliverSignals).not.toHaveBeenCalled();
|
|
90
90
|
expect(maybeOpenReport).toHaveBeenCalledTimes(1);
|
|
91
91
|
});
|
|
92
|
-
it('falls back to the static
|
|
92
|
+
it('falls back to the static RunPresentation result + delivers once on non-TTY', async () => {
|
|
93
93
|
setTTY(false);
|
|
94
|
-
const result = { type: '
|
|
94
|
+
const result = { type: 'run-presentation', tool: 'fitness' };
|
|
95
95
|
executeFitMock.mockResolvedValue({ result, envelope: envelope() });
|
|
96
96
|
const { cli, renderLive, render, setExitCode, deliverSignals } = mockCli();
|
|
97
97
|
await runLiveMode(args, cli, 'fit', false);
|
|
@@ -107,7 +107,7 @@ describe('runLiveMode', () => {
|
|
|
107
107
|
it('delivers the envelope on a non-TTY run; the host owns the findings exit (ADR-0035)', async () => {
|
|
108
108
|
setTTY(false);
|
|
109
109
|
executeFitMock.mockResolvedValue({
|
|
110
|
-
result: { type: '
|
|
110
|
+
result: { type: 'run-presentation', tool: 'fitness' },
|
|
111
111
|
envelope: envelope(),
|
|
112
112
|
});
|
|
113
113
|
const { cli, render, deliverSignals } = mockCli();
|
|
@@ -124,7 +124,14 @@ describe('runLiveMode', () => {
|
|
|
124
124
|
const { cli, setExitCode, render, deliverSignals } = mockCli();
|
|
125
125
|
await runLiveMode(args, cli, 'fit', false);
|
|
126
126
|
expect(setExitCode).toHaveBeenCalledWith(2);
|
|
127
|
+
// envelope-first-presentation (plan Assumption 5): an error-before-envelope
|
|
128
|
+
// run renders the `error` variant verbatim — NEVER a `run-presentation`. The
|
|
129
|
+
// host routes it through `errorView`, not `presentationToView` (proved in
|
|
130
|
+
// packages/cli/.../envelope-first-invariants.test.tsx).
|
|
127
131
|
expect(render).toHaveBeenCalledWith(result);
|
|
132
|
+
expect(render).toHaveBeenCalledTimes(1);
|
|
133
|
+
expect(render.mock.calls[0]?.[0]).toMatchObject({ type: 'error' });
|
|
134
|
+
expect(render.mock.calls[0]?.[0]).not.toMatchObject({ type: 'run-presentation' });
|
|
128
135
|
expect(deliverSignals).not.toHaveBeenCalled();
|
|
129
136
|
});
|
|
130
137
|
});
|
|
@@ -137,7 +144,7 @@ describe('runJsonMode', () => {
|
|
|
137
144
|
it('emits the envelope and delivers signals once (no runFailed — host derives exit)', async () => {
|
|
138
145
|
const env = envelope();
|
|
139
146
|
executeFitMock.mockResolvedValue({
|
|
140
|
-
result: { type: '
|
|
147
|
+
result: { type: 'run-presentation', tool: 'fitness' },
|
|
141
148
|
envelope: env,
|
|
142
149
|
});
|
|
143
150
|
const { cli, emitEnvelope, deliverSignals } = mockCli();
|
|
@@ -155,7 +162,7 @@ describe('runJsonMode', () => {
|
|
|
155
162
|
it('delivers without runFailed on a failing run; the host owns the exit (ADR-0035)', async () => {
|
|
156
163
|
const env = envelope();
|
|
157
164
|
executeFitMock.mockResolvedValue({
|
|
158
|
-
result: { type: '
|
|
165
|
+
result: { type: 'run-presentation', tool: 'fitness' },
|
|
159
166
|
envelope: env,
|
|
160
167
|
});
|
|
161
168
|
const { cli, setExitCode, deliverSignals } = mockCli();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fit-modes-live.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-modes-live.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fit-modes-live.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/fit-modes-live.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { dirname } from 'node:path';
|
|
12
12
|
import { fileURLToPath } from 'node:url';
|
|
13
|
-
import { LanguageRegistry, RunScope, ToolRegistry, createCapabilityRegistry, admitTool, loadToolManifest, registerCapabilityDomainsFromManifest, runWithScope, } from '@opensip-cli/core';
|
|
13
|
+
import { applyToolContributeScope, LanguageRegistry, RunScope, ToolRegistry, createCapabilityRegistry, admitTool, loadToolManifest, registerCapabilityDomainsFromManifest, resolveToolHooks, runWithScope, } from '@opensip-cli/core';
|
|
14
14
|
import { describe, expect, it } from 'vitest';
|
|
15
15
|
/** Fresh scope with empty registries — local equivalent of the retired
|
|
16
16
|
* `@opensip-cli/core/test-utils` helper. The fitness engine's own tests
|
|
@@ -42,7 +42,7 @@ function wireFitnessCapabilities(scope) {
|
|
|
42
42
|
registerCapabilityDomainsFromManifest(result.manifest, capabilities);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
for (const [domainId, registrar] of Object.entries(fitnessTool.capabilityRegistrars ?? {})) {
|
|
45
|
+
for (const [domainId, registrar] of Object.entries(resolveToolHooks(fitnessTool).capabilityRegistrars ?? {})) {
|
|
46
46
|
if (capabilities.hasDomain(domainId))
|
|
47
47
|
capabilities.setRegistrar(domainId, registrar);
|
|
48
48
|
}
|
|
@@ -55,7 +55,7 @@ function wireFitnessCapabilities(scope) {
|
|
|
55
55
|
*/
|
|
56
56
|
function makeFitnessScope() {
|
|
57
57
|
const scope = makeTestScope();
|
|
58
|
-
|
|
58
|
+
applyToolContributeScope(scope, fitnessTool);
|
|
59
59
|
wireFitnessCapabilities(scope);
|
|
60
60
|
return scope;
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-data.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/report-data.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EAChB,qCAAqC,EACrC,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C;;;mEAGmE;AACnE,MAAM,aAAa,GAAG,GAAa,EAAE,CACnC,IAAI,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,YAAY,EAAE,EAAE,CAAC,CAAC;AACjF,MAAM,SAAS,GAAG,YAAY,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,wFAAwF;AACxF,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtF;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAuC;IACtE,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,QAAQ;YACR,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,UAAU;YACf,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,qCAAqC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"report-data.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/report-data.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* via `applyCheckDisplay`; `getDisplayName`/`getIcon` resolve a slug against the
|
|
5
5
|
* CURRENT scope's check registry — there is NO merged-display singleton (F3).
|
|
6
6
|
*/
|
|
7
|
-
import { RunScope, runWithScopeSync } from '@opensip-cli/core';
|
|
7
|
+
import { RunScope, runWithScopeSync, applyToolContributeScope } from '@opensip-cli/core';
|
|
8
8
|
import { describe, expect, it } from 'vitest';
|
|
9
9
|
import { applyCheckDisplay } from '../../../check-utils/display.js';
|
|
10
10
|
import { defineCheck } from '../../../framework/define-check.js';
|
|
@@ -25,7 +25,7 @@ function stubCheck(slug) {
|
|
|
25
25
|
/** A RunScope carrying fitness's contributed subscope (fresh check registry). */
|
|
26
26
|
function fitnessScope() {
|
|
27
27
|
const scope = new RunScope();
|
|
28
|
-
|
|
28
|
+
applyToolContributeScope(scope, fitnessTool);
|
|
29
29
|
return scope;
|
|
30
30
|
}
|
|
31
31
|
describe('applyCheckDisplay', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-fold.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/display-fold.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"display-fold.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/display-fold.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fit-export-command-spec — the canonical `fit export --format baseline` command.
|
|
3
|
+
* These tests assert: (1) the canonical spec dispatches `--format baseline` to
|
|
4
|
+
* the host baseline SARIF seam; (2) it surfaces the ConfigurationError "no
|
|
5
|
+
* baseline" path (exit 2 + stderr / --json). The legacy flat-root
|
|
6
|
+
* `fit-baseline-export` alias was removed.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=fit-export-command-spec.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-export-command-spec.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/fit-export-command-spec.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fit-export-command-spec — the canonical `fit export --format baseline` command.
|
|
3
|
+
* These tests assert: (1) the canonical spec dispatches `--format baseline` to
|
|
4
|
+
* the host baseline SARIF seam; (2) it surfaces the ConfigurationError "no
|
|
5
|
+
* baseline" path (exit 2 + stderr / --json). The legacy flat-root
|
|
6
|
+
* `fit-baseline-export` alias was removed.
|
|
7
|
+
*/
|
|
8
|
+
import { ConfigurationError } from '@opensip-cli/core';
|
|
9
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
10
|
+
import { fitExportCommandSpec, FIT_EXPORT_FORMATS } from '../fit-aux-command-specs.js';
|
|
11
|
+
/**
|
|
12
|
+
* A sentinel output path threaded to the handler. It is NEVER written: the
|
|
13
|
+
* `exportBaselineSarif` seam is mocked, so the handler only forwards this value
|
|
14
|
+
* — using a non-`/tmp` relative path avoids the sonarjs publicly-writable-dir
|
|
15
|
+
* rule while exercising the exact argument passed to the seam.
|
|
16
|
+
*/
|
|
17
|
+
const OUT_PATH = 'out/fit-baseline.sarif';
|
|
18
|
+
function makeCli(exportImpl) {
|
|
19
|
+
const exportBaselineSarif = vi.fn(exportImpl ?? (() => Promise.resolve()));
|
|
20
|
+
const emitJson = vi.fn();
|
|
21
|
+
const emitError = vi.fn();
|
|
22
|
+
const setExitCode = vi.fn();
|
|
23
|
+
const cli = {
|
|
24
|
+
exportBaselineSarif,
|
|
25
|
+
emitJson,
|
|
26
|
+
emitError,
|
|
27
|
+
setExitCode,
|
|
28
|
+
logger: { debug: vi.fn(), info: vi.fn(), warn: vi.fn(), error: vi.fn() },
|
|
29
|
+
};
|
|
30
|
+
return { cli, exportBaselineSarif, emitJson, emitError, setExitCode };
|
|
31
|
+
}
|
|
32
|
+
let stdoutSpy;
|
|
33
|
+
let stderrSpy;
|
|
34
|
+
beforeEach(() => {
|
|
35
|
+
stdoutSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
36
|
+
stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
37
|
+
});
|
|
38
|
+
afterEach(() => {
|
|
39
|
+
stdoutSpy.mockRestore();
|
|
40
|
+
stderrSpy.mockRestore();
|
|
41
|
+
vi.restoreAllMocks();
|
|
42
|
+
});
|
|
43
|
+
describe('fit export (canonical) command spec', () => {
|
|
44
|
+
it('is a nested child of the fit primary (parent: fit, name: export)', () => {
|
|
45
|
+
expect(fitExportCommandSpec.name).toBe('export');
|
|
46
|
+
expect(fitExportCommandSpec.parent).toBe('fit');
|
|
47
|
+
expect(FIT_EXPORT_FORMATS).toContain('baseline');
|
|
48
|
+
});
|
|
49
|
+
it('--format baseline writes the SARIF baseline via the host seam', async () => {
|
|
50
|
+
const { cli, exportBaselineSarif } = makeCli();
|
|
51
|
+
await fitExportCommandSpec.handler({ format: 'baseline', out: OUT_PATH, _args: [] }, cli);
|
|
52
|
+
expect(exportBaselineSarif).toHaveBeenCalledWith('fitness', OUT_PATH);
|
|
53
|
+
const out = stdoutSpy.mock.calls.map((c) => String(c[0])).join('');
|
|
54
|
+
expect(out).toContain('Exported fit baseline');
|
|
55
|
+
});
|
|
56
|
+
it('maps the ConfigurationError "no baseline" path to exit 2 + stderr', async () => {
|
|
57
|
+
const { cli, setExitCode } = makeCli(() => Promise.reject(new ConfigurationError('No fit baseline captured')));
|
|
58
|
+
await fitExportCommandSpec.handler({ format: 'baseline', out: OUT_PATH, _args: [] }, cli);
|
|
59
|
+
expect(setExitCode).toHaveBeenCalledWith(2);
|
|
60
|
+
const err = stderrSpy.mock.calls.map((c) => String(c[0])).join('');
|
|
61
|
+
expect(err).toContain('Error');
|
|
62
|
+
});
|
|
63
|
+
it('emits a structured error on --json + missing baseline', async () => {
|
|
64
|
+
const { cli, emitError, setExitCode } = makeCli(() => Promise.reject(new ConfigurationError('No fit baseline captured')));
|
|
65
|
+
await fitExportCommandSpec.handler({ format: 'baseline', out: OUT_PATH, json: true, _args: [] }, cli);
|
|
66
|
+
// 2.12.0 (§5.5): the --json failure path routes through `emitError` (the host
|
|
67
|
+
// wraps it in a status:'error' CommandOutcome + sets the exit code from the
|
|
68
|
+
// payload), NOT a direct `setExitCode` in the handler.
|
|
69
|
+
expect(setExitCode).not.toHaveBeenCalled();
|
|
70
|
+
expect(emitError.mock.calls.length).toBe(1);
|
|
71
|
+
const payload = emitError.mock.calls[0]?.[0];
|
|
72
|
+
expect(payload?.exitCode).toBe(2);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=fit-export-command-spec.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fit-export-command-spec.test.js","sourceRoot":"","sources":["../../../../src/cli/fit/__tests__/fit-export-command-spec.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Owns the fit-lifecycle state (`loadedFor`, `pluginLoadErrors`,
|
|
5
5
|
* `loadWarnings`) — a single unit of state, written exactly once per RUN
|
|
6
6
|
* by `ensureChecksLoaded()` and read by the phase helpers downstream
|
|
7
|
-
* (`buildFitEnvelope`, `
|
|
7
|
+
* (`buildFitEnvelope`, `buildFitPresentation`) plus the public
|
|
8
8
|
* `getPluginLoadErrors()` / `getDisplayName()` / `getIcon()` accessors
|
|
9
9
|
* that `FitView` and `report-data.ts` consume.
|
|
10
10
|
*
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Owns the fit-lifecycle state (`loadedFor`, `pluginLoadErrors`,
|
|
5
5
|
* `loadWarnings`) — a single unit of state, written exactly once per RUN
|
|
6
6
|
* by `ensureChecksLoaded()` and read by the phase helpers downstream
|
|
7
|
-
* (`buildFitEnvelope`, `
|
|
7
|
+
* (`buildFitEnvelope`, `buildFitPresentation`) plus the public
|
|
8
8
|
* `getPluginLoadErrors()` / `getDisplayName()` / `getIcon()` accessors
|
|
9
9
|
* that `FitView` and `report-data.ts` consume.
|
|
10
10
|
*
|
|
@@ -43,7 +43,7 @@ export declare function loadFitConfig(args: FitOptions): LoadedFitConfig | {
|
|
|
43
43
|
* Returns warning strings (one per unknown-language batch) rather than
|
|
44
44
|
* writing to stderr — stderr writes during the Ink live view desync the
|
|
45
45
|
* renderer's frame tracking. `executeFit` collects these and threads
|
|
46
|
-
* them into
|
|
46
|
+
* them into the run warnings the live renderer surfaces.
|
|
47
47
|
*
|
|
48
48
|
* Async only because `currentScope` is imported via dynamic import to
|
|
49
49
|
* keep the executeFit body free of fitness↔core import arrows beyond
|
|
@@ -59,7 +59,7 @@ export function loadFitConfig(args) {
|
|
|
59
59
|
* Returns warning strings (one per unknown-language batch) rather than
|
|
60
60
|
* writing to stderr — stderr writes during the Ink live view desync the
|
|
61
61
|
* renderer's frame tracking. `executeFit` collects these and threads
|
|
62
|
-
* them into
|
|
62
|
+
* them into the run warnings the live renderer surfaces.
|
|
63
63
|
*
|
|
64
64
|
* Async only because `currentScope` is imported via dynamic import to
|
|
65
65
|
* keep the executeFit body free of fitness↔core import arrows beyond
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope-view.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/envelope-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope-view.d.ts","sourceRoot":"","sources":["../../../src/cli/fit/envelope-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAExF,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAOD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,EAAE,CAsBzE;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,aAAa,GAAG,SAAS,CAM3B"}
|