@opensip-cli/graph 0.1.4 → 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.
Files changed (49) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/cli/graph-config.test.js +5 -3
  3. package/dist/__tests__/cli/graph-config.test.js.map +1 -1
  4. package/dist/__tests__/tool-branches.test.js +4 -1
  5. package/dist/__tests__/tool-branches.test.js.map +1 -1
  6. package/dist/cli/__tests__/graph-command-plan.test.d.ts +2 -0
  7. package/dist/cli/__tests__/graph-command-plan.test.d.ts.map +1 -0
  8. package/dist/cli/__tests__/graph-command-plan.test.js +46 -0
  9. package/dist/cli/__tests__/graph-command-plan.test.js.map +1 -0
  10. package/dist/cli/graph-command-plan.d.ts +23 -0
  11. package/dist/cli/graph-command-plan.d.ts.map +1 -0
  12. package/dist/cli/graph-command-plan.js +43 -0
  13. package/dist/cli/graph-command-plan.js.map +1 -0
  14. package/dist/cli/graph-config.d.ts.map +1 -1
  15. package/dist/cli/graph-config.js +20 -1
  16. package/dist/cli/graph-config.js.map +1 -1
  17. package/dist/cli/graph-feature-columns.d.ts +7 -0
  18. package/dist/cli/graph-feature-columns.d.ts.map +1 -0
  19. package/dist/cli/graph-feature-columns.js +10 -0
  20. package/dist/cli/graph-feature-columns.js.map +1 -0
  21. package/dist/cli/graph-multi-path-mode.d.ts +24 -0
  22. package/dist/cli/graph-multi-path-mode.d.ts.map +1 -0
  23. package/dist/cli/graph-multi-path-mode.js +64 -0
  24. package/dist/cli/graph-multi-path-mode.js.map +1 -0
  25. package/dist/cli/graph-run-outcome.d.ts +12 -0
  26. package/dist/cli/graph-run-outcome.d.ts.map +1 -0
  27. package/dist/cli/graph-run-outcome.js +2 -0
  28. package/dist/cli/graph-run-outcome.js.map +1 -0
  29. package/dist/cli/graph-session-contribution.d.ts +29 -0
  30. package/dist/cli/graph-session-contribution.d.ts.map +1 -0
  31. package/dist/cli/graph-session-contribution.js +58 -0
  32. package/dist/cli/graph-session-contribution.js.map +1 -0
  33. package/dist/cli/graph-sharded-engine.d.ts +77 -0
  34. package/dist/cli/graph-sharded-engine.d.ts.map +1 -0
  35. package/dist/cli/graph-sharded-engine.js +229 -0
  36. package/dist/cli/graph-sharded-engine.js.map +1 -0
  37. package/dist/cli/graph-single-run-mode.d.ts +23 -0
  38. package/dist/cli/graph-single-run-mode.d.ts.map +1 -0
  39. package/dist/cli/graph-single-run-mode.js +107 -0
  40. package/dist/cli/graph-single-run-mode.js.map +1 -0
  41. package/dist/cli/graph-workspace-mode.d.ts +11 -0
  42. package/dist/cli/graph-workspace-mode.d.ts.map +1 -0
  43. package/dist/cli/graph-workspace-mode.js +87 -0
  44. package/dist/cli/graph-workspace-mode.js.map +1 -0
  45. package/dist/cli/graph.d.ts +7 -131
  46. package/dist/cli/graph.d.ts.map +1 -1
  47. package/dist/cli/graph.js +18 -681
  48. package/dist/cli/graph.js.map +1 -1
  49. 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.4/docs/public/70-reference/02-package-catalog.md
27
- - 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.4/packages/graph/engine
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
 
@@ -102,12 +102,14 @@ describe('loadGraphConfig reads scope.toolConfig.graph when a scope is present',
102
102
  const config = runWithScopeSync(scope, () => loadGraphConfig(workDir));
103
103
  expect(config).toEqual({});
104
104
  });
105
- it('falls back to the YAML read when the scope carries no toolConfig', () => {
106
- // A scope with no toolConfig (config-less project shape) YAML fallback.
105
+ it('returns {} rather than reading YAML when an active scope carries no toolConfig', () => {
106
+ // A scope with no toolConfig has already passed through bootstrap with no
107
+ // resolved graph config; a second YAML read would violate the one-reader
108
+ // invariant and could see a different file.
107
109
  writeConfig('graph:\n minDuplicateBodyLines: 8\n');
108
110
  const scope = makeGraphTestScope();
109
111
  const config = runWithScopeSync(scope, () => loadGraphConfig(workDir));
110
- expect(config.minDuplicateBodyLines).toBe(8);
112
+ expect(config).toEqual({});
111
113
  });
112
114
  });
