@opensip-cli/graph 0.1.2 → 0.1.4

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 (55) hide show
  1. package/README.md +2 -2
  2. package/dist/cli/__tests__/graph-worker-sharded.integration.test.d.ts +8 -0
  3. package/dist/cli/__tests__/graph-worker-sharded.integration.test.d.ts.map +1 -0
  4. package/dist/cli/__tests__/graph-worker-sharded.integration.test.js +138 -0
  5. package/dist/cli/__tests__/graph-worker-sharded.integration.test.js.map +1 -0
  6. package/dist/cli/__tests__/graph-worker.test.js +67 -1
  7. package/dist/cli/__tests__/graph-worker.test.js.map +1 -1
  8. package/dist/cli/graph/graph-command-spec.d.ts.map +1 -1
  9. package/dist/cli/graph/graph-command-spec.js +30 -14
  10. package/dist/cli/graph/graph-command-spec.js.map +1 -1
  11. package/dist/cli/graph-runner.d.ts +10 -11
  12. package/dist/cli/graph-runner.d.ts.map +1 -1
  13. package/dist/cli/graph-runner.js +29 -25
  14. package/dist/cli/graph-runner.js.map +1 -1
  15. package/dist/cli/graph-worker.d.ts +9 -8
  16. package/dist/cli/graph-worker.d.ts.map +1 -1
  17. package/dist/cli/graph-worker.js +32 -11
  18. package/dist/cli/graph-worker.js.map +1 -1
  19. package/dist/cli/graph.d.ts +14 -13
  20. package/dist/cli/graph.d.ts.map +1 -1
  21. package/dist/cli/graph.js +39 -18
  22. package/dist/cli/graph.js.map +1 -1
  23. package/dist/cli/orchestrate/__tests__/operational-smoke.test.d.ts +6 -0
  24. package/dist/cli/orchestrate/__tests__/operational-smoke.test.d.ts.map +1 -0
  25. package/dist/cli/orchestrate/__tests__/operational-smoke.test.js +73 -0
  26. package/dist/cli/orchestrate/__tests__/operational-smoke.test.js.map +1 -0
  27. package/dist/cli/orchestrate/__tests__/shard-model.test.js +20 -0
  28. package/dist/cli/orchestrate/__tests__/shard-model.test.js.map +1 -1
  29. package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -1
  30. package/dist/cli/orchestrate/sharded-graph.js +10 -8
  31. package/dist/cli/orchestrate/sharded-graph.js.map +1 -1
  32. package/dist/cli/orchestrate.d.ts.map +1 -1
  33. package/dist/cli/orchestrate.js +14 -14
  34. package/dist/cli/orchestrate.js.map +1 -1
  35. package/dist/pipeline/features.js +4 -4
  36. package/dist/pipeline/features.js.map +1 -1
  37. package/dist/rules/__tests__/evaluate-rules.test.d.ts +15 -0
  38. package/dist/rules/__tests__/evaluate-rules.test.d.ts.map +1 -0
  39. package/dist/rules/__tests__/evaluate-rules.test.js +118 -0
  40. package/dist/rules/__tests__/evaluate-rules.test.js.map +1 -0
  41. package/dist/rules/always-throws-branch.d.ts.map +1 -1
  42. package/dist/rules/always-throws-branch.js +40 -12
  43. package/dist/rules/always-throws-branch.js.map +1 -1
  44. package/dist/rules/evaluate-rules.d.ts +42 -0
  45. package/dist/rules/evaluate-rules.d.ts.map +1 -0
  46. package/dist/rules/evaluate-rules.js +83 -0
  47. package/dist/rules/evaluate-rules.js.map +1 -0
  48. package/dist/rules/no-side-effect-path.d.ts.map +1 -1
  49. package/dist/rules/no-side-effect-path.js +13 -4
  50. package/dist/rules/no-side-effect-path.js.map +1 -1
  51. package/dist/rules/orphan-subtree.js +4 -4
  52. package/dist/rules/orphan-subtree.js.map +1 -1
  53. package/dist/rules/test-only-reachable.js +4 -4
  54. package/dist/rules/test-only-reachable.js.map +1 -1
  55. package/package.json +8 -8
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Shared rule-evaluation loop + per-rule observability.
3
+ *
4
+ * Both build engines (the single-program `runGraph` and the sharded
5
+ * `runShardedGraph`) evaluate the rule set over the unified catalog. They
6
+ * historically carried two byte-identical inline loops — a divergence trap:
7
+ * instrumentation or a fix applied to one silently missed the other (and the
8
+ * sharded loop is the one large monorepos actually take). This module is the
9
+ * single evaluation seam both engines call.
10
+ *
11
+ * **Observability (the regression class this closes).** A single O(N²) rule
12
+ * once dominated the entire "rules" stage while the only signal was the
13
+ * aggregate stage duration — the pathological rule was invisible. This loop
14
+ * times every rule and emits a structured `graph.rule.evaluated` event per
15
+ * rule, plus a louder `graph.rule.slow` WARN when one rule both takes real
16
+ * wall-time AND owns the overwhelming majority of the stage. A future
17
+ * algorithmic regression in any rule surfaces immediately instead of hiding
18
+ * inside the stage total.
19
+ *
20
+ * **Order-preserving.** Rules run sequentially in registration order and
21
+ * signals are appended in that order — byte-for-byte identical to the prior
22
+ * inline loops. Signal array order is observable downstream (fingerprint
23
+ * de-dup, SARIF ordering), so this loop must stay sequential and in-order;
24
+ * it is NOT a parallelism seam.
25
+ */
26
+ import { logger } from '@opensip-cli/core';
27
+ const MODULE_GRAPH_RULES = 'graph:rules';
28
+ /**
29
+ * A single rule must exceed BOTH gates to earn a WARN: a wall-time floor (so
30
+ * we never cry wolf on a sub-second stage) AND a share of the stage total (a
31
+ * rule that owns most of the stage is the regression shape we want surfaced).
32
+ */
33
+ const SLOW_RULE_MS_FLOOR = 750;
34
+ const SLOW_RULE_STAGE_SHARE = 0.5;
35
+ /**
36
+ * Evaluate `ruleSet` over the unified catalog, accumulating signals in
37
+ * registration order. Emits per-rule timing telemetry; returns the collected
38
+ * signals. The sole rule-evaluation path for both build engines.
39
+ */
40
+ export function evaluateRules(ruleSet, data) {
41
+ const { catalog, indexes, config, hints, features } = data;
42
+ const signals = [];
43
+ const durations = [];
44
+ let stageMs = 0;
45
+ for (const rule of ruleSet) {
46
+ const startedAt = performance.now();
47
+ const ruleSignals = rule.evaluate(catalog, indexes, config, hints, features);
48
+ // Indexed append rather than spread-in-loop — avoids re-allocating the
49
+ // accumulator on every rule (O(n²)) over a potentially large rule set.
50
+ for (const signal of ruleSignals)
51
+ signals.push(signal);
52
+ const durationMs = performance.now() - startedAt;
53
+ stageMs += durationMs;
54
+ durations.push({ rule: rule.slug, durationMs });
55
+ logger.debug({
56
+ evt: 'graph.rule.evaluated',
57
+ module: MODULE_GRAPH_RULES,
58
+ rule: rule.slug,
59
+ durationMs: round1(durationMs),
60
+ signalCount: ruleSignals.length,
61
+ });
62
+ }
63
+ // Automatic regression alarm: a single rule that takes real time AND owns
64
+ // most of the stage is exactly the shape an algorithmic blowup takes.
65
+ for (const { rule, durationMs } of durations) {
66
+ if (durationMs >= SLOW_RULE_MS_FLOOR && durationMs >= SLOW_RULE_STAGE_SHARE * stageMs) {
67
+ logger.warn({
68
+ evt: 'graph.rule.slow',
69
+ module: MODULE_GRAPH_RULES,
70
+ rule,
71
+ durationMs: round1(durationMs),
72
+ stageMs: round1(stageMs),
73
+ sharePct: Math.round((durationMs / stageMs) * 100),
74
+ });
75
+ }
76
+ }
77
+ return signals;
78
+ }
79
+ /** Round to one decimal — enough to spot a pathological rule, not noise. */
80
+ function round1(ms) {
81
+ return Math.round(ms * 10) / 10;
82
+ }
83
+ //# sourceMappingURL=evaluate-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate-rules.js","sourceRoot":"","sources":["../../src/rules/evaluate-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAIxD,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAWlC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB,EAAE,IAAyB;IAC/E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAA6D,EAAE,CAAC;IAC/E,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,KAAK,MAAM,MAAM,IAAI,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACjD,OAAO,IAAI,UAAU,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,WAAW,EAAE,WAAW,CAAC,MAAM;SAChC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC;QAC7C,IAAI,UAAU,IAAI,kBAAkB,IAAI,UAAU,IAAI,qBAAqB,GAAG,OAAO,EAAE,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,iBAAiB;gBACtB,MAAM,EAAE,kBAAkB;gBAC1B,IAAI;gBACJ,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAC5E,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-side-effect-path.d.ts","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkGH,eAAO,MAAM,oBAAoB,4BA8B/B,CAAC"}
1
+ {"version":3,"file":"no-side-effect-path.d.ts","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkGH,eAAO,MAAM,oBAAoB,4BAoC/B,CAAC"}
@@ -110,7 +110,13 @@ export const noSideEffectPathRule = defineRule({
110
110
  if (!isPureCandidate(occ, sideEffecting, features))
111
111
  continue;
112
112
  const reachable = transitiveCallees(occ, indexes);
113
- const anyEffecting = [...reachable].some((h) => sideEffecting.has(h));
113
+ let anyEffecting = false;
114
+ for (const h of reachable) {
115
+ if (sideEffecting.has(h)) {
116
+ anyEffecting = true;
117
+ break;
118
+ }
119
+ }
114
120
  if (anyEffecting)
115
121
  continue;
116
122
  if (!hasDiscardedCaller(occ, indexes))
@@ -263,10 +269,13 @@ function textualSideEffect(occ, detector) {
263
269
  }
264
270
  function transitiveCallees(start, indexes) {
265
271
  const visited = new Set();
272
+ // Iterate the growing queue directly: the Array iterator reads `length`
273
+ // live, so nodes pushed mid-iteration are still visited in FIFO order —
274
+ // the same traversal as Array.shift() but O(V+E) instead of O(V²) (shift()
275
+ // is an O(n) dequeue).
266
276
  const queue = [start.bodyHash];
267
- while (queue.length > 0) {
268
- const cur = queue.shift();
269
- if (cur === undefined || visited.has(cur))
277
+ for (const cur of queue) {
278
+ if (visited.has(cur))
270
279
  continue;
271
280
  visited.add(cur);
272
281
  const next = indexes.callees.get(cur) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"no-side-effect-path.js","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-side-effect-path.js","sourceRoot":"","sources":["../../src/rules/no-side-effect-path.ts"],"names":[],"mappings":"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"}
@@ -86,11 +86,11 @@ function computeReachable(catalog, indexes, config) {
86
86
  for (const h of config.entryPointHashes ?? [])
87
87
  seeds.add(h);
88
88
  const visited = new Set();
89
+ // Iterate the growing queue directly (Array iterator reads `length` live):
90
+ // same FIFO traversal as Array.shift() but O(V+E), not O(V²).
89
91
  const queue = [...seeds];
90
- while (queue.length > 0) {
91
- const cur = queue.shift();
92
- /* v8 ignore next */
93
- if (cur === undefined || visited.has(cur))
92
+ for (const cur of queue) {
93
+ if (visited.has(cur))
94
94
  continue;
95
95
  visited.add(cur);
96
96
  const next = indexes.callees.get(cur) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"orphan-subtree.js","sourceRoot":"","sources":["../../src/rules/orphan-subtree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orphan-subtree.js","sourceRoot":"","sources":["../../src/rules/orphan-subtree.ts"],"names":[],"mappings":"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"}
@@ -84,11 +84,11 @@ function computeProductionEntries(catalog, indexes) {
84
84
  }
85
85
  function bfsReachable(seeds, indexes) {
86
86
  const visited = new Set();
87
+ // Iterate the growing queue directly (Array iterator reads `length` live):
88
+ // same FIFO traversal as Array.shift() but O(V+E), not O(V²).
87
89
  const queue = [...seeds];
88
- while (queue.length > 0) {
89
- const cur = queue.shift();
90
- /* v8 ignore next */
91
- if (cur === undefined || visited.has(cur))
90
+ for (const cur of queue) {
91
+ if (visited.has(cur))
92
92
  continue;
93
93
  visited.add(cur);
94
94
  const next = indexes.callees.get(cur) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"test-only-reachable.js","sourceRoot":"","sources":["../../src/rules/test-only-reachable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-only-reachable.js","sourceRoot":"","sources":["../../src/rules/test-only-reachable.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.2",
3
+ "version": "0.1.4",
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/cli-ui": "0.1.2",
117
- "@opensip-cli/contracts": "0.1.2",
118
- "@opensip-cli/core": "0.1.2",
119
- "@opensip-cli/datastore": "0.1.2",
120
- "@opensip-cli/session-store": "0.1.2",
121
- "@opensip-cli/config": "0.1.2"
116
+ "@opensip-cli/config": "0.1.4",
117
+ "@opensip-cli/contracts": "0.1.4",
118
+ "@opensip-cli/core": "0.1.4",
119
+ "@opensip-cli/datastore": "0.1.4",
120
+ "@opensip-cli/cli-ui": "0.1.4",
121
+ "@opensip-cli/session-store": "0.1.4"
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.2"
128
+ "@opensip-cli/output": "0.1.4"
129
129
  },
130
130
  "scripts": {
131
131
  "build": "tsc",