@opensip-cli/graph 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cli/__tests__/graph-command-plan.test.d.ts +2 -0
- package/dist/cli/__tests__/graph-command-plan.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-command-plan.test.js +46 -0
- package/dist/cli/__tests__/graph-command-plan.test.js.map +1 -0
- package/dist/cli/graph-command-plan.d.ts +23 -0
- package/dist/cli/graph-command-plan.d.ts.map +1 -0
- package/dist/cli/graph-command-plan.js +43 -0
- package/dist/cli/graph-command-plan.js.map +1 -0
- package/dist/cli/graph-single-run-mode.d.ts +23 -0
- package/dist/cli/graph-single-run-mode.d.ts.map +1 -0
- package/dist/cli/graph-single-run-mode.js +107 -0
- package/dist/cli/graph-single-run-mode.js.map +1 -0
- package/dist/cli/graph.d.ts +2 -2
- package/dist/cli/graph.d.ts.map +1 -1
- package/dist/cli/graph.js +10 -134
- package/dist/cli/graph.js.map +1 -1
- package/package.json +8 -8
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.6/docs/public/70-reference/02-package-catalog.md
|
|
27
|
+
- 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.6/packages/graph/engine
|
|
28
28
|
|
|
29
29
|
## License
|
|
30
30
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-command-plan.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/graph-command-plan.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { mkdirSync, mkdtempSync, rmSync } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { ConfigurationError } from '@opensip-cli/core';
|
|
5
|
+
import { afterAll, describe, expect, it } from 'vitest';
|
|
6
|
+
import { planGraphExecution, validateGraphCommandFlags } from '../graph-command-plan.js';
|
|
7
|
+
const tmpProject = mkdtempSync(join(tmpdir(), 'graph-plan-'));
|
|
8
|
+
mkdirSync(join(tmpProject, 'src'), { recursive: true });
|
|
9
|
+
mkdirSync(join(tmpProject, 'lib'), { recursive: true });
|
|
10
|
+
function baseOpts(over = {}) {
|
|
11
|
+
return {
|
|
12
|
+
cwd: tmpProject,
|
|
13
|
+
...over,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
describe('validateGraphCommandFlags', () => {
|
|
17
|
+
it('rejects gate-save and gate-compare together', () => {
|
|
18
|
+
expect(() => validateGraphCommandFlags(baseOpts({ gateSave: true, gateCompare: true }))).toThrow(ConfigurationError);
|
|
19
|
+
});
|
|
20
|
+
it('rejects workspace with positional paths', () => {
|
|
21
|
+
expect(() => validateGraphCommandFlags(baseOpts({ workspace: true, paths: ['src'] }))).toThrow(ConfigurationError);
|
|
22
|
+
});
|
|
23
|
+
it('rejects workspace with gate flags', () => {
|
|
24
|
+
expect(() => validateGraphCommandFlags(baseOpts({ workspace: true, gateSave: true }))).toThrow(ConfigurationError);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('planGraphExecution', () => {
|
|
28
|
+
it('selects workspace shape', () => {
|
|
29
|
+
const plan = planGraphExecution(baseOpts({ workspace: true }));
|
|
30
|
+
expect(plan.shape).toBe('workspace');
|
|
31
|
+
expect(plan.positionalPaths).toEqual([]);
|
|
32
|
+
});
|
|
33
|
+
it('selects multi-path when more than one positional path resolves', () => {
|
|
34
|
+
const plan = planGraphExecution(baseOpts({ paths: ['src', 'lib'] }));
|
|
35
|
+
expect(plan.shape).toBe('multi-path');
|
|
36
|
+
expect(plan.positionalPaths.length).toBe(2);
|
|
37
|
+
});
|
|
38
|
+
it('selects single-path for zero or one positional path', () => {
|
|
39
|
+
expect(planGraphExecution(baseOpts()).shape).toBe('single-path');
|
|
40
|
+
expect(planGraphExecution(baseOpts({ paths: ['src'] })).shape).toBe('single-path');
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
afterAll(() => {
|
|
44
|
+
rmSync(tmpProject, { recursive: true, force: true });
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=graph-command-plan.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-command-plan.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/graph-command-plan.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAIzF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9D,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAExD,SAAS,QAAQ,CAAC,OAAqC,EAAE;IACvD,OAAO;QACL,GAAG,EAAE,UAAU;QACf,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,GAAG,EAAE,CACV,yBAAyB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3E,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAC5F,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAC5F,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* graph-command-plan — pure execution-shape planner for `opensip graph`.
|
|
3
|
+
*
|
|
4
|
+
* Maps validated options to one of workspace / multi-path / single-path shapes.
|
|
5
|
+
* `executeGraph` delegates here so mode selection stays testable without
|
|
6
|
+
* standing up engines, adapters, or delivery side effects.
|
|
7
|
+
*/
|
|
8
|
+
import type { GraphCommandOptions } from './graph-options.js';
|
|
9
|
+
/** High-level run shape after flag validation and positional normalization. */
|
|
10
|
+
export type GraphRunShape = 'workspace' | 'multi-path' | 'single-path';
|
|
11
|
+
export interface GraphExecutionPlan {
|
|
12
|
+
readonly shape: GraphRunShape;
|
|
13
|
+
/** Normalized positional paths relative to `opts.cwd` (empty for workspace). */
|
|
14
|
+
readonly positionalPaths: readonly string[];
|
|
15
|
+
}
|
|
16
|
+
/** Reject flag combinations that cannot produce a coherent graph run. */
|
|
17
|
+
export declare function validateGraphCommandFlags(opts: GraphCommandOptions): void;
|
|
18
|
+
/**
|
|
19
|
+
* Plan which execution strategy `executeGraph` should run. Throws
|
|
20
|
+
* {@link ConfigurationError} on invalid flag combinations.
|
|
21
|
+
*/
|
|
22
|
+
export declare function planGraphExecution(opts: GraphCommandOptions): GraphExecutionPlan;
|
|
23
|
+
//# sourceMappingURL=graph-command-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-command-plan.d.ts","sourceRoot":"","sources":["../../src/cli/graph-command-plan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,yEAAyE;AACzE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAezE;AAOD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,CAUhF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* graph-command-plan — pure execution-shape planner for `opensip graph`.
|
|
3
|
+
*
|
|
4
|
+
* Maps validated options to one of workspace / multi-path / single-path shapes.
|
|
5
|
+
* `executeGraph` delegates here so mode selection stays testable without
|
|
6
|
+
* standing up engines, adapters, or delivery side effects.
|
|
7
|
+
*/
|
|
8
|
+
import { ConfigurationError } from '@opensip-cli/core';
|
|
9
|
+
import { resolvePositionalPaths } from './positional-paths.js';
|
|
10
|
+
/** Reject flag combinations that cannot produce a coherent graph run. */
|
|
11
|
+
export function validateGraphCommandFlags(opts) {
|
|
12
|
+
if (opts.gateSave === true && opts.gateCompare === true) {
|
|
13
|
+
throw new ConfigurationError('--gate-save and --gate-compare are mutually exclusive.');
|
|
14
|
+
}
|
|
15
|
+
if (opts.workspace === true && (opts.paths?.length ?? 0) > 0) {
|
|
16
|
+
throw new ConfigurationError('--workspace and positional paths are mutually exclusive. Use one or the other.');
|
|
17
|
+
}
|
|
18
|
+
if (opts.workspace === true && (opts.gateSave === true || opts.gateCompare === true)) {
|
|
19
|
+
throw new ConfigurationError('--workspace and --gate-save/--gate-compare are mutually exclusive. ' +
|
|
20
|
+
'Gates and baselines apply to production code; --workspace intentionally scans the full project (including dependencies and test fixtures).');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function resolvePositionalScope(opts) {
|
|
24
|
+
if (!opts.paths || opts.paths.length === 0)
|
|
25
|
+
return [];
|
|
26
|
+
return resolvePositionalPaths(opts.paths, opts.cwd);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Plan which execution strategy `executeGraph` should run. Throws
|
|
30
|
+
* {@link ConfigurationError} on invalid flag combinations.
|
|
31
|
+
*/
|
|
32
|
+
export function planGraphExecution(opts) {
|
|
33
|
+
validateGraphCommandFlags(opts);
|
|
34
|
+
const positionalPaths = resolvePositionalScope(opts);
|
|
35
|
+
if (opts.workspace === true) {
|
|
36
|
+
return { shape: 'workspace', positionalPaths: [] };
|
|
37
|
+
}
|
|
38
|
+
if (positionalPaths.length > 1) {
|
|
39
|
+
return { shape: 'multi-path', positionalPaths };
|
|
40
|
+
}
|
|
41
|
+
return { shape: 'single-path', positionalPaths };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=graph-command-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-command-plan.js","sourceRoot":"","sources":["../../src/cli/graph-command-plan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAa/D,yEAAyE;AACzE,MAAM,UAAU,yBAAyB,CAAC,IAAyB;IACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,kBAAkB,CAAC,wDAAwD,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,kBAAkB,CAC1B,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,kBAAkB,CAC1B,qEAAqE;YACnE,4IAA4I,CAC/I,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAyB;IACvD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAyB;IAC1D,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ToolCliContext } from '@opensip-cli/core';
|
|
2
|
+
import { type RunGraphResult } from './orchestrate.js';
|
|
3
|
+
import type { GraphCommandOptions } from './graph-options.js';
|
|
4
|
+
import type { GraphRunOutcome } from './graph-run-outcome.js';
|
|
5
|
+
import type { GraphProfileBuilder } from './profile.js';
|
|
6
|
+
import type { Rule } from '../types.js';
|
|
7
|
+
type DispatchGraphResult = (opts: GraphCommandOptions, rawResult: RunGraphResult, cli: ToolCliContext, startedAt: string, suppressionRoot: string) => Promise<GraphRunOutcome | undefined>;
|
|
8
|
+
export interface SinglePathContext {
|
|
9
|
+
readonly opts: GraphCommandOptions;
|
|
10
|
+
readonly cli: ToolCliContext;
|
|
11
|
+
readonly rules: readonly Rule[];
|
|
12
|
+
readonly startedAt: string;
|
|
13
|
+
readonly profile?: GraphProfileBuilder;
|
|
14
|
+
readonly dispatchGraphResult: DispatchGraphResult;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Whole-project or single-positional-path graph execution. Owns the
|
|
18
|
+
* exact/sharded engine dispatch, profiling run bucket, shard-failure surfacing,
|
|
19
|
+
* and language mismatch policy for the single-run shape.
|
|
20
|
+
*/
|
|
21
|
+
export declare function executeSinglePathGraph(ctx: SinglePathContext, positionalPaths: readonly string[]): Promise<GraphRunOutcome | undefined>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=graph-single-run-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-single-run-mode.d.ts","sourceRoot":"","sources":["../../src/cli/graph-single-run-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,cAAc,CAAC;AACjF,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,aAAa,CAAC;AAKjD,KAAK,mBAAmB,GAAG,CACzB,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,KACpB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACnD;AAmBD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,iBAAiB,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA8EtC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { ConfigurationError, currentScope, logger, SystemError, } from '@opensip-cli/core';
|
|
2
|
+
import { DASHBOARD_FEATURE_COLUMNS } from './graph-feature-columns.js';
|
|
3
|
+
import { countFiles } from './graph-report.js';
|
|
4
|
+
import { engineSelectionReason, realpathOrSelf, resolveEngineShards, runProfiledShardedBuild, } from './graph-sharded-engine.js';
|
|
5
|
+
import { loadGraphConfig, runGraph } from './orchestrate.js';
|
|
6
|
+
import { positionalPathLabel } from './positional-paths.js';
|
|
7
|
+
const MODULE_GRAPH_CLI = 'graph:cli';
|
|
8
|
+
function recordPartitionStage(profileRun, partition) {
|
|
9
|
+
if (profileRun === undefined || partition === undefined)
|
|
10
|
+
return;
|
|
11
|
+
profileRun.recordStage('partition', partition.durationMs, partition.detail);
|
|
12
|
+
}
|
|
13
|
+
function finishProfileRun(profileRun, result) {
|
|
14
|
+
if (profileRun !== undefined) {
|
|
15
|
+
profileRun.finish(result);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Whole-project or single-positional-path graph execution. Owns the
|
|
20
|
+
* exact/sharded engine dispatch, profiling run bucket, shard-failure surfacing,
|
|
21
|
+
* and language mismatch policy for the single-run shape.
|
|
22
|
+
*/
|
|
23
|
+
export async function executeSinglePathGraph(ctx, positionalPaths) {
|
|
24
|
+
const { opts, cli, rules, startedAt, profile, dispatchGraphResult } = ctx;
|
|
25
|
+
// Realpath the run root ONCE, before engine selection (F3 path parity). The
|
|
26
|
+
// EXACT engine normalizes its project dir via realpathSync internally
|
|
27
|
+
// (graph-typescript normalize-project-dir); the SHARDED worker derives
|
|
28
|
+
// project-relative `code.file` paths against this `projectRoot`. Under a
|
|
29
|
+
// symlinked cwd a RAW root would make the sharded paths gain `../..` prefixes
|
|
30
|
+
// while exact stays canonical, so the two engines emitted different
|
|
31
|
+
// `code.file` values. Canonicalizing here keeps both engines byte-identical.
|
|
32
|
+
const runCwd = realpathOrSelf(positionalPaths[0] ?? opts.cwd, opts.cwd);
|
|
33
|
+
const config = loadGraphConfig(opts.cwd);
|
|
34
|
+
const resolution = await resolveEngineShards(opts, cli, positionalPaths);
|
|
35
|
+
const shards = resolution.shards;
|
|
36
|
+
logger.info({
|
|
37
|
+
evt: 'graph.cli.graph.engine',
|
|
38
|
+
module: MODULE_GRAPH_CLI,
|
|
39
|
+
mode: shards.length > 1 ? 'sharded' : 'exact',
|
|
40
|
+
requestedExact: opts.exact === true,
|
|
41
|
+
shards: shards.length,
|
|
42
|
+
reason: engineSelectionReason(opts, positionalPaths, shards.length > 1),
|
|
43
|
+
});
|
|
44
|
+
const profileRun = profile?.startRun({
|
|
45
|
+
label: positionalPaths.length === 0 ? 'root' : positionalPathLabel(runCwd, opts.cwd),
|
|
46
|
+
cwd: runCwd,
|
|
47
|
+
mode: shards.length > 1 ? 'sharded' : 'single-process',
|
|
48
|
+
});
|
|
49
|
+
// @fitness-ignore-next-line detached-promises -- sync profiling bookkeeping helper.
|
|
50
|
+
recordPartitionStage(profileRun, resolution.partition);
|
|
51
|
+
const result = shards.length > 1
|
|
52
|
+
? await runProfiledShardedBuild(profileRun, {
|
|
53
|
+
opts,
|
|
54
|
+
shards,
|
|
55
|
+
projectRoot: runCwd,
|
|
56
|
+
cli,
|
|
57
|
+
config,
|
|
58
|
+
rules,
|
|
59
|
+
})
|
|
60
|
+
: await runGraph({
|
|
61
|
+
cwd: runCwd,
|
|
62
|
+
noCache: opts.noCache,
|
|
63
|
+
resolution: opts.resolution,
|
|
64
|
+
language: opts.language,
|
|
65
|
+
config,
|
|
66
|
+
rules,
|
|
67
|
+
datastore: cli.scope.datastore(),
|
|
68
|
+
emitFeatures: DASHBOARD_FEATURE_COLUMNS,
|
|
69
|
+
onProgress: profileRun?.onProgress,
|
|
70
|
+
});
|
|
71
|
+
// @fitness-ignore-next-line detached-promises -- sync profiling bookkeeping helper.
|
|
72
|
+
finishProfileRun(profileRun, result);
|
|
73
|
+
if (shards.length > 1) {
|
|
74
|
+
const sharded = result;
|
|
75
|
+
if (sharded.failedShardIds && sharded.failedShardIds.length > 0) {
|
|
76
|
+
throw new SystemError(`Sharded graph build had ${sharded.failedShardIds.length} shard failure(s); ` +
|
|
77
|
+
`catalog and any --gate-* / baseline artifacts are incomplete. ` +
|
|
78
|
+
`See 'graph.sharded.shard_failed' log events for per-shard details.`, { code: 'GRAPH.SHARD.FAILURES' });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// @fitness-ignore-next-line detached-promises -- sync validation helper; throws synchronously on mismatch.
|
|
82
|
+
enforceLanguageMismatchPolicy(opts, result.catalog, [runCwd]);
|
|
83
|
+
const scope = currentScope();
|
|
84
|
+
if (scope !== undefined) {
|
|
85
|
+
// @fitness-ignore-next-line detached-promises -- DiagnosticsBus.event is synchronous.
|
|
86
|
+
scope.diagnostics.event('execute', 'debug', 'graph build complete', {
|
|
87
|
+
mode: shards.length > 1 ? 'sharded' : 'exact',
|
|
88
|
+
shards: shards.length,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return await dispatchGraphResult(opts, result, cli, startedAt, runCwd);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* D14 mixed policy. When `--language X` was specified and the run discovered
|
|
95
|
+
* zero files matching that adapter, exit 2 with the canonical error. Automatic
|
|
96
|
+
* detection paths do not trigger this check.
|
|
97
|
+
*/
|
|
98
|
+
function enforceLanguageMismatchPolicy(opts, catalog, paths) {
|
|
99
|
+
if (typeof opts.language !== 'string' || opts.language.length === 0)
|
|
100
|
+
return;
|
|
101
|
+
const fileCount = catalog === null ? 0 : countFiles(catalog);
|
|
102
|
+
if (fileCount > 0)
|
|
103
|
+
return;
|
|
104
|
+
const pathLabel = paths.map((p) => positionalPathLabel(p, opts.cwd)).join(', ');
|
|
105
|
+
throw new ConfigurationError(`--language ${opts.language} matched 0 files under ${pathLabel}; check the flag or paths.`);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=graph-single-run-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-single-run-mode.js","sourceRoot":"","sources":["../../src/cli/graph-single-run-mode.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/graph.d.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* `--packages` flags were retired in favor of the polyglot surface
|
|
19
19
|
* above; see docs/plans/graph-cli-language-neutral-scoping/.
|
|
20
20
|
*/
|
|
21
|
-
import {
|
|
21
|
+
import { type RunGraphResult } from './orchestrate.js';
|
|
22
22
|
import type { GraphCommandOptions } from './graph-options.js';
|
|
23
23
|
import type { GraphRunOutcome } from './graph-run-outcome.js';
|
|
24
24
|
import type { ToolCliContext } from '@opensip-cli/core';
|
|
@@ -39,7 +39,7 @@ export type { UnifiedReportInput, LiveGraphOutput } from './graph-report.js';
|
|
|
39
39
|
* comes back.
|
|
40
40
|
*/
|
|
41
41
|
export declare function executeGraph(opts: GraphCommandOptions, cli: ToolCliContext): Promise<GraphRunOutcome | undefined>;
|
|
42
|
-
export declare function dispatchGraphResult(opts: GraphCommandOptions, rawResult:
|
|
42
|
+
export declare function dispatchGraphResult(opts: GraphCommandOptions, rawResult: RunGraphResult, cli: ToolCliContext, startedAt: string, suppressionRoot: string): Promise<GraphRunOutcome | undefined>;
|
|
43
43
|
export declare function handleGraphError(label: string, error: unknown, cli: ToolCliContext): void;
|
|
44
44
|
export { contributionFromSignals, evaluatedRuleSlugs } from './graph-session-contribution.js';
|
|
45
45
|
export { resolveLiveEngineShards, resolveShardsForCwd, runShardedLiveBuild, } from './graph-sharded-engine.js';
|
package/dist/cli/graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;AAsBH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM7E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA4EtC;AAyFD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA6BtC;AA4JD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAsBzF;AAED,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/cli/graph.js
CHANGED
|
@@ -26,19 +26,18 @@
|
|
|
26
26
|
* above; see docs/plans/graph-cli-language-neutral-scoping/.
|
|
27
27
|
*/
|
|
28
28
|
import { EXIT_CODES } from '@opensip-cli/contracts';
|
|
29
|
-
import { ConfigurationError, currentScope, logger,
|
|
29
|
+
import { ConfigurationError, currentScope, logger, ToolError, ValidationError, } from '@opensip-cli/core';
|
|
30
30
|
import { resolveRecipeToRules } from '../recipes/resolve.js';
|
|
31
31
|
import { finalizeGraphSignals } from './apply-suppressions.js';
|
|
32
32
|
import { buildGraphEnvelope } from './build-envelope.js';
|
|
33
|
-
import {
|
|
33
|
+
import { planGraphExecution } from './graph-command-plan.js';
|
|
34
34
|
import { runCatalogJsonMode, runGateMode } from './graph-modes.js';
|
|
35
35
|
import { executeMultiPathGraph } from './graph-multi-path-mode.js';
|
|
36
|
-
import { buildUnifiedReportLines,
|
|
36
|
+
import { buildUnifiedReportLines, resolutionBannerText } from './graph-report.js';
|
|
37
37
|
import { buildGraphSessionContribution } from './graph-session-contribution.js';
|
|
38
|
-
import {
|
|
38
|
+
import { executeSinglePathGraph } from './graph-single-run-mode.js';
|
|
39
39
|
import { executeWorkspaceGraph } from './graph-workspace-mode.js';
|
|
40
|
-
import {
|
|
41
|
-
import { positionalPathLabel, resolvePositionalPaths } from './positional-paths.js';
|
|
40
|
+
import { resolveGraphRecipeSelection } from './orchestrate.js';
|
|
42
41
|
import { MemoryPressureError } from './pressure-monitor.js';
|
|
43
42
|
import { GraphProfileBuilder, writeGraphProfile } from './profile.js';
|
|
44
43
|
const EVT_GRAPH_COMPLETE = 'graph.cli.graph.complete';
|
|
@@ -90,7 +89,7 @@ export async function executeGraph(opts, cli) {
|
|
|
90
89
|
});
|
|
91
90
|
// (profile / startedAtForProfile already declared at top of fn for branch visibility)
|
|
92
91
|
try {
|
|
93
|
-
|
|
92
|
+
const plan = planGraphExecution(opts);
|
|
94
93
|
// Resolve the recipe once at the top of the run (CLI layer owns selection;
|
|
95
94
|
// the engine stays recipe-agnostic). Tool-scoped (ADR-0022): precedence is
|
|
96
95
|
// `--recipe` flag > `graph.recipe` > `default`.
|
|
@@ -110,107 +109,17 @@ export async function executeGraph(opts, cli) {
|
|
|
110
109
|
// request-scoped parsed-options bag the pre-action hook already augments, so
|
|
111
110
|
// this is the single point that owns graph's recipe normalization.
|
|
112
111
|
opts.recipe = recipeSelection.name;
|
|
113
|
-
if (
|
|
112
|
+
if (plan.shape === 'workspace') {
|
|
114
113
|
const outcome = await executeWorkspaceGraph(opts, cli, profile);
|
|
115
114
|
writeProfileIfRequested(opts, profile);
|
|
116
115
|
return outcome;
|
|
117
116
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const outcome = await executeMultiPathGraph({ opts, cli, rules, startedAt, profile, deliverGraphResult }, positionalPaths);
|
|
117
|
+
if (plan.shape === 'multi-path') {
|
|
118
|
+
const outcome = await executeMultiPathGraph({ opts, cli, rules, startedAt, profile, deliverGraphResult }, plan.positionalPaths);
|
|
121
119
|
writeProfileIfRequested(opts, profile);
|
|
122
120
|
return outcome;
|
|
123
121
|
}
|
|
124
|
-
|
|
125
|
-
// EXACT engine normalizes its project dir via realpathSync internally
|
|
126
|
-
// (graph-typescript normalize-project-dir); the SHARDED worker derives
|
|
127
|
-
// project-relative `code.file` paths against this `projectRoot`. Under a
|
|
128
|
-
// symlinked cwd a RAW root would make the sharded paths gain `../..` prefixes
|
|
129
|
-
// while exact stays canonical → the two engines emit different `code.file`,
|
|
130
|
-
// and since the engine choice is environment-sensitive, a `--gate-save`
|
|
131
|
-
// baseline written by one engine would flag everything new under the other.
|
|
132
|
-
// Canonicalizing here (idempotent for non-symlinks) keeps both engines'
|
|
133
|
-
// emitted paths byte-identical. Shard discovery already realpaths internally
|
|
134
|
-
// (discoverFiles → normalizeProjectDir), so the shard files and this root now
|
|
135
|
-
// share the same canonical base.
|
|
136
|
-
const runCwd = realpathOrSelf(positionalPaths[0] ?? opts.cwd, opts.cwd);
|
|
137
|
-
// Honor the project's `graph:` config block (rule knobs like
|
|
138
|
-
// minCrossPackageDuplicatePackages). Resolved from the original cwd so a
|
|
139
|
-
// positional subtree run still picks up the project-root config.
|
|
140
|
-
const config = loadGraphConfig(opts.cwd);
|
|
141
|
-
// Determinism (ADR-0033, superseding ADR-0032/0031): the build engine is
|
|
142
|
-
// chosen by an explicit, deterministic policy — the SHARDED engine is the
|
|
143
|
-
// DEFAULT (both engines resolve through one shared model — exact = the
|
|
144
|
-
// 1-shard case — held equivalent by the directional soundness invariant +
|
|
145
|
-
// completeness floor; ADR-0033), and
|
|
146
|
-
// `--exact` opts OUT to the single-program engine. It is NOT chosen by
|
|
147
|
-
// `process.stdout.isTTY` or on-disk discovery state, so a bare `graph` builds
|
|
148
|
-
// the same catalog whether run in a terminal, piped, or under
|
|
149
|
-
// `--gate-*`/`--json`. When the project can't shard (no worker script,
|
|
150
|
-
// single-unit, discovery failure) we fall back to the exact engine — the
|
|
151
|
-
// natural single-package/small-repo path — rather than failing.
|
|
152
|
-
const resolution = await resolveEngineShards(opts, cli, positionalPaths);
|
|
153
|
-
const shards = resolution.shards;
|
|
154
|
-
logger.info({
|
|
155
|
-
evt: 'graph.cli.graph.engine',
|
|
156
|
-
module: MODULE_GRAPH_CLI,
|
|
157
|
-
mode: shards.length > 1 ? 'sharded' : 'exact',
|
|
158
|
-
requestedExact: opts.exact === true,
|
|
159
|
-
shards: shards.length,
|
|
160
|
-
reason: engineSelectionReason(opts, positionalPaths, shards.length > 1),
|
|
161
|
-
});
|
|
162
|
-
const profileRun = profile?.startRun({
|
|
163
|
-
label: positionalPaths.length === 0 ? 'root' : positionalPathLabel(runCwd, opts.cwd),
|
|
164
|
-
cwd: runCwd,
|
|
165
|
-
mode: shards.length > 1 ? 'sharded' : 'single-process',
|
|
166
|
-
});
|
|
167
|
-
// The synthetic partitioner runs BEFORE the profile run recorder exists
|
|
168
|
-
// (its `mode` label needs the shard count), so its wall time is measured
|
|
169
|
-
// where it runs and recorded here (ADR-0045 measurement plane).
|
|
170
|
-
if (resolution.partition !== undefined) {
|
|
171
|
-
profileRun?.recordStage('partition', resolution.partition.durationMs, resolution.partition.detail);
|
|
172
|
-
}
|
|
173
|
-
const result = shards.length > 1
|
|
174
|
-
? await runProfiledShardedBuild(profileRun, {
|
|
175
|
-
opts,
|
|
176
|
-
shards,
|
|
177
|
-
projectRoot: runCwd,
|
|
178
|
-
cli,
|
|
179
|
-
config,
|
|
180
|
-
rules,
|
|
181
|
-
})
|
|
182
|
-
: await runGraph({
|
|
183
|
-
cwd: runCwd,
|
|
184
|
-
noCache: opts.noCache,
|
|
185
|
-
resolution: opts.resolution,
|
|
186
|
-
language: opts.language,
|
|
187
|
-
config,
|
|
188
|
-
rules,
|
|
189
|
-
datastore: cli.scope.datastore(),
|
|
190
|
-
emitFeatures: DASHBOARD_FEATURE_COLUMNS,
|
|
191
|
-
onProgress: profileRun?.onProgress,
|
|
192
|
-
});
|
|
193
|
-
profileRun?.finish(result);
|
|
194
|
-
// Propagate shard failures so incomplete catalogs do not silently produce
|
|
195
|
-
// baselines or pass --gate-compare (per-audit: failedShardIds was computed
|
|
196
|
-
// but never surfaced to the gate or as a hard error).
|
|
197
|
-
if (shards.length > 1) {
|
|
198
|
-
const sharded = result;
|
|
199
|
-
if (sharded.failedShardIds && sharded.failedShardIds.length > 0) {
|
|
200
|
-
throw new SystemError(`Sharded graph build had ${sharded.failedShardIds.length} shard failure(s); ` +
|
|
201
|
-
`catalog and any --gate-* / baseline artifacts are incomplete. ` +
|
|
202
|
-
`See 'graph.sharded.shard_failed' log events for per-shard details.`, { code: 'GRAPH.SHARD.FAILURES' });
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
enforceLanguageMismatchPolicy(opts, result.catalog, [runCwd]);
|
|
206
|
-
currentScope()?.diagnostics?.event('execute', 'debug', 'graph build complete', {
|
|
207
|
-
mode: shards.length > 1 ? 'sharded' : 'exact',
|
|
208
|
-
shards: shards.length,
|
|
209
|
-
});
|
|
210
|
-
// `runCwd` (= positionalPaths[0] ?? opts.cwd) is the build root the signals
|
|
211
|
-
// are relative to — the correct base for resolving `@graph-ignore` directive
|
|
212
|
-
// files. For the sharded build it equals `projectRoot` passed above.
|
|
213
|
-
const outcome = await dispatchGraphResult(opts, result, cli, startedAt, runCwd);
|
|
122
|
+
const outcome = await executeSinglePathGraph({ opts, cli, rules, startedAt, profile, dispatchGraphResult }, plan.positionalPaths);
|
|
214
123
|
writeProfileIfRequested(opts, profile);
|
|
215
124
|
return outcome;
|
|
216
125
|
}
|
|
@@ -271,39 +180,6 @@ function writeProfileIfRequested(opts, profile) {
|
|
|
271
180
|
output: outPath,
|
|
272
181
|
});
|
|
273
182
|
}
|
|
274
|
-
function validateMutuallyExclusiveFlags(opts) {
|
|
275
|
-
if (opts.gateSave === true && opts.gateCompare === true) {
|
|
276
|
-
throw new ConfigurationError('--gate-save and --gate-compare are mutually exclusive.');
|
|
277
|
-
}
|
|
278
|
-
if (opts.workspace === true && (opts.paths?.length ?? 0) > 0) {
|
|
279
|
-
throw new ConfigurationError('--workspace and positional paths are mutually exclusive. Use one or the other.');
|
|
280
|
-
}
|
|
281
|
-
if (opts.workspace === true && (opts.gateSave === true || opts.gateCompare === true)) {
|
|
282
|
-
throw new ConfigurationError('--workspace and --gate-save/--gate-compare are mutually exclusive. ' +
|
|
283
|
-
'Gates and baselines apply to production code; --workspace intentionally scans the full project (including dependencies and test fixtures).');
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
function resolvePositionalScope(opts) {
|
|
287
|
-
if (!opts.paths || opts.paths.length === 0)
|
|
288
|
-
return [];
|
|
289
|
-
return resolvePositionalPaths(opts.paths, opts.cwd);
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* D14 mixed policy. When `--language X` was specified and the run
|
|
293
|
-
* discovered zero files matching that adapter, exit 2 with the
|
|
294
|
-
* canonical error. Auto-detection paths (no `--language`) do NOT
|
|
295
|
-
* trigger this check — a "zero files" outcome there is a valid
|
|
296
|
-
* (non-error) state.
|
|
297
|
-
*/
|
|
298
|
-
function enforceLanguageMismatchPolicy(opts, catalog, paths) {
|
|
299
|
-
if (typeof opts.language !== 'string' || opts.language.length === 0)
|
|
300
|
-
return;
|
|
301
|
-
const fileCount = catalog === null ? 0 : countFiles(catalog);
|
|
302
|
-
if (fileCount > 0)
|
|
303
|
-
return;
|
|
304
|
-
const pathLabel = paths.map((p) => positionalPathLabel(p, opts.cwd)).join(', ');
|
|
305
|
-
throw new ConfigurationError(`--language ${opts.language} matched 0 files under ${pathLabel}; check the flag or paths.`);
|
|
306
|
-
}
|
|
307
183
|
/**
|
|
308
184
|
* Assemble the run's {@link SignalEnvelope} from its raw engine signals
|
|
309
185
|
* (ADR-0011). Centralises `runId`/`createdAt` resolution off the live scope so
|
package/dist/cli/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/cli/graph.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensip-cli/graph",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Static call-graph + dead-end analysis (seven-stage pipeline)",
|
|
6
6
|
"keywords": [
|
|
@@ -113,19 +113,19 @@
|
|
|
113
113
|
"ink": "^7.0.5",
|
|
114
114
|
"react": "^19.2.7",
|
|
115
115
|
"zod": "^4.4.3",
|
|
116
|
-
"@opensip-cli/
|
|
117
|
-
"@opensip-cli/
|
|
118
|
-
"@opensip-cli/
|
|
119
|
-
"@opensip-cli/
|
|
120
|
-
"@opensip-cli/
|
|
121
|
-
"@opensip-cli/session-store": "0.1.
|
|
116
|
+
"@opensip-cli/cli-ui": "0.1.6",
|
|
117
|
+
"@opensip-cli/config": "0.1.6",
|
|
118
|
+
"@opensip-cli/core": "0.1.6",
|
|
119
|
+
"@opensip-cli/contracts": "0.1.6",
|
|
120
|
+
"@opensip-cli/datastore": "0.1.6",
|
|
121
|
+
"@opensip-cli/session-store": "0.1.6"
|
|
122
122
|
},
|
|
123
123
|
"devDependencies": {
|
|
124
124
|
"@types/node": "^24.13.2",
|
|
125
125
|
"@types/react": "^19.2.17",
|
|
126
126
|
"typescript": "~6.0.3",
|
|
127
127
|
"vitest": "^4.1.8",
|
|
128
|
-
"@opensip-cli/output": "0.1.
|
|
128
|
+
"@opensip-cli/output": "0.1.6"
|
|
129
129
|
},
|
|
130
130
|
"scripts": {
|
|
131
131
|
"build": "tsc",
|