113
115
  //# sourceMappingURL=graph-config.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-config.test.js","sourceRoot":"","sources":["../../../src/__tests__/cli/graph-config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-config.test.js","sourceRoot":"","sources":["../../../src/__tests__/cli/graph-config.test.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@
17
17
  import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
18
18
  import { tmpdir } from 'node:os';
19
19
  import { join } from 'node:path';
20
- import { enterScope, LanguageRegistry } from '@opensip-cli/core';
20
+ import { enterScope, LanguageRegistry, currentScope } from '@opensip-cli/core';
21
21
  import { DataStoreFactory } from '@opensip-cli/datastore';
22
22
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
23
23
  import { currentAdapterRegistry } from '../lang-adapter/registry.js';
@@ -138,6 +138,9 @@ describe('graph interactive --exact path honors graph config', () => {
138
138
  // (sharded is the default and routes to the static path).
139
139
  currentAdapterRegistry().register(fakeAdapter(workDir));
140
140
  writeFileSync(join(workDir, 'opensip-cli.config.yml'), 'graph:\n minCrossPackageDuplicatePackages: 2\n', 'utf8');
141
+ Object.assign(currentScope() ?? {}, {
142
+ configDocument: { graph: { minCrossPackageDuplicatePackages: 2 } },
143
+ });
141
144
  const { cli, renderLive } = makeMockCli();
142
145
  // The animated live view is taken only on a TTY, under --exact.
143
146
  await withTTY(true, () => handlerFor('graph')({ cwd: workDir, exact: true, _args: [[]] }, cli));
@@ -1 +1 @@
1
- {"version":3,"file":"tool-branches.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-branches.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-branches.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-branches.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graph-command-plan.test.d.ts.map
@@ -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":"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"}
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph-config.d.ts","sourceRoot":"","sources":["../../src/cli/graph-config.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CA4C/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAMhB"}
1
+ {"version":3,"file":"graph-config.d.ts","sourceRoot":"","sources":["../../src/cli/graph-config.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO/C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CA8D/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAMhB"}
@@ -47,12 +47,31 @@ export function loadGraphConfig(cwd, explicitPath) {
47
47
  // Scope-first: the resolved, strict-validated `graph:` block (with env/flag
48
48
  // precedence already folded in). Present on every CLI dispatch path; absent
49
49
  // only off-CLI (direct unit-test calls), where we fall back to the YAML read.
50
- const scoped = currentScope()?.toolConfig?.graph;
50
+ const scope = currentScope();
51
+ const scoped = scope?.toolConfig?.graph;
51
52
  if (isPlainObject(scoped)) {
52
53
  // Already validated by the composer (graph's namespaced ToolConfigDeclaration
53
54
  // is the same GraphConfigSchema), so this is a pure narrowing read.
54
55
  return scoped;
55
56
  }
57
+ const documentGraph = scope?.configDocument?.graph;
58
+ if (isPlainObject(documentGraph)) {
59
+ const parsed = GraphConfigSchema.strict().safeParse(documentGraph);
60
+ if (parsed.success)
61
+ return parsed.data;
62
+ logger.debug({
63
+ evt: 'graph.config.scope_document_schema_rejected',
64
+ module: 'graph:config',
65
+ err: parsed.error.message,
66
+ });
67
+ return {};
68
+ }
69
+ if (scope !== undefined) {
70
+ // A scope-bound dispatch has already had its config composed. If there is no
71
+ // resolved graph block, do not perform a second YAML read; use graph's
72
+ // in-rule defaults instead.
73
+ return {};
74
+ }
56
75
  let filePath;
57
76
  try {
58
77
  filePath = resolveProjectConfigPath(cwd, explicitPath);
@@ -1 +1 @@
1
- {"version":3,"file":"graph-config.js","sourceRoot":"","sources":["../../src/cli/graph-config.ts"],"names":[],"mappings":"AAAA,2MAA2M;AAC3M;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,qBAAqB,EAAuB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,8EAA8E;AAC9E,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,YAAqB;IAChE,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,MAAM,GAAG,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC;IACjD,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,oEAAoE;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;IAC7B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,mDAAmD;IACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,8BAA8B;YACnC,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,QAA4B,EAC5B,YAAqB;IAErB,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACvD,OAAO,qBAAqB,CAAC;QAC3B,QAAQ;QACR,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"graph-config.js","sourceRoot":"","sources":["../../src/cli/graph-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { FeatureColumn } from '../types.js';
2
+ /**
3
+ * Feature columns materialized into the persisted graph catalog for dashboard
4
+ * rendering (ADR-0006). Export/carry-only paths stay lean by opting out.
5
+ */
6
+ export declare const DASHBOARD_FEATURE_COLUMNS: readonly FeatureColumn[];
7
+ //# sourceMappingURL=graph-feature-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-feature-columns.d.ts","sourceRoot":"","sources":["../../src/cli/graph-feature-columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,aAAa,EAI7D,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Feature columns materialized into the persisted graph catalog for dashboard
3
+ * rendering (ADR-0006). Export/carry-only paths stay lean by opting out.
4
+ */
5
+ export const DASHBOARD_FEATURE_COLUMNS = [
6
+ 'blast',
7
+ 'scc',
8
+ 'packageCoupling',
9
+ ];
10
+ //# sourceMappingURL=graph-feature-columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-feature-columns.js","sourceRoot":"","sources":["../../src/cli/graph-feature-columns.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA6B;IACjE,OAAO;IACP,KAAK;IACL,iBAAiB;CAClB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type ToolCliContext } from '@opensip-cli/core';
2
+ import { type FinalizedSignals } from './apply-suppressions.js';
3
+ import { type RunGraphResult } from './orchestrate.js';
4
+ import { type GraphProfileBuilder } from './profile.js';
5
+ import type { GraphCommandOptions } from './graph-options.js';
6
+ import type { GraphRunOutcome } from './graph-run-outcome.js';
7
+ import type { Rule } from '../types.js';
8
+ type DeliverGraphResult = (opts: GraphCommandOptions, result: RunGraphResult, cli: ToolCliContext, startedAt: string, finalized: FinalizedSignals) => Promise<GraphRunOutcome | undefined>;
9
+ /**
10
+ * Ambient run context for multi-path graph fan-out. The main command handler
11
+ * owns recipe resolution, profiling setup, and the branded delivery function;
12
+ * this module owns per-path exact engine execution and aggregation.
13
+ */
14
+ export interface MultiPathContext {
15
+ readonly opts: GraphCommandOptions;
16
+ readonly cli: ToolCliContext;
17
+ readonly rules: readonly Rule[];
18
+ readonly startedAt: string;
19
+ readonly profile?: GraphProfileBuilder;
20
+ readonly deliverGraphResult: DeliverGraphResult;
21
+ }
22
+ export declare function executeMultiPathGraph(ctx: MultiPathContext, paths: readonly string[]): Promise<GraphRunOutcome | undefined>;
23
+ export {};
24
+ //# sourceMappingURL=graph-multi-path-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-multi-path-mode.d.ts","sourceRoot":"","sources":["../../src/cli/graph-multi-path-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,KAAK,mBAAmB,EAAgC,MAAM,cAAc,CAAC;AAEtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,KAAK,kBAAkB,GAAG,CACxB,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,gBAAgB,KACxB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,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,kBAAkB,EAAE,kBAAkB,CAAC;CACjD;AAWD,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAoDtC"}
@@ -0,0 +1,64 @@
1
+ import { ConfigurationError } from '@opensip-cli/core';
2
+ import { assertFinalizedAcrossBoundary, finalizeGraphSignals, } from './apply-suppressions.js';
3
+ import { DASHBOARD_FEATURE_COLUMNS } from './graph-feature-columns.js';
4
+ import { countFiles } from './graph-report.js';
5
+ import { loadGraphConfig, runGraph } from './orchestrate.js';
6
+ import { positionalPathLabel } from './positional-paths.js';
7
+ function setProfileRunFinished(profileRun, result) {
8
+ if (profileRun !== undefined) {
9
+ profileRun.finish(result);
10
+ }
11
+ }
12
+ export async function executeMultiPathGraph(ctx, paths) {
13
+ const { opts, cli, rules, startedAt, profile, deliverGraphResult } = ctx;
14
+ const allSignals = [];
15
+ let combinedFiles = 0;
16
+ let totalSuppressed = 0;
17
+ let lastResult = null;
18
+ const config = loadGraphConfig(opts.cwd);
19
+ for (const p of paths) {
20
+ const profileRun = profile?.startRun({
21
+ label: positionalPathLabel(p, opts.cwd),
22
+ cwd: p,
23
+ mode: 'single-process',
24
+ });
25
+ const r = await runGraph({
26
+ cwd: p,
27
+ noCache: opts.noCache,
28
+ resolution: opts.resolution,
29
+ language: opts.language,
30
+ config,
31
+ rules,
32
+ datastore: cli.scope.datastore(),
33
+ emitFeatures: DASHBOARD_FEATURE_COLUMNS,
34
+ onProgress: profileRun?.onProgress,
35
+ });
36
+ setProfileRunFinished(profileRun, r);
37
+ lastResult = r;
38
+ // Each path's signals are relative to that path's root, so waive them
39
+ // against the same root before aggregating. The aggregate is re-branded
40
+ // below; it is not suppressed a second time under an ambiguous root.
41
+ const finalized = await finalizeGraphSignals(r.signals, p);
42
+ totalSuppressed += finalized.suppressedCount;
43
+ allSignals.push(...finalized.signals);
44
+ if (r.catalog !== null)
45
+ combinedFiles += countFiles(r.catalog);
46
+ }
47
+ if (typeof opts.language === 'string' && opts.language.length > 0 && combinedFiles === 0) {
48
+ throw new ConfigurationError(`--language ${opts.language} matched 0 files under ${paths.map((p) => positionalPathLabel(p, opts.cwd)).join(', ')}; check the flag or paths.`);
49
+ }
50
+ /* v8 ignore next */
51
+ if (lastResult === null)
52
+ return undefined;
53
+ const combined = {
54
+ catalog: lastResult.catalog,
55
+ indexes: lastResult.indexes,
56
+ signals: allSignals,
57
+ resolutionStats: lastResult.resolutionStats,
58
+ cacheHit: lastResult.cacheHit,
59
+ features: lastResult.features,
60
+ };
61
+ const finalizedAggregate = assertFinalizedAcrossBoundary(allSignals, totalSuppressed);
62
+ return await deliverGraphResult(opts, combined, cli, startedAt, finalizedAggregate);
63
+ }
64
+ //# sourceMappingURL=graph-multi-path-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-multi-path-mode.js","sourceRoot":"","sources":["../../src/cli/graph-multi-path-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { SignalEnvelope } from '@opensip-cli/contracts';
2
+ import type { ToolSessionContribution } from '@opensip-cli/core';
3
+ /**
4
+ * Result of a static graph command path. Carries the deliverable signal envelope
5
+ * for host egress and, on human-facing paths, the optional generic session the
6
+ * host run plane persists.
7
+ */
8
+ export interface GraphRunOutcome {
9
+ readonly envelope?: SignalEnvelope;
10
+ readonly session?: ToolSessionContribution;
11
+ }
12
+ //# sourceMappingURL=graph-run-outcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-run-outcome.d.ts","sourceRoot":"","sources":["../../src/cli/graph-run-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;CAC5C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graph-run-outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-run-outcome.js","sourceRoot":"","sources":["../../src/cli/graph-run-outcome.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import type { FinalizedSignals } from './apply-suppressions.js';
2
+ import type { GraphCommandOptions } from './graph-options.js';
3
+ import type { Rule } from '../types.js';
4
+ import type { Signal, ToolSessionContribution } from '@opensip-cli/core';
5
+ /**
6
+ * Build the generic-session contribution for a single-process graph run from
7
+ * branded finalized signals. The host run plane stamps timing + id and persists
8
+ * the row after the handler returns; graph never writes the generic session row.
9
+ */
10
+ export declare function buildGraphSessionContribution(opts: Pick<GraphCommandOptions, 'cwd' | 'recipe'>, finalized: FinalizedSignals): ToolSessionContribution;
11
+ /**
12
+ * Build the aggregate generic-session contribution for a `--workspace` run.
13
+ * Child envelopes carry Option-A-mapped OpenSIP rule IDs; reverse-map back to
14
+ * engine slugs so dashboard per-rule metric columns keep working.
15
+ */
16
+ export declare function buildWorkspaceSessionContribution(opts: Pick<GraphCommandOptions, 'cwd' | 'recipe'>, signals: readonly Signal[]): ToolSessionContribution;
17
+ /**
18
+ * Engine slugs of every rule a run evaluated. Prefer the explicitly-resolved
19
+ * rule set the run actually used; otherwise read the current scope's full
20
+ * registry, matching `runGraph`'s own `args.rules ?? currentRules()` default.
21
+ */
22
+ export declare function evaluatedRuleSlugs(explicitRules?: readonly Rule[]): readonly string[];
23
+ /**
24
+ * Build graph's generic-session contribution from engine-slug signals plus the
25
+ * engine slugs of the rules evaluated. Shared by static dispatch and live Ink
26
+ * so the contribution shape cannot drift.
27
+ */
28
+ export declare function contributionFromSignals(opts: Pick<GraphCommandOptions, 'cwd' | 'recipe'>, signals: readonly Signal[], evaluatedSlugs?: readonly string[]): ToolSessionContribution;
29
+ //# sourceMappingURL=graph-session-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-session-contribution.d.ts","sourceRoot":"","sources":["../../src/cli/graph-session-contribution.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,QAAQ,CAAC,EACjD,SAAS,EAAE,gBAAgB,GAC1B,uBAAuB,CAEzB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,QAAQ,CAAC,EACjD,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,uBAAuB,CAMzB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,CAAC,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,MAAM,EAAE,CASrF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,QAAQ,CAAC,EACjD,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,cAAc,GAAE,SAAS,MAAM,EAAyB,GACvD,uBAAuB,CAUzB"}
@@ -0,0 +1,58 @@
1
+ import { passRate } from '@opensip-cli/contracts';
2
+ import { buildGraphSessionPayload } from '../persistence/session-payload.js';
3
+ import { mapOpenSipRuleIdToEngineSlug } from '../render/rule-id-mapping.js';
4
+ import { currentRules } from '../rules/registry.js';
5
+ /**
6
+ * Build the generic-session contribution for a single-process graph run from
7
+ * branded finalized signals. The host run plane stamps timing + id and persists
8
+ * the row after the handler returns; graph never writes the generic session row.
9
+ */
10
+ export function buildGraphSessionContribution(opts, finalized) {
11
+ return contributionFromSignals(opts, finalized.signals);
12
+ }
13
+ /**
14
+ * Build the aggregate generic-session contribution for a `--workspace` run.
15
+ * Child envelopes carry Option-A-mapped OpenSIP rule IDs; reverse-map back to
16
+ * engine slugs so dashboard per-rule metric columns keep working.
17
+ */
18
+ export function buildWorkspaceSessionContribution(opts, signals) {
19
+ const engineSignals = signals.map((s) => {
20
+ const ruleId = mapOpenSipRuleIdToEngineSlug(s.ruleId);
21
+ return { ...s, ruleId, source: ruleId };
22
+ });
23
+ return contributionFromSignals(opts, engineSignals);
24
+ }
25
+ /**
26
+ * Engine slugs of every rule a run evaluated. Prefer the explicitly-resolved
27
+ * rule set the run actually used; otherwise read the current scope's full
28
+ * registry, matching `runGraph`'s own `args.rules ?? currentRules()` default.
29
+ */
30
+ export function evaluatedRuleSlugs(explicitRules) {
31
+ if (explicitRules)
32
+ return explicitRules.map((r) => r.slug);
33
+ try {
34
+ return currentRules().map((r) => r.slug);
35
+ }
36
+ catch {
37
+ // @swallow-ok no active graph rule registry in narrow unit/programmatic paths;
38
+ // session payload still records the observed signals.
39
+ return [];
40
+ }
41
+ }
42
+ /**
43
+ * Build graph's generic-session contribution from engine-slug signals plus the
44
+ * engine slugs of the rules evaluated. Shared by static dispatch and live Ink
45
+ * so the contribution shape cannot drift.
46
+ */
47
+ export function contributionFromSignals(opts, signals, evaluatedSlugs = evaluatedRuleSlugs()) {
48
+ const payload = buildGraphSessionPayload(signals, evaluatedSlugs);
49
+ return {
50
+ tool: 'graph',
51
+ cwd: opts.cwd,
52
+ ...(opts.recipe === undefined ? {} : { recipe: opts.recipe }),
53
+ score: passRate(payload.summary),
54
+ passed: payload.summary.errors === 0,
55
+ payload,
56
+ };
57
+ }
58
+ //# sourceMappingURL=graph-session-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-session-contribution.js","sourceRoot":"","sources":["../../src/cli/graph-session-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOpD;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAiD,EACjD,SAA2B;IAE3B,OAAO,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,IAAiD,EACjD,OAA0B;IAE1B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,4BAA4B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,OAAO,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAA+B;IAChE,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,OAAO,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,sDAAsD;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAiD,EACjD,OAA0B,EAC1B,iBAAoC,kBAAkB,EAAE;IAExD,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACpC,OAAO;KACR,CAAC;AACJ,CAAC"}